STM32 - RTC Kalibrasyonu

Başlatan yusuffyk, 11 Ağustos 2016, 17:06:42

yusuffyk

Merhabalar,

STM32F1 serisi ile bir proje üzerinde çalışıyorum. RTC sini kullanırken bir problemle karşılaştım. Her 45 saniyede 1 saniye geri kalıyor. Kalibrasyonuyla uğraşan oldu mu daha önce ? Forumdaki diğer konuları okudum ancak işe yarar sonuç bulamadım, rtc kalibrasyonu ile ilgili datasheed var ancak siz böyle bir problemle karşılaştınız mı ve nasıl çözdünüz merak ettim.
http://yusuffyk.com  ||  http://www.youtube.com/yusuffyk

skara1214

Alıntı yapılan: yktronik - 11 Ağustos 2016, 17:06:42
Merhabalar,

STM32F1 serisi ile bir proje üzerinde çalışıyorum. RTC sini kullanırken bir problemle karşılaştım. Her 45 saniyede 1 saniye geri kalıyor. Kalibrasyonuyla uğraşan oldu mu daha önce ? Forumdaki diğer konuları okudum ancak işe yarar sonuç bulamadım, rtc kalibrasyonu ile ilgili datasheed var ancak siz böyle bir problemle karşılaştınız mı ve nasıl çözdünüz merak ettim.
rtc kalibrasyonu tek başına iş görmez lf kristal seçiminede dikkat etmen gerekiyor
Herkes ölür ama herkes gerçekten yaşamaz

yusuffyk

32768 kHz ve 6.8pF lık kondansatörler kullanıyorum. tam olarak neye dikkat etmeliyim ?
http://yusuffyk.com  ||  http://www.youtube.com/yusuffyk

ahmet_zxc

çooook kaliteli bi kristalle (sıcaklık kompanzasyonlu) bir devre yap.

232 den üretimdeki devrene bağla ve 8 baud da haberleştir. gönderdiğin data boyutu ve karşıdaki ölçülen sapmaya göre bir çarpan tesbit edip kristalden gelen frekansa ekleyip öyle işlem yap

magnetron

RTC_SetPrescaler(xxxyyy)

standart peripheral library de böyle bir fonksiyon var

yusuffyk

Alıntı yapılan: ahmet_zxc - 11 Ağustos 2016, 18:03:51
çooook kaliteli bi kristalle (sıcaklık kompanzasyonlu) bir devre yap.

232 den üretimdeki devrene bağla ve 8 baud da haberleştir. gönderdiğin data boyutu ve karşıdaki ölçülen sapmaya göre bir çarpan tesbit edip kristalden gelen frekansa ekleyip öyle işlem yap

biraz uğraştırıcı gibi, biraz düşüneyim bu seçeneği.

Alıntı yapılan: magnetron - 11 Ağustos 2016, 18:30:32
RTC_SetPrescaler(xxxyyy)

standart peripheral library de böyle bir fonksiyon var

evet var ve bende kullanıyorum, initialize ederken 32768 olarak çağırıyorum o fonksiyonu ? farklı bir şey mi var bilmediğim ?
http://yusuffyk.com  ||  http://www.youtube.com/yusuffyk

magnetron

işte onu 32768 den biraz eksik ya da fazla yaparsan

saniye tıklaması hızlanıyor veya yavaşlıyor

1 sayı artırdığında  günde kaç saniye değiştiğini  (32768 / 32769 ) x 86400 formulunden yaklaşık hesaplayabilirsin ( galiba böyleydi şimdi tam hatırlayamadım )

ahmet_zxc

Alıntı yapılan: magnetron - 11 Ağustos 2016, 18:30:32
RTC_SetPrescaler(xxxyyy)

standart peripheral library de böyle bir fonksiyon var

mesele bu değeri anlık olarak tespit edebilmek zaten. bir gün sonunda kaç saniye saptığına bakmak çözüm değil. çünkü gün içerisinde sıcaklık ve voltajda milyon kere değişim olmuş olabilir.

kantirici

@ahmet_zxc bahsettiği yöntem güzel ve kolay. Bu, o anki sıcaklık değeri için yapılır. Daha hassas çözümler için; istenilen sıcaklıklar için tek tek bu yöntem uygulanıp değerler belirlenip bir look-up table dan o anki sıcaklığa göre dinamik kalibrasyon değeri çekilir.

yusuffyk

malesef onu da değiştirip deniyorum, en yaklaştığım oran 44.2 saniyede 1 saniye geri kalıyor.
o an ki sıcaklık değerine göre değişmeden sabitlediğim bir değer olmadı malesef. bunun nokta atışını nasıl yapabilirim ?
counter olayını da tam anlayamadım,devreye ekstra bir şey eklemeden bu sorunu çözmeye çalışıyorum. nasıl bir şey yapabilirim ?
http://yusuffyk.com  ||  http://www.youtube.com/yusuffyk

z

xtal oscnin frekans kaydırması çok normal bir durum.

Çok dakik bir saat yapmak istiyorsan xtal devresini fırınlaman ve sıcaklığı sabitlemen şart.

Bir kere 40 küsür saniyede1 sn kayma oluyorsa öncelikle xtal osc frekansını ayarlaman lazım.

32768*40=1310720 pals demek.

Senin devrende 1310720 palsde +/- 32768 pals hata var.

Yani her 40 palsde 1 pals fazlalık yada eksiklik var. Bu %2.5 hata demek.

Arada bir sıcaklığı ölçüp kalibrasyon yapsan ne olacak? O ana kadar hatalar üstü üste toplandı toplanacağı kadar.

Eğer işlemcinin arada bir bilgisayarla vs iletişim haline geçme imkanı varsa saati bilgisayardan alıp o değere kendini ayarlasın.

Xtal osc frekansını olması gereken değere ayarlayıp ardından sıcaklık değişimlerinde frekans ne kadar oynuyor bir gözlemek lazım.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Erol YILMAZ

INTRC osc'ye bile %1 hata veriyor Microchip !

Xtal in %2.5 hata ile çalışması normal sınırların çok çook üzerinde hatalı çalıştığını gösterir.