Basit RTC ?

Başlatan Maxim, 09 Aralık 2009, 02:01:45

aslan_korhan

Şebekenin 50Hz Sinyalini Clock olarak kullanabilirsin.
Bu şekilde çalışan birçok dijital saat mevcut.
Şehir Şebekesinin Frekansı oldukça sabittir...
Dünyada 10 çeşit insan vardır. Binary bilen ve bilmeyenler.

Erhan YILMAZ

Bilindiği gibi piclerin timer 1 modülü harici kristal ile çalışıyor bu kristali 32.768 khz kullanıp timer1 ile bunu sağlayabilirsiniz hatta microchip bu uygulama ile ilgili örnek kodu datasheetlerde timer1 modülünü tanıtırken vermiş pic16f88in datasheetinden aldığım kodları ekliyorum timer1 modülü olan bütün picler için kullanılabilir

RTCinit BANKSEL TMR1H
MOVLW 0x80 ; Preload TMR1 register pair
MOVWF TMR1H ; for 1 second overflow
CLRF TMR1L
MOVLW b'00001111' ; Configure for external clock,
MOVWF T1CON ; Asynchronous operation, external oscillator
CLRF secs ; Initialize timekeeping registers
CLRF mins
MOVLW .12
MOVWF hours
BANKSEL PIE1
BSF PIE1, TMR1IE ; Enable Timer1 interrupt
RETURN

RTCisr 
BANKSEL TMR1H
BSF TMR1H, 7 ; Preload for 1 sec overflow
BCF PIR1, TMR1IF ; Clear interrupt flag
INCF secs, F ; Increment seconds
MOVF secs, w
SUBLW .60
BTFSS STATUS, Z ; 60 seconds elapsed?
RETURN ; No, done
CLRF seconds ; Clear seconds
INCF mins, f ; Increment minutes
MOVF mins, w
SUBLW .60
BTFSS STATUS, Z ; 60 seconds elapsed?
RETURN ; No, done
CLRF mins ; Clear minutes
INCF hours, f ; Increment hours
MOVF hours, w
SUBLW .24
BTFSS STATUS, Z ; 24 hours elapsed?
RETURN ; No, done
CLRF hours ; Clear hours
RETURN ; Done

Klein

Alıntı yapılan: "aslan_korhan"Şebekenin 50Hz Sinyalini Clock olarak kullanabilirsin.
Bu şekilde çalışan birçok dijital saat mevcut.
Şehir Şebekesinin Frekansı oldukça sabittir...
Şebeke frekansını kullanan saatlerin yıllık ortalama kayması 15-20 dk civarı.  Kristal'e bile güvenemiyorken......

Maxim

Alıntı yapılan: "Klein"Pil kullanmanız gerekli. Hafıza, pil kulanıp kullanmama ile ilişkili birşey değil. Elektrik kesintisinde  hafıza da pille besleniyor.  Hafızada kendi verinizi tutabiliyorsunuz. Eğer  çok fazla kalıcı bilgi depolamayacaksanız eeprom kullanmak yerine bu alanı kullanabiliyorsunuz.  Çoğunlukla eeprom dan daha güvenlidir.

klein hocam ,
ben bunu net olarak anlamadım ,
neden hafıza gerekiyor rtc entegresi içinde ?
hafızaya ne atıyoruz ? neden atıyoruz ?
mikroişlemcimizde zaten var hafıza

Klein

RTC içerisinde veri hafizasi gerekmiyor. Hafiza özellik olarak sunuluyor. Kullanmak istege bagli. EEpromlarda  bazen veri kayb1 yasaniyor. RTC icerisindeki hafiza  da pil ile beslendigi için bazi durumlarda  daha guvenilir oluyor. Ayrica her islemcinin eeprom hafizasi yok. Disaridan eeprom baglamak gerekiyor. eger RTC uygulamasi varsa,  hafizali RTC kullanip   ekstra eeprom atmaktan kurtuluyorsunuz.

