DS3231 saat geri kalma problemi yardım

Başlatan telbozan, 10 Ekim 2018, 21:33:08

telbozan

  DS3231 I2C portlu saat entegresi bir projemde dahili kristal osilatörlü ve TXCO olduğu için kullandım. Ultra accurate yazıyor yılda +- 3 dakika hassasiyetli ama yaklaşık 20 cihazda şuan çalışıyor neredeyse hepsinin saatleri geri kalıyor. Sebebini bilen var mı acaba ?

muhendisbey

Çok basit, klon entegre kullanıyorsun ondan kaynaklanıyor.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

telbozan

Evet Türkiyede satılan modüllerden  kullandım. Teşekkürler .

algorist

Geçen ay sanırım bir saat projesi paylaşılmıştı ama linkini bulamadım.
e-e-e

tekosis

Sapma bütün entegreler için aynı miktarda ise bu hatayı yazılım ile bir miktar tolere edebilirsiniz.
http://www.teknikhoca.com - İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

telbozan

Entegrenin Kalibre registeri var ama bu kadar geri kalması mümkün değil. Hepsi farklı farklı zamanlarda geri kalıyor. Mühendisbey kardeşimin dediği gibi olmalı bir tane orjinal alıp deneyeceğim. Onu da burdan bildiririm tekrar.

ete

Yaklaşık 3 yıldır 3 ayrı saatte bu entegreyi kullanıyorum. Bu süre zarfında birisi yaklaşık 40 sn geri kalmış. Bir diğeri 30 sn kadar geri kalmış ve birisi de neredeyse başabaş gidiyor gibi.
Bir ara bir başka saate de taktım ama yanlışlıkla beslemesini 5V vermişim. O saatte neredeyse 1 hafta içinde hatırı sayılır bir geri kalma oldu. Sebebini araştırınca beslemeden olduğuna kanaat getirerek seri iki diyot attım ama sonuç düzelmedi. bende bir başka modül kullanarak sorunu çözmüş idim. O saat şimdi başka yerde çalışıyor ve sonucu bilemiyorum ama 1 hafta kadar takip etmiştim sorun yok idi.
Bu durumda besleme nin 3V civarlarında 4V un altında olmasında yarar görüyorum.
Ayrıca programda entegreyi sıkboğaz etmeyecek aralıkta zaman okuması yapılmalı. İncelediğim pek çok programda rastgele okuma emri verildiğini görüyorum. Bu yaklaşık 10 ms lik- 20 ms lik aralıklara tekabül ediyor. Biliyorsunuz entegre kendi içinde zamanı takip edip okuma registerlerini yeniliyor ve bunu sanırım her 1000 ms de bir yapıyor.Yani entegre bir yandan kendi registerlerini yenileme ile uğraşırken bir yandan da sizin okuma emrinize cevap vermek zorunda. Bunu dikkate alarak okuma sıklığını mantıklı bir seviyede tutmak gerekir diye düşünüyorum. Bana göre okuma sıklığı 500 ms den az olmamalı ideali 1000 ms dir diyorum.

Her 1000 ms de bir değişen bir zamanı zaten 10 -50 ms sıklıkla okunmasıda pek mantıklı olmasa gerek.
Son olarak kullandığım modülleri Çinden aldığımı belirtmek isterim. Resimlere bakınca buradan alınanlarında oradan gelme olduğunu anlamak zor değil. Bir tane de çakma entegre çıkabilir ama hepsinde aynı durumun yaşanması normal değil bence.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

sezgin05

Kod Seç
ZAMANOKU:
        
I2CIn SDA,SCL,$D0,$00,[SEC,MINU,HOU]
        
SAN =((SEC>>4) & $0F)*10+(SEC & $0F)                  
        
DAK=((MINU>>4) & $0F)*10+(MINU & $0F)
        
SAAT=((HOU>>4) & $03)*10+(HOU & $0F)
Kod Seç
ZAMANYAZ
       
SAAT=((SAAT/10)*16)+(SAAT//10)
       
DAK=((DAK/10)*16)+(DAK//10)
       
I2COut SDA,SCL,$D0,$00,[00,DAK,SAAT]
       
DelayMS 100

Yukarıdaki kodlarla 1 yıldır sıkıntısız çalışıyor.

telbozan

 Beslemeyele ilgili söylediğinizi deneyeceğim. 5v ile beslemiştim. Bu arada birşey dikkatimi çekti cr2032 pilin hafif şiştiğini gördüm. Sanırım 5v beslemeden kaynaklanmış. Bende yazılımda saati 1000 ms aralıkla sorguluyorum. Sorgulama sıklığı konusunda düşüncenize aynen katılıyorum.

telbozan

Sezgin05 kardeşim kod için teşekkürler.

Erol YILMAZ

Önemli işler için, "çok popüler olmayan çipleri" kullanmak anlamlı olabilir.

xoom

Alıntı yapılan: Erol YILMAZ - 11 Ekim 2018, 21:22:29Önemli işler için, "çok popüler olmayan çipleri" kullanmak anlamlı olabilir.
Mesela ?

yesilu

pilin şişmesi modülün şarj devresi olmasından kaynaklanıyor, cr2032 ile kullanmak için cam diyotu sökmek lazım diye hatırlıyorum. modül orjinal haliyle xx2032 (hatırlamıyorum, şarjlı modeli)  ile kullanılmak üzere tasarlanmış.

Erol YILMAZ

12 Ekim 2018, 01:26:47 #13 Son düzenlenme: 12 Ekim 2018, 22:23:12 Erol YILMAZ
PCF2127  gibi birsey olabilir...

https://www.nxp.com/products/analog/signal-chain/real-time-clocks/rtcs-with-temperature-compensation/accurate-rtc-with-integrated-quartz-crystal-for-industrial-applications:PCF2127

https://www.nxp.com/docs/en/data-sheet/PCF2127.pdf

The PCF2127 is a CMOS Real Time Clock (RTC) and calendar with an integrated Temperature Compensated Crystal (Xtal) Oscillator (TCXO) and a 32.768 kHz quartz crystal optimized for very high accuracy and very low power consumption. The PCF2127 has 512 bytes of general-purpose static RAM, a selectable I²C-bus or SPI-bus, a backup battery switch-over circuit, a programmable watchdog function, a timestamp function, and many other features.

sezgin05

Benim devrem 5 volt ile çalışıyor. Kart olarak da resimdekini kullanıyorum.