"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.
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.
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!!
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.
--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
"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
--Saat Modülü Malzeme Listesi:
120R | R1 |
1K | R2 |
10K %1 | R3,R4,R5 |
10µF/25V | C2,C3 |
100nF | C1,C4,C5,C7,C9,C10,C11,C12,C13 |
27pF | C6,C7 |
Atmega8 | IC1 |
ST485 | IC2 |
DS1307 | IC3 |
7805 | IC4 |
2W10M köprü | D1 |
3mm kırmızı LED | D2 |
3,6864MHz kristal | XTL1 |
32,768Khz kristal | XTL2 |
6'li header | isp |
4'lü sıra pin | P3 |
Bas-bırak buton | S1,S2,S3 |
tip 0 klemens | P2 |
RJ12 konnektör 6p2c veya 6p4c gibi | P1 |
3V Lityum düğme pil | PIL1 |
düğme pil soketi | - |
--LCD Modülü Malzeme Listesi:
120R | R3 |
1K | R2,R4 |
10K | R5 |
10K yatık Trimpot | R1 |
10µF/25V | C1,C5,C7,C10 |
27pF | C3,C4 |
100nF | C2,C6,C8,C9 |
2W10M veya benzeri köprü diyot | D2 |
ST485 | IC3 |
7805 | IC2 |
ATtiny2313 | IC1 |
3,6864Mhz kristal | XTL1 |
3mm LED | D1,D3 |
6p6c veya 6p2c RJ12 konnektör | P4 |
tip 0 klemens | P3 |
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ı 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.
Ayar Gir/Tamam | Bası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 Yap | Ekran ü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.
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.
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.
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....
Hiç yorum yok:
Yorum Gönder