Gelişen mikrokontrol teknolojileri ve artan bilgi birikimi sayesinde geliştirici düzeyinde daha yaygın kullanımına olanak tanımıştır. Burada elimden geldiği kadar bazı örnekler sunmaya çalışacağım... Görüleceği gibi ilk örneklerimizde çoğunlukla ASM üzerinde iken daha sonraları C üzerinde örnekler yer almaktadır. Hatta ilerleyen zamanlarda Arduino örneklerinin yer alması kaçınılmaz olacaktır.

29 Ekim 2010 Cuma

ATmega8 ve DS1307 çipi ile RS485 iletişimli LCD Saat


Giriş

"ATMega8 ve DS1307 çipi ile RS485 saat kaynağı" projesi ile RS485 üzerinden 7 parçalı LED ekran üzerinde saat ve dakika gösterimi sağlandı. Ama görüldüğü üzere elde edilebilir bilgi çok sınırlı idi. DS1307 çipini inceleyen kişiler elbette çok daha fazla bilgi barındırdığını görecektir. Bunu 7 parçalı LED ekranlar üzerinde göstermek biraz yetersiz kalabilir. Bu noktada kullanılabilecek bilgi gösterme araçlarından biri olan LCD modül kullanımı olanağı ile yine RS485 üzerinden saniye, dakika ve saat gibi zaman bilgileri ve haftanın günü (pazartesi, salı...), gün, ay ve yıl gibi tarihsel bilgileri (4x20 mavi arkadan aydınlatmalı) LCD modül arayüzü üzerinde sunacağız.
DS1307

Birçok benzerleri gibi gerçek zaman saati olarak geliştirilmiş Dallas Semiconductor veya Maxim firması tarafından geliştirilmiş olan çip sadece birkaç eleman yardımı (pil ve 32.768Khz kristal) ile artık yıl hesabı dahil saniye, dakika, saat (12 veya 24), haftanın günü, ayın günü, ay, yıl gibi değişkenlerin sayılabildiği gibi ek olarak bazı parametrelerin saklanabileceği 56 baytlık pil desteği tarafından korunan ram bölgeside yer almaktadır.

Şekil-1 :DS1307 çipi zaman registerinin adres ve tanımları (Not:RAM bölgesi gösterilmemiştir. Sadece 24 saat modu ile ilgili bölümlere yer verilmiştir.).


Zaman ve tarih bilgileri 0x00 ile 0x06 ve kontrol registeri olarak kullanılan 0x07 adreslerinde saklanmaktadır.

Saat ve tarih bilgileri BCD biçiminde saklanmaktadır. (onluk -ikilik sistem)

DS1307 çipi üzerinde i2c bağlantıları yanında, bir çıkışı programlanabilir saat çıkış bacağı (referans saat çıkışı), 32.768Khz için saat kristal bacakları, yedekleme pili için besleme bacağı yanında tabii ki normal besleme için +5V ve GND bacaklarıda var.

DS1307 çipi içinde otomatik besleme takip sistemi yer alıyor. +5V bacağındaki besleme gerilimi 1.25x Vpil (yaklaşık olarak 3.75V) gerilimine ulaştığında besleme işlemini otomatik olarak pil beslemesine aktarmaktadır. Vcc (+5V) gerilimi 1.25x Vpil gerilimi üzerine ulaştığı zaman i2c hatları DS1307 tarafından aktif hale getirilmektedir.

Sadece burada belirtilmesi gereken nokta DS1307 çipi ilk defa çalıştırıldığında zamanlama sayıcıları çalışmaya başlamaz. Bunun için saniye registerinin (0x00 adresi) 7.biti üzerinde bulunan (CH) çip tutma bitinin "0" yapılarak sayıcıların aktif hale getirilmesi gerekiyor. Yani yapılması gereken tek şey ayar gir ve ayardan çık. Bu işlem sonunda saniye kendiliğinden okunup ve okuma esnasında CH biti sıfırlandığından sadece tekrar yazılarak bu CH biti (0x00 adresindeki 7. bit) sıfırlanmış olur. (okuma esnasında 0x00 adresinde 7. bit sıfırlanarak maskelenmektedir).

İkinci olarak seçilmesi gereken 12/24 saat modudur. Bunun için 0x02 adresindeki saat baytında yer alan 6.bit "0" yapılarak 24 saat modunda çalıştırılması sağlanır. Bu işlemde aynen ayar giriş çıkışı ile yerine getirilir. (okuma enasında 0x02 adresindeki 6. ve 7. bitler sıfırlanarak maskelenmektedir.

Kontrol registeri bu projede kullanımadığından girilmeyecektir.Bu bölüm ancak referans saat sinyali olarak DS1307 kullanılmak istendiğinde DS1037'nin out çıkışının ayarlanması için gereken paremetrelerin ayarlanması için kullanılacağı zaman ayarlanır. (örneğin işlemcinin sürekli DS1307 okuması yerine program olarak oluşturulacak saat programında zamana göre saat ile DS1307'nin eşleşmesinde kullanılmak üzere gerekir).

DS1307 üzerine ayarlar yazılırken (CH) biti "0" ve (12/24) "0" olacak şekilde yazılmasına dikkat etmek gerekir. Devre ilk kez çalıştırıldığında DS1307 saymaya başlamayacaktır. DS1307 veri kağıtlarında (CH) biti "1" konumda olduğu belirtilmektedir. Bu problemi çözmek için yapılması gereken sadece "AYAR GİR" ve "AYAR TAMAM" işlemini yap. Yani AYAR butonuna iki kez bas bırak. Zaten saat ve tarih ayarını yapmak gerekecek!!
Devre

Proje normalde 2 modülden oluşuyor. Birinci modül LCD ekran bölümüdür ki "RS485 (Seri) LCD Çevirici" projesi ile gerçekleştirildi. Ama baskı devrede bazı değişiklikler yapıldığı halde program aynen kullanıldı. (isp konnektörü 2x3 şeklinde).

Anlaşılacağı üzere de ikinci modül "ATMega8 ve DS1307 çipi ile RS485 saat kaynağı" projesidir ve aynı isim altında gerçekleştirilmiştir.

