Stránka 1 z 1

Zpožďování DS3231

Napsal: 19 úno 2020, 10:44
od hafca
Postavil jsem hodiny s ruskou VFD IV-18, kde je RTC DS3231. Hodiny se při běhu zpožďují o několik sekund denně. Pokud vypnu napájení a zůstanou jen na baterce, tak se za 8 hodin nezpozdí a drží čas jak mají.
Je tam ještě jeden zádrhel a tím je měření teploty čidlem TMP36. Na každý dotaz na teplotu dostanu úplně jinou hodnotu, jako by čidlo nebylo připojené.
Může být na vině krystal nebo Atmega 328P, která to celé pohání, nebo je chyba v něčem jiném?

Napsal: 19 úno 2020, 10:52
od termit256
Nejspis budes mit nejakou chybu v softu, ja jsem s tim stavil troje hodiny pred mesicem a drzi to jak pribite. V pripade ze se oscilator rozjizdi, mas moznost zapisem do jednoho z registru provest korekci rychlosti chodu oscilatoru, ale pokud to jede z baterky dobre, problem v tom nebude. Blokovani napajeni kondikama u kazdeho svabu na desce mas v poradku? Jako cidla teploty jsem pouzil bezproblemove DS18B20.

Napsal: 19 úno 2020, 11:03
od hafca
U Atmegy je z strany spojů 100n, u druhého co ovládá displej je taky jeden.
Soft jsem nepsal já. :(

Napsal: 19 úno 2020, 11:09
od termit256
Njn, tak to je tezky. Pokud jsi postahoval nejake paskvily od arduinistu z internetu a zkombinoval do sebe, byl by zazrak kdyby to fungovalo :-)
Mi to bezi na uplne jine archtekture nez AVR, takze v tom ti moc nepomuzu.
Predpokladam ze tim behem na barerku jsi myslel zalohovani RTC, nebo ti z baterie bezi i ta atmega?
Ty blokovaci kondiky bys mel mit i u RTC.

Napsal: 19 úno 2020, 11:18
od hafca
Ano, myslel jsem tím, že je vyplé napájení a běží jen baterka v RTC. Zkusím přidat ještě kondezátor přímo na konektor RTC.
Teď mi napadla ještě jedna věc, mám tam modul step down a step up pro napájení displeje. Aby to nakonec nebylo od nich nějaké rušení.

Napsal: 19 úno 2020, 11:35
od termit256
Mozne to je, pokud to mas nejak podivne nadratovane. Ten blokovaci kond by mel byt co nejbliz k vyvodum z rtc. Nech to den bezet bez tech menicu k displeji a uvidis jestli to je tim.

Napsal: 19 úno 2020, 11:44
od hafca
Sice budu muset proškrábnout DPS, ale za pokus to stojí.
Teď když jsem se na to zpoždění zaměřil, tak to vypadá, že je to o 1 sec. za hodinu. :roll:

Napsal: 19 úno 2020, 13:52
od dobrman
DS3231 (z Ali) mám provozu dva moduly v meteo stanici a termostatu, čas u obou ujede za cca půl roku (když přehazuju letní-zimní čas) tak asi o 20s (zpoždění). Obě zařízení jsou napájený klasickým spínaným adaptérem do zásuvky.....

Napsal: 19 úno 2020, 14:01
od termit256
Dival jsem se do poznamek, to doladeni oscilatoru se zapisuje do Aging Offset Register. Je tam 8bitove cislo ve formatu dvojkovy doplnek, 1LSB je cca 0,3sec za mesic, jestli jsem pocital spravne.
Ja mam obvody DS3232, ale ony jsou prakticky stejne.

Napsal: 20 úno 2020, 20:07
od hafca
Přidal jsem blokovací kondenzátory kam to šlo, dal jiný krystal, jiný zdroj, ale nic platné. Pokud to běží bez zdroje a je naživu jen modul ze záložní baterie, pak čas necourá. Ve chvíli, kdy zapnu napájení, začnou se hodiny zpožďovat o cca 1 sec. za hodinu.
Takže modulem to není, ale co je příčinou jestli špatně napsaný soft nebo nějaká HW chyba to nevím.

Napsal: 20 úno 2020, 20:28
od termit256
Musis na to vylucovaci metodou.
Zkus odpojit I2C sbernici od RTC aby do nej nekafral MCU a nech to bezet cely den z toho napajeni pri kterem se ti to zpozduje. Pokud to po zapojeni sbernice nacte spravny cas, je temer 100% chyba v SW.

Napsal: 20 úno 2020, 20:36
od hafca
A není to to samé, jako když je komplet odpojené napájení včetně MCU? Kudy jinudy by to mohlo kecat do RTC? Jedině snad přes napájení toho RTC. Nebo něco nevidím?

Napsal: 20 úno 2020, 22:42
od termit256
Jo, muze to byt i nejake ruseni nebo bordel v napajeni pokud tam mas menice a mas to nejak zprasene udelane. Timhle to vyloucis a zustane jen chyba sw.

Napsal: 22 úno 2020, 16:50
od hafca
Záhada je objasněna, je vadný ten modul. Půjčil jsem si jiný a s ním čas drží. Zatím je to v chodu 24 hodin a žádný úlet v přesnosti nepozoruji.
Smutné na celé věci je, že ten půjčený je z eBay a ten můj je koupený tady ve speciálce na Arduino.
Jediné co přetrvává je měření teploty. Tu to neměří a nevím proč.