Maxim

evet arkadaşlar bu kadar faydalı bilgilerinizden sonra bende birkaç şey okudum inceledim ,datasheetlere bakındım ,kodlara baktım ve bu işi kristal ile yapmaya karar verdim .
gün ay yıl gibi bir şey istememiyorum ve eğer kristalimiz kaliteli değilse ds1307 entegresi bile geri kalmıyormu ?
demekki burada en önemli nokta kaliteli kristal.

azimli

bu haliyle senede iki kere zaten saati ileri geri alacaksın bence standart saat kristali ile ve işlemci ile bu iş olur şaşsa şaşsa 3-5 saniye şaşar saniye istemiyorsan 59 saniye şaşsın dakika değişmedikten sonra fazla kasmayıp projenizi basitten çıkarmaya sonra geliştirmeye bakın sizin bu projenizdeki tek sorun benim gördüğüm besleme devamlı varmı batarya devreye girme durumu varmı sorusu bu kararı verin ve projeye son noktayı koyun.

Erol YILMAZ

sıradan bi xtal 100 ppm hataya sahip olabilir,

Bunun da anlamı :

100/1M * 86400 = 8.64 sn/gün'dür,

259.2 sn/ay,  (yaklaşık 4.5 dk)

3110 sn/yıl yapar. (yaklaşık 52 dk)


Bence öyle pek sıradan bi xtal ile başlamayın :D

azimli

Allegro,

yazdıklarınız genel standart kristal için.

peki dsPIC24 serisi içindeki RTC uygulaması ve Genel çalışma için kullanılan kıristalin hata oranları bir yerlerde yazıyormu?

işlemci içindeki kristallerde durum nedir burda sıcaklıkda işin içine girecek tabiki dsPIC24 lerin çalışma hızı 40Mips seçildiğinde işlemci core üzeri hissedilebilir derecede ısınıyor zannediyorum ortam 25 derece ise çip üzeri ısı 35-45 derece civarına çıkıyor.

Erol YILMAZ

Alıntı yapılan: "azimli"Allegro,

yazdıklarınız genel standart kristal için.

peki dsPIC24 serisi içindeki RTC uygulaması ve Genel çalışma için kullanılan kristalin hata oranları bir yerlerde yazıyormu?

Kullandığınız kristalin markası, modeli belli VE datasheeti varsa
yazıyordur elbette.

Maxim

yazıyor yazıyor ,
tabi karaköyde standart elektronikçilerden alınan xtal ppm değeri bilinemez ama çoğu büyük firma sattıkları ürünlerin özelliklerinide veriyor , bakındım birazda , elbette düşük ppm değerli xtaller pahalı ,

mesela 20ppm değerli bir kristal iş görmezmi ? yada 30ppm ?

birde merak ettiğim bir konu ,
bende xtaller var ,
bazılarının üzerinde 4.000 yazıyor ,
bazılarında 4.00000 gibi .

son olarak bir algoritma yapsak programın içine ,
buton ile kontrol edilebilse ,
1 gün sonra baktınız saat 2 saniye geri kaldı ,
buton ile bir değeri arttırarak bu ince ayarı sağlayabilsek ?
yani bir ara çarpan gibi bir değer.

pruva

Alıntı yapılan: "maxiboost"bir saat yapmak istiyorum ,
basit rtc entegresi varmıdır ?

gün ay yıl göstermesine gerek yok ,
sadece saat ,dakika saysın yeter ,saniye bile olmasın .

böyle bir entegre biliyormusunuz

LM8560

Eagle_Tim

Alıntı yapılan: "maxiboost"yazıyor yazıyor ,
tabi karaköyde standart elektronikçilerden alınan xtal ppm değeri bilinemez ama çoğu büyük firma sattıkları ürünlerin özelliklerinide veriyor , bakındım birazda , elbette düşük ppm değerli xtaller pahalı ,

mesela 20ppm değerli bir kristal iş görmezmi ? yada 30ppm ?