Şekil-2 :Kartın üstten görünümü. DS1307 destek pili takılı halde.


Şekil-3 :Tamam saati en azından ayarlamak için gereken tuş takımı. İşlemci kartı ile bağlantı için gereken P3 konnektörü ile birlikte.


Şekil-4 :LCD sürücü kartı.


Şekil-5 :RS485-seri(uart) dönüştürücü (alma modu ayarlı-kart üzerindeki köprü).


Şekil-6 :4x20 LCD ekran, bağlantı kablosu ile birlikte.

Şema

--Saat Modülü:(şekil-8'e bak)
Saat modülü kabini IC1 atmega8 işlemcisi oluşturuyor. Bu işlemci için gereken saat kaynağı için XTL1 (3,6864MHZ) kristal, C6 ve C7 (27pF) kondansatör birlikte kullanılmakta. Devrenin çalışmasını göstermek üzere D2 ve R2 (1k) direnci kullanılır.

IC1 üzerine bağlı S1 butonu (ayar butonu)üzerindeki R5 (10K) direnci butonun pull-up direnci görevini görürken, C11 (100nF) kondansatörü tuş için giriş parazitlerini bastırır. Aynı şekilde S2 (saat) ve S3 (dakika) saat ayarlama butonlarını oluşturur ve butonlara bağlı C12 ve C13 parazitik etkileri bastırmak için işlev görürler.

İşlemcinin seri haberleşme (UART) üzerinden IC2 ST485 arayüz çipine bağlanmakta. Bu çipin girişine bağlı bulunan R1 (120OHm) ile hat empadansının uygunlaştırılması sağlamakta. İşlemci programı ile bu çip sadece sinyal gönderece biçimde şekillendirilmiştir.

IC1 işlemcinin TWI bacaklarına bağlanmış olan IC3 (DS1307) (projenin asıl konusudur) i2c bağlantısı üzerinden iletişimi sağlar. i2c bağlantısı üzerindeki R3 ve R4 (10k) dirençleri i2c hattının pull up ihtiyacını karşılar.IC3 üzerine bağlı XTL2 (32,768KHz) kristal bu çip için gereken saat referans sinyallerin üretir. Ayrıca IC3'ün Vbat bacağına bağlı PIL1 (3V) pili ile IC3'ün ihtiyacı olan destek gerilimini sağlar.

D1 girişdeki besleme kutbu sorunun ortadan kaldırarak doğrultma sağlar. IC4 ve buna bağlı olan C2,C3,C4 ve C8 devre için gereken 5V besleme gerilimini üretir.

IC1'e bağlı olan ISP konnektörüde artık bilindiği gibi işlemcinin programlanmasında kullanılır.

--LCD Modülü:(şekil-9'a bak)
LCD modül kalbini ATtiny2313 oluşturuyor. İşlemci XTL1 (3,6864MHz) kristal ile birlikte C3 ve C4 (27pF) kondansatörler saat kaynağı olarak kullanır. P1 LCD için (14P) bağlantı konnektörüdür. R1 LCD parlaklık ayarı içindir. C1 (10µF) kondansatör LCD Vo ( parlaklı ayarı) ucu için filtre görevini görür.D1 (LED) ve R2 (1K) LCD kartı için monitörolarak kullanılır.

P3 besleme giriş konnektörüdür. D2 köprü diyot besleme gerilimi için kutuplama sorununu ortadan kaldırır ve IC2(7805) LCD modül için 5V besleme gerilimini üretir.

P2 ve P2_2 konnektörleri ATtiny2313 ve ST485 arasındaki seri bağlantıyı (UART) sağlar. R4 (1K) ve D3 (LED) RS485 kartına besleme geldiğini gösterir. IC3 (ST485) seri-RS485 dönüştürücü arabirimidir. P4 RS485 için giriş konnektörüdür(6p2c veya 6p4c) ve buna bağlı olan R3 (120R) empedans uygunlaştırıcıdır. R5 ve P5 RS485 için çalışma modu seçicidir.(köprü yardımı ile )

Geri kalan kondansatörler besleme hatları üzerinde filtre görevini yerine getirirler

Şekil-7 :Devrenin blok şeması


Şekil-8 :Saat Modülü Devrenin şeması


Şekil-9 :LCD Modülü Devrenin şeması (LCD arkaplan aydınlatması gösterilmemiştir). Kullanılmakta olan LCD üzerinde arkaplan aydınlatması için sadece 2 tane beyaz LED var.

Devre Yapımı

"RS485 (Seri) LCD Çevirici" ve "ATMega8 ve DS1307 çipi ile RS485 saat kaynağı" projeleri bu proje için kaynaktır.

Devre yapılırken buton kartı en kolay yapılan olacaktır. Butonlar karta lehimlendikten sonra, buton bacaklarına C11,C12 ve C13 kondansatörlerini lehimlemek yeterli olacaktır. Ve karta şerit kablo ile küçük bir konnektörü takmak yeterlidir.

Devre yapımı için fazla bir şey söylemeye gerek yok. Çipler için soket kullanılması yerinde olacaktır. Kristallerin topraklanması çalışma esnasında oluşabilecek sorunları ortadan kaldıracaktır.

LCD kablosu için ekran konnektör bağlantıları küçük bir kart üzerinden gerçekleştirldi. Ama bu kart o kadar gerekli değildir. Serit kablo doğrudan LCD ekran bağlantı noktalarına lehimlenebilir

Şekil-10:Saat Modül-baskı devresi şekli(üstten görünüm)


Şekil-11:Saat Modül-yerleşim planı


Şekil-12:Saat Modül-eleman ve yollarla birlikte yerleşim planı.


Şekil-13:LCD Modül-baskı devresi şekli(üstten görünüm)


Şekil-14:LCD Modül-yerleşim planı


Şekil-15:LCD Modül-eleman ve yollarla birlikte yerleşim planı.

Devre Elemanları

--Saat Modülü Malzeme Listesi:
120RR1
1KR2
10K %1R3,R4,R5
10µF/25VC2,C3
100nFC1,C4,C5,C7,C9,C10,C11,C12,C13
27pFC6,C7
Atmega8IC1
ST485IC2
DS1307IC3
7805IC4
2W10M köprüD1
3mm kırmızı LEDD2
3,6864MHz kristalXTL1
32,768Khz kristalXTL2
6'li headerisp
4'lü sıra pinP3
Bas-bırak butonS1,S2,S3
tip 0 klemensP2
RJ12 konnektör 6p2c veya 6p4c gibiP1
3V Lityum düğme pilPIL1
düğme pil soketi-


--LCD Modülü Malzeme Listesi:
120RR3
1KR2,R4
10KR5
10K yatık TrimpotR1
10µF/25VC1,C5,C7,C10
27pFC3,C4
100nFC2,C6,C8,C9
2W10M veya benzeri köprü diyotD2
ST485IC3
7805IC2
ATtiny2313IC1
3,6864Mhz kristalXTL1
3mm LEDD1,D3
6p6c veya 6p2c RJ12 konnektör P4
tip 0 klemensP3
14P konnektör (erkek)P1
10P konnektör(erkek)P2,P2_2
2x3 sıra pin(erkek)P5,isp
4x20 LCD modül (kablosu ile)-
P5 için köprü-
P2 ve P2_2 için kablosu(konnektör ile)-


Malzeme listesi. Burada işlemci için soket ve 9V adaptörler verilmemiştir. Entegre soketi listede verilmemiş kullanımı kişinin tercihine kalmış bir durum. Ayrıca buton kartı ile işlemci kartı arasındaki bağlantı ve RS485 için gereken bağlantı kişinin kendi tercihine bırakılmıştır.
Sistemin Çalışması


Şekil-16:Projedeki elemanlar bir arada.

Sistemin çalışması konusunda;

İşlemci saniyede 2 kez DS1307 üzerinden saniye, dakika, saat ,tarih verilerini alıyor. Saniye değiştiği zaman saat bilgisini ekrana gönderiyor.

Verileri her virgül arası bayt biçiminde olarak;

Saat bilgisi:Satır kodu,saat 10 hanesi, saat 1 hanesi, ayıraç,dakika 10 hanesi, dakika 1 hanesi, ayıraç,saniye 10 hanesi, saniye 1 hanesi, gerektiği kadar boşluk, satır sonu kodu (gönder kodu).

Tarih bilgisi:Satır kodu, gün 10 hanesi, ayıraç, gün 1 hanesi, ay (isim olarak),ayıraç, yıl(sadece 20xx için),satır sonu kodu (gönder kodu).

Haftanın günü bilgisi: Satır kodu, haftanın günü (isim olarak),satır sonu kodu (gönder kodu)

Bu bilgiler her saniye ve ayar yapılırken tuşun her bırakılışında yenilenmektedir.
Ayarlar


Şekil-17:Tuş atamaları

Ayar Gir/TamamBasıldığında Ayar moduna girer (ekran yenilemeyi durdurur) ve tekrar basıldığında ayar modundan çıkıp zaman gösterim moduna girer (ayarlar DS1307'e kaydedilir ve saat çalışmaya başlar)
Ayar SeçEkran üzerinde ayarlanaca öğeyi seçer (saat, dakika, saniye...)
Ayar YapEkran üzerinde seçili öğeyi ayarlar.

Minimum buton ile işlemin yapılması sağlandığından "Ayar Yap" işleminde sayma işlemi sadece ileri doğru yapılmaktadır.

Şekil-18:Ekranda "ayar seç" sıralaması


Şekil-19:"Ayar Gir" butonuna basıldığında ekran.

Saat ve tarih ayarı için;
"Ayar Gir" butonuna bas. Ekranda saat hanesinin olduğu bölge Büyük ve küçük karakteri ile şekil-19'da görüldüğü gibi işaretlenir. Ayarlamak istenilen birim ne ise (saat,dakika,saniye, gün, ay, yıl ve haftanın günü) o birime gelmek için "Ayar seç" butonu kullan. Bu birimlerin sıralaması şekil 18'de gösterilmiştir. Şekil-19,Şekil-20 ve şekil-22 "Ayar gir" butonu kullanılarak seçilmiş ayar görüntüleridir.

Şekil-20:"Ayar Seç" butonu ile seçilmiş ay.


Şekil-21:"Ayar Gir" butonu ile seçilmiş haftanın günü.

Not:Ayar işlemi esnasında saat gösteriminin durduğunu ve ekran üzerindeki ayar ne ise o noktadan itibaren saatin sayacağını unutmayın.

"Ayar Yap" butonuna:
Bu butona basıldığında hangi birim ayarlanıyorsa ("Ayar Seç" butonu ile seçilmiş) o birim 1 artırarak sayar. Ama diğer birimler bundan etkilenmez. Yani dakika ayarlanırsa sadece dakika üzerinde işlem yapılır.

Saat: Butona her bas/bırakta 1 artırarak sayar. Eğer saat "23" olursa sayma "00"'dan devam eder.

Dakika:Butona her bas/bırakta 1 artırarak sayar. Dakika "59" ulaştığı zaman, sayma "00"'dan devam eder.

Saniye:Butona her bas/bırakta 1 artırarak sayar. Dakika "59" ulaştığı zaman, sayma "00"'dan devam eder.

Gün:Butona her bas/bırakta 1 artırarak sayar. Burası biraz değişik. Aslında yıl ve aya göre değişmesi gerekiyor. Ama günün ayarı aydan önce olduğu için ne yazık ki bu ay ayarını siz yapmanız gerekebilir. Takvimi doğruluğu açısından bulunduğunuz günü doğru girmeniz gerekiyor. Örneğin 31 kasım girmemeye çalışın. Burada gün "31" olduğu zaman "01" tarihine devam eder.

Ay:Ay isimleri kullanıldığından, butona her bas/bırakta sonraki ay ismi ile ekran yenilenir. Ocak, şubat, mart, nisan, mayıs, haziran, temmuz, ağustos, eylül, ekim, kasım, aralık ay isimleri birbirini izler. "Aralık" ayından sonra ayar "Ocak" ayından deva eder.

Yıl: Yıl olarak sadece son iki rakamı göz önüne alınmıştır. Bu nedenle sadece son iki rakam ayarlanıyor. Butona her bas/bırakta 1 artırarak sayar. Yıl olarak "2099" tarihine ulaştığında "2000" tarihinden devam eder.

Haftanın günü:Haftanın günleri isim olarak kullanıldığından birbirini takip eden bir düzünde olarak pazar, pazartesi, salı, çarşamba, perşembe, cuma ve cumartesi şeklindedir. Bu nedenle ayarıda bu şekilde bir tekerleğin etrafına yazılmış gibi gün isimleri birbirini takip eder.

Gerekli ayarlamalardan sonra ayarları kaydedip saati çalıştırmak sadece "Ayar Gir" butonuna bas(bırak). Saat çalışmaya başlayacaktır.


Video filmi

Ekler:

ATmega8 hakkında ayrıntılı bilgi için

ATtiny2313 hakkında ayrıntılı bilgi için

DS1307 hakkında ayrıntılı bilgi için

"ATMega8 ve DS1307 çipi ile RS485 iletişimli LCD Saat" için dosyalar-birleşik

Bu devrenin yapım sorumluluğu size aittir. Devre yapıldı ve çalışıyor. K.A....

21 Ekim 2010 Perşembe

ATMega8 ve DS1307 çipi ile RS485 saat kaynağı


Giriş

Gerçekleştirdiğimiz projeler arasında yer alan "Atmega 8 ile RS485 iletişimli LED Saat" bir saat olarak kullanılabilmesine rağmen bir kusuru vardı. Saat kaynağı olarak bir bilgisayara bağımlı idi. Bu ise projenin gerçekleştirilmesinde bazı sorunlara yol açabilecek bir kusurdu. Bu proje ile saat kaynağı alarak bir bilgisayar yerine geçebilecek bir devre gerçekleştireceğiz.

Not: Bu proje doğrudan ATMega8 ile gerçekleştirilebilecek olsa bile, sistem oluşturulurken elektrik kesilmesi durumunda saat ayarının tekrar yapılmaması gerekliliği üzerinde durulmuş ve saat kaynağının bağımsız bir enerji kaynağı ile desteklenmesine karar verilmiştir.
I2C veri yolu


Şekil-1 :i2c bağlantısının temel şekli.

Bu veri yolu Philips firması tarafından ortaya atılmasından sonra birçok çip üreticisi tarafından kullanılmaya başlanmıştır. Sonuçta sadece (besleme hariç) iki veri hattı sayesinde çipler arasında iletişime olanak sağlamıştır.

İki veri yolu biri saat kaynağı özellikle ana kontrol çipi tarafından üretilir (master çip) ve kontrol edilir, veri hattı ise verinin akışı yönüne göre değişiklik gösterebilen veri iletim hattıdır(veri kaynağı master veya uydu sistemi-slave olabilir). Bu aletler açık kollektörlüdür. Yani i2c hattı üzerine pull-up direnci ile hatların lojik-1 sevilesine çekilmesi gerekiyor.

Normal şartlar altında saat hattı değişirken veri hattı kararlı kalmalıdır. Aksi durumda bu i2c hattında bulunan çipler tarafından farklı yorumlanır.

Şekil-2 :i2c bağlantısınıda başla ve durdur durumlarının dalga biçimi.

Her i2c iletişi bir BAŞLA durumu ile başlar. Saat hattı "1" konumunda iken veri hattı "1-0" geçişi ile oluşturulur.

Her i2c iletişi DURDUR durumu ile sonlandırılır. Saat hattı "1" konumunda iken veri hattı "0-1" geçişi ile oluşturulur.

Bu noktada işler biraz daha karmaşık hal alıyor. Bir i2c hattı üzerine bir master konabilmesine rağmen (ki hatta birden fazla master konabiliyor) bir veya birden çok slave alet bağlanabiliyor.

Bir master BAŞLA durumu yayınladığında birden fazla slave olduğunda hangi slave aletin hedeflendiğinin bilinmesi gerekir. Bunun için her slave aletin kendi özel adresi vardır. Aslında en yüksek anlamlı 4 bit aletin kullanıldığı alana göre tanımlanmış bir kod isede,bu bitleri izleyen 3-bit adres bitleridir. Bazı aletler için 3 bit için seçme bacakları vardır veya değiştirilebilir bazı seçenekler olsada bu projede kullanılan DS1307 çipi için bu 3 bit "000" durumundadır. Kalan en düşük anlamlı bit ise oku/yaz seçeneğinin belirtildiği bittir.

İlk zorunlu bayt bu şekilde tanımlandıktan sonra ikinci bayta geçmeden 1 saat çevrimi süresinde yapılan iletişimin kabul edildiğini belirten bir bitlik bir iletişim yapılır. Yani bu ilk baytı kabul eden slave aleti veri hattını lojik-0 konumuna çekerek yayınlanan adresin kabul edildiğini belirtir. Bu kabul aşaması her bayt arasında yapılır. Son alınan bayta kadar. Son bayt alındıktan sonra veri hattı lojik 1 konumunda kalarak kabul değil bilgisi iletilir. Kabul bilgisini hangi alet veri alıyorsa (master veya slave) veriyi alan alet tarafından yayınlanır.

Şekil-3 :DS1307 çipi i2c yazma biçimi.

Bundan sonraki bayt genellikle slave aletin adresi veya veri olabilir. (okumaya veya yazma işlemine göre).

Buraya kadar ki i2c genel di. Atmega8 çipi üzerinde TWI başlığı altında anlatılan bir i2c bağlantısı yer alır. Atmega8 çipi bu portu kullanarak gerek master gerekse slave olarak kullanılabilir. Bu projede master olarak kullanılacaktır.


Şekil-4 :DS1307 çipi i2c okuma biçimi.

Atmega8 işlemcisi (diğer işlemciler üzerinde de bulunmaktadır) TWI arayüzü ve işlemci içindeki registerlerin kontrolu yardımı ile i2c işlemini gerçekleştirir. Atmega8 her iletişim adımını TWI durum registeri üzerinden geri bildirimi yapar. Böylece işlem adımları takip edilmesini kolaylaştırır.
DS1307


Şekil-5 :DS1307 çipinin resmi(DIL bacak yapısında).

Birçok benzerleri gibi gerçek zaman saati olarak geliştirilmiş Dallas Semiconductor veya Maxim firması tarafından geliştirilmiş olan çip sadece birkaç eleman yardımı ile artık yıl hesabı dahil saniye, dakika, saat (12 veya 24), haftanın günü, ayın günü, ay, yıl gibi değişkenlerin sayabildiği gibi ek olarak bazı parametrelerin saklanabileceği 56 baytlık pil desteği tarafından korunan ram bölgeside yer almaktadır.

Şekil-6 :DS1307 çipi zaman registerinin adres ve tanımları (Not:RAM bölgesi gösterilmemiştir. Sadece 24 saat modu ile ilgili bölümlere yer verilmiştir.).

Zaman ve tarih bilgileri 0x00 ile 0x06 ve kontrol registeri olarak kullanılan 0x07 adreslerinde saklanmaktadır.

Saat ve tarih bilgileri BCD biçiminde saklanmaktadır. (onluk -ikilik sistem)

DS1307 çipi üzerinde i2c bağlantıları yanında, bir çıkışı programlanabilir saat çıkış bacağı, 32.768Khz için saat kristal bacakları, yedekleme pili için besleme bacağı yanında tabii ki normal besleme için +5V ve GND bacaklarıda vardır.

DS1307 çipi içinde otomatik besleme takip sistemi yer alıyor. +5V bacağındaki besleme gerilimi 1.25x Vpil (yaklaşık olarak 3.75V) gerilimine ulaştığında besleme işlemini otomatik olarak pil beslemesine aktarmaktadır. Vcc (+5V) gerilimi 1.25x Vpil gerilimi üzerine ulaştığı zaman i2c hatları DS1307 tarafından aktif hale getirilmektedir.

Sadece burada belirtilmesi gereken nokta DS1307 çipi ilk defa çalıştırıldığında zamanlama sayıcıları çalışmaya başlamaz. Bunun için saniye registerinin (0x00 adresi) 7.biti üzerinde bulunan ( CH) çip tutma bitinin "0" yapılarak sayıcıların aktif hale getirilmesi gerekiyor. Yani yapılması gereken tek şey ayar gir ve ayardan çık. Bu işlem sonunda saniye kendiliğinden okunup ve okuma esnasında CH biti sıfırlandığından sadece tekrar yazılarak bu CH biti (0x00 adresindeki 7. bit) sıfırlanmış olur. (okuma esnasında 0x00 adresinde 7. bit sıfırlanarak maskelenmektedir).

İkinci olarak seçilmesi gereken 12/24 saat modudur. Bunun için 0x02 adresindeki saat baytında yer alan 6.bit "0" yapılarak 24 saat modunda çalıştırılması sağlanlanır. Bu işlemde aynen ayar giriş çıkışı ile yerine getirilir. (okuma enasında 0x02 adresindeki 6. ve 7. bitler sıfırlanarak maskelenmektedir.

Kontrol registeri için bu projede kullanımadığından girilmeyecektir.
Devre

Proje normalde 2 modülden oluşuyor. Birinci modül LED ekran bölümüdür ki "Atmega 8 ile RS485 iletişimli LED Saat" projesi ile gerçekleştirildi. Bu proje ile birlikte "Atmega 8 ile RS485 iletişimli LED Saat" programında küçük bir güncelleme gerekmektedir.

Anlaşılacağı üzere de ikinci modül "ATMega8 ve DS1307 çipi ile RS485 saat kaynağı" projesidir ki burada anlatılmaktadır.

İstendiği takdirde RS485 hattı üzerine birden fazla Atmega 8 ile RS485 iletişimli LED Saat eklenerek birbiriyle senkron çalışan ve gösteren bir saat dizisi elde etmek mümkündür. (RS485 hattının yapısı göz önünde bulundurularak)

Şekil-7 :Kartın üstten görünümü. DS1307 destek pili takılı halde.


Şekil-8 :Tamam saati en azından ayarlamak için gereken tuş takımı. İşlemci kartı ile bağlantı için gereken P3 konnektörü ile birlikte.

Şema

Sistemin kabini IC1 atmega8 işlemcisi oluşturuyor. Bu işlemci için gereken saat kaynağı için XTL1 (3,6864MHZ) kristal, C7 ve C7 (27pF) kondansatör birlikte kullanılmakta. Devrenin çalışmasını göstermek üzere D2 ve R2 (1k) direnci kullanılır.

IC1 üzerine bağlı S1 butonu (ayar butonu)üzerindeki R5 (10K) direnci butonun pull-up direnci görevini görürken, C11 (100nF) kondansatörü tuş için giriş parazitlerini bastırır. Aynı şekilde S2 (saat) ve S3 (dakika) saat ayarlama butonlarını oluşturur ve butonlara bağlı C12 ve C13 parazitik etkileri bastırmak için işlev görürler.

İşlemcinin seri haberleşme (UART) üzerinden IC2 ST485 arayüz çipine bağlanmakta. Bu çipin girişine bağlı bulunan R1 (120OHm) ile hat empadansının uygunlaştırılması sağlamakta. İşlemci programı ile bu çip sadece sinyal gönderece biçimde şekillendirilmiştir.

IC1 işlemcinin TWI bacaklarına bağlanmış olan IC3 (DS1307) (projenin asıl konusudur) i2c bağlantısı üzerinden iletişimi sağlar. i2c bağlantısı üzerindeki R3 ve R4 (10k) dirençleri i2c hattının pull up ihtiyacını karşılar.IC3 üzerine bağlı XTL2 (32,768KHz) kristal bu çip için gereken saat referans sinyallerin üretir. Ayrıca IC3'ün Vbat bacağına bağlı PIL1 (3V) pili ile IC3'ün ihtiyacı olan destek gerilimini sağlar.

D1 girişdeki besleme kutbu sorunun ortadan kaldırarak doğrultma sağlar. IC4 ve buna bağlı olan C2,C3,C4 ve C8 devre için gereken 5V besleme gerilimini üretir.

IC1'e bağlı olan ISP konnektörüde artık bilindiği gibi işlemcinin programlanmasında kullanılır.

Şekil-9 :Devrenin blok şeması


Şekil-10 :Devrenin şeması

Devre Yapımı

Devre yapılırken buton kartı en kolay yapılan olacaktır. Butonlar karta lehimlendikten sonra, buton bacaklarına C11,C12 ve C13 kondansatörlerini lehimlemek yeterli olacaktır. Ve karta şerit kablo ile küçük bir konnektörü takmak yeterlidir.

Devre yapımı için fazla bir şey söylemeye gerek yok. Çipler için soket kullanılması yerinde olacaktır. Kristallerin topraklanması çalışma esnasında oluşabilecek sorunları ortadan kaldıracaktır.

Not: Burada sadece saat kaynağı verilmiştir. Yayınlanan sinyalin ne olduğunu görmek için "Atmega 8 ile RS485 iletişimli LED Saat" projesini gerçekletirdiğinizi varsayıyoruz. Sadece 4MHz olarak belirtiler kristalin 3,6864MHz ile değiştirmeniz gerekiyor. Ayrıcı bu proje ile birlikte verilen programı "Atmega 8 ile RS485 iletişimli LED Saat" işlemcisine yüklemeniz gerekiyor.

Şekil-11:Devrenin baskı devresi şekli(üstten görünüm)


Şekil-12:Devrenin yerleşim planı


Şekil-13:Kartın eleman ve yollarla birlikte yerleşim planı.

Devre Elemanları

120RR1
1KR2
10K %1R3,R4,R5
10µF/25VC2,C3
100nFC1,C4,C5,C7,C9,C10,C11,C12,C13
27pFC6,C7
Atmega8IC1
ST485IC2
DS1307IC3
7805IC4
2W10M köprüD1
3mm kırmızı LEDD2
3,6864MHz kristalXTL1
32,768Khz kristalXTL2
6'li headerisp
4'lü sıra pinP3
Bas-bırak butonS1,S2,S3
tip 0 klemensP2
RJ12 konnektör 6p2c veya 6p4c gibiP1
3V Lityum düğme pilPIL1
düğme pil soketi-

Malzeme listesi. Burada işlemci için soket ve 9V adaptör verilmemiştir. 20 bacaklı 1adet ve 8 bacaklı 2adet entegre soketi kullanımı yerinde olacaktır. Ayrıca buton kartı ile işlemci kartı arasındaki bağlantı ve RS485 için gereken bağlantı kişinin kendi tercihine bırakılmıştır. Tüm dirençler %5 toleransıdadır

Şekil-14:Devrenin butonlarının atanma şekli.

Devre için butonların atanma şekli şekil 14 üzerinde gösterilmiştir. Bu atama şekli kişinin isteğine göre düzenlenmesi gayek normal olacaktır.

Şekil-15:Bu projede kullanılan RJ12 konnektörünün görünümü. Telefon bağlantılarında kullanılmaktadır.


Şekil-16:Kart tasarlanırken bazı eksikler olduğu görülüyor. R3,R4,R5 kartın altında.


Şekil-17:Buton kartının alttan görünümü. C11,C12 ve C13 görülmektedir..

Devrenin Çalışması

Sistemin çalışması konusunda:

İşlemci saniyede 2 kez DS1307 üzerinden saniye, dakika, saat veri alıyor.

Alınan bilgilerden dakika ve saat bilgisi kullanılıyor. Saniye sadece saat ve dakika arasındaki ayıraçların yanıp sönmesinde kullanılıyor.

Saat bilgisi:0 (1 bit)+ayıraç bilgisi (1 bit)+saat onlar hanesi (2 bit)+saat birler hanesi (4 bit).
Buna göre denebilir ki, saat bilgisi saniyede 2 kez gönderiliyor. (ayıraç yanıp sönmesi için)

Dakika bilgisi:1 (1 bit)+ dakika onlar hanesi (3 bit) + dakika birler hanesi (4 bit).
Saniyede 1 kez gönderilir.


Devrenin video filmi
Ekler:

ATmega8 hakkında ayrıntılı bilgi için

DS1307 hakkında ayrıntılı bilgi için

"ATMega8 ve DS1307 çipi ile RS485 saat kaynağı" için dosyalar-birleşik

Bu devrenin yapım sorumluluğu size aittir. Devre yapıldı ve çalışıyor. K.A...

5 Ekim 2010 Salı

M8 ve LCD ekran ile Transistör Tester


Giriş

Elektronik ile ilgilenen kişiler için en önemli konulardan birisi de devrede kullandığı veya tamir etmekte olduğu devre üzerindeki yarı iletken (özellikle transistör, diyot, led mosfet,.. gibi) elemenların tipi ve sağlamlığındır. Uzun bir zaman alet kutusunda durmasından, bazen de devreyi üreten kişilerden kaynaklanan nedenlerle yarı iletken elemanın üzerindeki yazılar okunamaz hale gelebilmektedir. Bu projede birçok yarı iletken elemanın tipinin belirlenmesi ve sağlamlığının kontronu sağlamak üzere transistör test cihazı verilmektedir. (Cihazın adı transistör test cihazı olarak belirtilse de, transistörle birlikte, mosfet, jfet, diyot, led,tristör, triak gibi elemanları test etmekle birlikte direnç ve kondansatör ölçümüde yapabilmektedir.)

Not: Devre "www.mikrocontroller.net" sitesinde verilen proje üzerinden bazı değişiklikler yapılarak sunulmaktadır. Elbette internet üzerinde daha geniş bilgi bulabilirsiniz.
Yarı iletken devre elemanları


Şekil-1 :Bazı yarıiletken devre elemanı örnekleri.


Şekil-2 :Şemalarda kullanılan bazı yarıiletken devre elemanı simgeleri örnekleri.

Yarı iletken sınıfındaki elemanların yapımında temel olarak silisyum ve germanyum gibi elementlere bor ,galyum, fosfor ve arsenik gibi elementler ile katkılanarak yarı iletken malzemeler oluşturulur. (Katkı elementine göre P veya N adı alır). (Daha fazla ayrıntı size kalmış)

En basit yarı iletken eleman P-N bağlantısı olan diyottur. (Biraz daha özel yapı olarak LED ile birlikte başka diyot türleride vardır.)Bir multimetre yardımı ile diyot kontrolu yapılabilir. Multimetre Ohm kademesinde iken (kullandığınız ölçü aletine göre değişebilen aralığa dikkat ederek). Problar diyotun iletim yönünde ise bir akım akacağı için bir direnç değeri görülür. Probler ters yönde ise herhangi bir akım akışı olmayacağından bir değer alınamaz. Bir diyot iletim yönünde bir eşik seviyesine ulaşmadan akım akımasına izin vermez. Bu diyotun yapıldığı malzemeye göre karateristik bir özelliktir. (Silisyum için 0,6 ile 0,8V aralığında,germanyum için 0,2V civarındadır.)

Transistör ise teorik olarak birbirine bağlı iki diyot gibi algılanabilir. (Transistörün tipine göre P-N-P veya N-P-N) Bu sayede transistörün Baz bacağı ve tipi (PNP veya NPN) bir multimetre ile bulunabilir.

Test edilen transistörün NPN olduğunu ve baz ucunun belirlediğini varsayarsak, öncelikle (ohm kademesinde) multimetrenin (-) ucu transistörün emiter olduğunu varsayılan ucuna dokunur sonrada multimetrenin (+) ucunu transistörün kollektörüne bağlandığında eğer yapılan bağlantılar doğru ise kollektör- baz arasına bir direnç ile bağlanırsa bir okuma alınır.

Transistör için iki ana parametreden söz etmek mümkün.

Birincisi HFE ;bu kollektör akımının baz akımına oranı olarak görülebilir. (belirli bir akım aralığı içinde olma kaydı ile). Başka bir ifade ile kazanç olarak da görülebilir. Kuvvetlendirme devrelerinde kazanç hesabı için önemli bir parametredir)

İkincisi VBE gerilimidir. BAZ ve EMETÖR arasında iletim yönünde bir diyot olarak görüldüğünden VBE gerilimi bir yerde diyotun iletim yönündeki eşik gerilimidir. Baz akımı akması için BAZ-EMETÖR arasındaki gerilim VBE değerini aşması gerekir. VBE gerilimi transistörün yapıldığı yarı iletken malzemeye göre karakteristik bir özellikliktir.

Aslında burada anlatılan yarı iletkenler yanında değişik özellik ve yapıda triak, tristör, fet (çeşitli türevleri) gibi birçok eleman vardır. Her birinin multemetre ile test edilmesi göründüğü kadar kolay değildir. Çoğunlukla elemanların çalışıp çalışmadığı özel test devreleri kullanılarak testleri yapılır.

Devre

Devre 9V pil ile beslenebileceği göz önüne alınarak bir regülatör üzerinden besleniyor. Pil gerilimi belli bir seviyenin altına düştüğünde devrenin çalışmayacağı için devre üzerinde 9V bölümünden ve gerilim bölücü direnç üzerinden giriş gerilimi kontrol edilmektedir. Pil gerilimi düşükse LCD ekran üzerinde gösterilmektedir ve hatta devre kilitlenmekte ve ölçüm yapılmamaktadır.(Adaptör ile kullanılması durumunda bu bölüm doğrudan devre dışı kalmış oluyor)

Üç ölçüm bacağı ve bu bacakların 5V ve 0V arasında anahtarlamasını akım sınırlama dirençleri üzerinden sağlayan kontrol bacakları yarı iletken eleman ölçümünü sağlar.

Basit bir diyot için düşünülecek olursa, sadece iki ölçü probu diyoda bağlıdır ve üçüncü prop boştadır. Devre diyodun iletim yönündeki bağlantısını bulmak için tarar. Bağlantı bulunduğu zaman sadece diyot üzerindeki eşik gerilimini ölçerek sonucu LCD ekranda göstermek.

Şekil-3 :Devre 2N3055 transistörünü test ederken-1 nolu prob siyah kablo ile işaretlenmiştir


Şekil-4 :Eleman bağlı değil veya ölçüm aralığı dışında kaldığı zaman ekran mesajı

Devre gösterge olarak 2x20 LCD ekran içeriyor. RS,E,D4,D5,D6,D7 bacak bağlantısı ile 10'lu şerit kablo üzerinden işlemciye bağlı.(kontrast ayarı ile birlikte.)LCD ekran 4 bit modunda ve W/R ucu kullanılmaksızın sürekli W (yazma) durumunda.

Şekil-5 :Kartın üstten görünümü-ekran bağlı değil


Şekil-6 :Kablosu takılmış LCD ekran

Şema

Sistemin kabini IC1 atmega8 işlemcisi oluşturuyor.Dikkat edildiği üzere bu devre üzerinde kristal yok. İşlemci iç saat üretecini kullanıyor.İç saat frekansı 1MHz olarak atanmıştır. İllede kristal kullanmak isteyenler için kristal frekansı 1MHz olmalıdır.

R1..R6 dirençleri yarı iletken malzeme test edilirken akım sınırlama ve gerilim (akım) ölçüm elemanı olarak kullanılmakta. (işlemci kontrolu ile).

R8 ve R9 dirençleri girişteki gerilimi ölçmek için (burada pil gerilimi için 9V oluyor) gerilim bölücü olarak kullanılıyor. R8 ve R9 dirençlerinin birbirine bağlandığı nokta aynı zamanda IC1'in ADC uçlarından birine bağlanmakta. Böylece ölçüm sonucu pil 7,6V ise "pil zayıf", pil 7,15V ise "pil boş" uyarısını verir. Besleme için adaptör kullanımında bu bölüm zaten sürekli normal çalışma olarak algılayacaktır.

R7 direnci IC1'in sıfırlama ucunun parazitik sinyallerden etkilenmesini engellemek için sürekli Vcc seviyesinde tutulmasını sağlar.(pull-up direnci)

IC2 entegresi 9V geriliminde işlemcinin kullandığı 5V besleme gerilimi oluşturulmasında kullanılan regülatör olan 7805'tir.

R10 trimpot LCD ekran için kontrast ayarında kullanılır. İsteyen tabii ki değerini deneyerek sabit dirençte kullanabilir. Farklı LCD tipleri için farklı büyüklükte sabit dirençler gerekebilir.

S1 ölçüm başlatmak için bas-bırak butonudur. Butona paralel bağlı C2 kondansatörü olası parazitik etkilere karşı filtre olarak kullanılmaktadır.

P2 LCD şerit kablo için bağlantı konnektörüdür.

S2 besleme gerilimini aç/kapa için anahtardır.

P3 adaptör ile besleme için bağlantı konnektörüdür.

Geri kalan kondansatörler filtre amaçlı kullanılmaktadır.

Şekil-7 :Devrenin blok şeması


Şekil-8 :Devrenin şeması

Devre Yapımı

Devre yapılındaki en kritik veya uğraştıracak eleman LCD ekrandır. Çünkü yassı şerit kablonun bir ucu konnektörlüde olsa da, diğer ucunun kabloları tek tek LCD konnektörüne lehimlenmesi gerekiyor. Daha sonra LCD tarafının kablo bağlantısına biraz sıcak silikon sıkılması kablo kopmalarını engel olacaktır.

Tüm dirençlerin (R7 hariç) %1 toleransda olması önemlidir. Çünkü ölçüm sistemi bu dirençlerin değerinin tam olmaasına bağlıdır.

Şekil-9:Devrenin baskı devresi şekli(üstten görünüm)


Şekil-10:Devrenin yerleşim planı


Şekil-11:Kartın eleman ve yollarla birlikte yerleşim planı.

Şekil-11 üzerinde kırmızı ile gösterilen çizimler kart üzerine kablo bağlantılarını belirtir. R9 direnci (tek kalan ucu) kablo ile 9V arasında bağlanması gerekiyor. Aslında 9V test bölümü iptal edilebilir, ama devreyi pil ile kullanma ihtimaline karşılık bu bölüm kullanımda bırakılmıştır.

Şekil-12:Test probu olarak kullanılan eleman.

Kartın en altındaki R1...R6 dirençlerinin uçlarında yer alan bağlantılara bir uçlarına kıskaç bağlı 3 adet kablo ile bağlantı yapılması gerekiyor. Yarı iletkenleri ölçmek için kullanılacak problardır.

Devre Elemanları


680R %1R1,R3,R5
470K %1R2,R4,R6
10K %1R7,R9
3K3 %1R8
10K TrimpotR10
10µF/25VC1,C3
100nFC2,C4,C5,C6
Atmega8IC1
7805IC2
10P konnektör erkek-kartP2
adaptör girişiP3
6'li headerisp
2x20 LCD(PCM200D)LCD modül
Bas-bırak butonS1
aç/kapa anahtarS2
10'lu kablo-
10P konnektör dişi-kablo-
3 adet prob-

Malzeme listesi. Burada işlemci için soket ve 9V adaptör verilmemiştir. Kaliteli 20 bacaklı soket oluşabilecek problemlerin önüne geçecektir.

Not:Dirençler her ne kadar %1 toleranslı olsada direnç değerlerindeki değişiklik ölçüm sonuçlarına yansıyacaktır.Bu nedenle %1 toleransın üzerindeki dirençlerde ölçüm hatası haliyle daha yüksek olacaktır.


Şekil-13:Kart üzerindeki P2 konnektörünün bacak bağlantıları (eleman yüzünden).


Şekil-14:Kartın arkadan görünümü. 9V ile R9 direnci arasındaki kablo bağlantısı görülmektedir.

Şekil 14 kartın arkadan görünümünü vermektedir. Karta bağlanan kablolar görülmektedir. Kablolar karta lehimlendikten sonra kablonun lehim yerine yakın yerden kopmasına engellemek için sıcak silikon ile karta yapıştırılması yerinde olabilir.(Yoksa çok fazla oynayan kablolar, lehimlerine yakın yerlerinden kopmaları çok kolay olmaktadır).
İşlemci programı

İşlemci için program gcc (C üzerinde yazılmış), bu devre üzerinde derleyici olarak AVR GCC kullanıldığından (program farklı bir derleyici veya farklı bir sürüm için yazılmış olabilir) zamanlayıcı konusunda bazı sorunlar yaşanılsa da zamanlayıcı satırına eklenen birkaç kod ile problemler aşıldı.

Orjinal programda CD ekran zamanlayıcı ile ilgili bölüm değiştirildi.

Program sadece atmega 8 için değişiklik yapıldı.

Ek olarak ekran mesajları ile ilgili olarak Türkçe karakter kullanabilmek ve mesajları Türkçeleştirebilmek için bazı eklemeler ve değişiklikler yapıldı. Bunlar;

-LCD ekrana Türkçe karakter eklemek için CGRAM için komut ve Türkçe karakter verileri eklerdi. (ı,ğ,ş,ç,ö,ü)

-Ekran mesajları ile ilgili kod satırları Türkçe menü öğeleri ve mesajları ile değiştirildi.

-Orjinal programda eeprom üzerinden erişilen ekran mesajları işlemci programı içine alındı.

-Aslında istemeden de olsa LCD ekranın "E" bacağı baskı devre oluşturulurken yeri değiştirildiği için işlemci portu değiştirildi.
Kutulama


Şekil-15:Üzerinde delikleri açılmış plastik kutu.

Devrenin üzerindeki kablo bağlantıları oluşu ve kullanım amacının test olduğu düşünüldüğünde, yapılan kutulanması yerinde olacaktır. Piyasada satılan plastik kutulardan biri kullanılarak devre kutulandı. Kart, LCD ekran ve adaptör girişi kutusa sıcak silikon ile yapıştırıldı.

Şekil-16:Devre kutulanmış halde. Siyah kablolu prob 1. uçtur.


Ölçü aleti olarak kullanılan araçların kutulu halde kullanımı daha kolay ve pratik olmaktadır.

Şekil-17:Çift diyot (2 renkli LED) ölçümü(OK-Ortak Katot)


Şekil-18:Mosfet ölçümü


Şekil-19:Triak ölçümü


Şekil-20:Transistör ölçümü(2N3055)


Şekil-21:Diyot ölçümü(1N5819)


Devrenin Çalışması

Ekler:

ATmega8 hakkında ayrıntılı bilgi için

M8 ve LCD ekran ile Transistör Tester için dosyaları -birleşik

Bu devrenin yapım sorumluluğu size aittir. Devre yapıldı ve çalışıyor. K.A...

Translate

Sayfalar

Etiketler

İzleyiciler