birde merak ettiğim bir konu ,
bende xtaller var ,
bazılarının üzerinde 4.000 yazıyor ,
bazılarında 4.00000 gibi .

son olarak bir algoritma yapsak programın içine ,
buton ile kontrol edilebilse ,
1 gün sonra baktınız saat 2 saniye geri kaldı ,
buton ile bir değeri arttırarak bu ince ayarı sağlayabilsek ?
yani bir ara çarpan gibi bir değer.

Ozaman sizin 2. şaşmayan bir saate ihtiyacınız olabilir 2 saniye geri yada ileri olduğunu nasıl anlamayı düşünüyorsunuz :)
onun yerine 1 gün test etseniz ve ne kadar ileri yada geri kalıyorsa yazılımdan her yeni günün başında otomatik olarak ayarlasınız daha iyi olur sanırım..
Software and Hardware Design...

Klein

Alıntı yapılan: "Eagle_Tim"
Alıntı yapılan: "maxiboost"yazıyor yazıyor ,
tabi karaköyde standart elektronikçilerden alınan xtal ppm değeri bilinemez ama çoğu büyük firma sattıkları ürünlerin özelliklerinide veriyor , bakındım birazda , elbette düşük ppm değerli xtaller pahalı ,

mesela 20ppm değerli bir kristal iş görmezmi ? yada 30ppm ?

birde merak ettiğim bir konu ,
bende xtaller var ,
bazılarının üzerinde 4.000 yazıyor ,
bazılarında 4.00000 gibi .

son olarak bir algoritma yapsak programın içine ,
buton ile kontrol edilebilse ,
1 gün sonra baktınız saat 2 saniye geri kaldı ,
buton ile bir değeri arttırarak bu ince ayarı sağlayabilsek ?
yani bir ara çarpan gibi bir değer.

Ozaman sizin 2. şaşmayan bir saate ihtiyacınız olabilir 2 saniye geri yada ileri olduğunu nasıl anlamayı düşünüyorsunuz :)
onun yerine 1 gün test etseniz ve ne kadar ileri yada geri kalıyorsa yazılımdan her yeni günün başında otomatik olarak ayarlasınız daha iyi olur sanırım..
Evet ikinci şaşmayan saat konusunda haklısın. Buton koyup her seferinde ileri geri almak pek iyi bir çözüm gibi görünmüyor.  Ortam sıcaklığı değişmez ise birkaç düzeltmeden sonra doğru zamanı tutturabilirsin. Ama ortam sıcaklığı değiştiğinde yine ayarlamak zorunda kalırsın.
Kristalin hep aynı marka olması şartıyla  şöyle bir çözüm getirilebilir:
kristalin  sıcaklık-frekans değişim tablosu bulunur. bir  sıcaklık çipi ile kristale en yakın noktadan  sıcaklık ölçümü yapılır. Sıcaklık-frekans tablosuna göre düzeltme yapılır.  
Ama kaliteli bir kristal kullanmak veya kristali içinde olan çip kullanmaktan ucuza gelir mi ? sanmam.

@allegro hocam
32768hz saat kristalleri  genelde 10-20ppm civarında oluyor. ortalama kalitedeki bir saat kristali ile yapılan saat  devresi , sıcaklık farkı çok yüksek olmadığı sürece yıllık 6-10 dakika aralığında bir sapmayla çalışıyor.

Maxim

:)
ayar kontrolu için kolumdaki saat ne güne duruyor ?

üstelik aylardır ayar yapmadım , şaştığınıda görmedim ,
ne ileri ne geri kalmıyor, madem kol saati gayet güzel çalışabiliyor bu adamların kullandığı neki normal kol saatlerinde ? hatta ucuz duvar saatlerinde .

bu iş bu kadar zor olmasa gerek ,
yada başka bir bit yeniği var bu RTC işinde .

eskiden hatırlarım ucuz digital saatleri kurcalar içini açardım hepsinin içinde minik bir xtal olurdu gene .