Hodiny reálneho času

Jen praktickou poznámku k DS1302: Pozor na bity CH (Clock Halt - v registru sekund) a WP (Write Protection - v registru Control). CH musí být nulován, jinak neběží oscilátor (low power režim). WP bit musí být nulován před zápisem do registrů nebo RAM. Je-li nastaven, zápis je blokován (doporučuje se to jako ochrana před náhodným zápisem do registrů). Po resetu není stav těchto bitů nijak definován a u mého kusu se nastavil vždy do stavu, kdy to nefungovalo :slight_smile:. Jinak já pro zápis i čtení do registrů využívám pouze režim Burst, kdy se provede zápis (čtení) do všech registrů najednou. Zatím jsem nepotřeboval pracovat s jednotlivými registry (s výjimkou práce s CH a WP). Trošku jsem zklamán z přesnosti - odchylka dělá v mém případě několik sekund denně. Možná je to nějakými kapacitami spojů u DPS, možná použitým typem krystalu, nevím.
Vlasťa

Nevím, jestli je to ještě aktuální, ale PIC s RTC samozřejmě existují. Např. PIC24FJ128ga010 má plnohodnotné HW RTC a mimo běžné funkce umí i přestupný rok, alarm, kalibtraci oscilátoru, BCD formát dat atd).
Vlasťa

Používám program od Unknown Hero a v něm je vše ošetřeno. Nikdy jsem s tímhle problém neměl.

A co se týka přesnosti, dělal jsem s ním 3 věci, u jednoho 2 vteřiny za měsíc, jeden ani ne vteřinu za měsíc. Třetí nezjistím, protože ten výtvor nemám doma.

Jo, taky jsem si jej stáhl a používám. Spíše jde o to, nezapomenout tu rutinku vyvolat :slight_smile:. Co se týká té přesnosti - jaký používáš krystal? Já jsem jej koupil v EZK Rožnov, tam mají jen s kapacitou 12pF. Doporučený je s kapacitou 6pF. Tam by možná mohl být problém, ale já si teď zaboha nevzpomenu, zda se mi ty hodiny předbíhají nebo opožďují :slight_smile:.
Vl.

Abych se přiznal, tak nevím, jakou mají ty krystaly kapacitu, ale před 1/2 rokem stál jeden, našel jsem i fakturu 11,-, ale podle ceny asi nezjistím typ.
krystal.JPG

No, nedávno jsem zkoušel jednu zajímavou věc. Potřeboval jsem vyrobit nějaké jednoduché čidlo na výskyt vody ve sklepě (občas netěsnící čerpadlo). Vyrobil jsem si na to z cuprextitu takový plošňáček o rozměrech cca 10x20mm a na něm mám něco jako dva hřebínky zasahující do sebe, ale nedotýkající se navzájem - pro zvětšení aktivní plochy. Mělo to fungovat tak, že voda zmenší odpor mezi těmi vyleptanými vodiči a na to zareaguje čidlo. Když jsem zkoušel o kolik se změní ten odpor, tak mne napadlo změřit i kapacitu mezi těmi vodiči. Za sucha jsem naměřil cca 10pF, ale stačilo na to jen dýchnout a kapacita se zvýšila řádově na stovky pF!!! Pak jsem na to “zapůsobil” párou z kávové konvice a kapacita se opět prudce zvýšila - nyní v řádech nF! Takže pokud by kmitočet oscilátoru měly ovlivnit i samotné spoje v jeho okolí (což si myslím), tak na to musí mít podstatný vliv i relativní vlhkost vzduchu.
Vl.

Ale koukal jsem po dlouhé době do datasheetu DS1302 a Cl uvádí 6pF a seriový odpor 45K. Tím chceš říct, že mám tak blbě udělanej tišťák, že jsem se trefil do hodnot udávaných výrobcem. :smiley: :smiley: :smiley: :smiley: :smiley: :smiley:

Ne, ne … :slight_smile:. Kdybych věděl, jak to “zpřesnit”, už bych to dávno udělal. Jen mne překvapilo, v jak velkém rozsahu se mění kapacita sousedících spojů v závislosti na vlhkosti prostředí. Zda to má vliv na kmitočet oscilátoru u DS1302, to nevím - dýchat jsem na něj zatím nezkoušel :slight_smile:. A taky je tu jiný problém: DS1302 nemá žádný vhodný výstup, kde by byl k dispozici hodinový kmitočet, takže je prakticky nemožné jej přímo změřit. Osciloskop nebo čítač, připojený na výstupní pin obvodu krystalu to tak zatíží, že oscilátor někdy i vypadne.

Vl.

Application Note 58: Crystal Considerations for Dallas Real-Time Clocks

toto ste nestudovali …mozno sa tam nieco najde pre vas…:slight_smile:

Ale jo, studovali, aloe nebyli jsme z toho příliš moudří (mluvím za sebe :slight_smile:. Takové ty zásady, co tam popisují (umístění krystalu, stínící plochy atd.) jsem se snažil dodržet. Ale jako základ bych považoval správný krystal dle jejich doporučení. Jenže 6pF krystal jsem nesehnal, všude buďto nabízejí 12pF anebo se tváří, že o tom, že krystal má nějakou vlastní kapacitu, slyší poprvé v životě. Ale když o tom tak uvažuji, běžné levné digitálky nebo nástěnné hodiny taky dělají chybu pár sekund za měsíc, takže to bude asi podobné.

Vl.

Já to studoval, ale nic nového jsem tam nenašel. Když se použije místo 6pF 12pF, bude se clock předbíhat o 3 až 4 minuty za měsíc. Při představě, že bych vstával o 4 minuty dřív než před měsícem, tak je mi z toho zle. :smiley: :smiley:

Máš pravdu, kdysi jsem chtěl změřit přímo na pinech DS, jak kmitá krystal a oscilátor se zastavil. A na těch parazitních kapacitách něco bude. Když jsem to ladil a škaredě jsem se na hodiny podíval, protože to zrovna v tu chvíli nedělalo to co mělo, se osc taky zastavil. :smiley: :smiley:

Ale kdysi jsem to měl na nepájivém poli a tam ty pariziti (parazitni kapacity) se asi vyřádili, dělalo to i minutu za cca 3dny, nechával jsem to tenkrát běžet přes wekend. :smiley:

Jo, to znám, to funguje. Když se doma škaredě podívám na manželku, taky se zastaví. A v tu chvíli zase začnu utíkat já … :slight_smile:)
V.

Né že bych se proto rozvedl :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: Aspoň se zasmějem v pondělí. :slight_smile:

Ale vážně. Proč ten krystal nenarvou do toho švába, když má takové kritéria.

U “klasických” digitálních hodin, jak se kdysi vyráběly s běžných TTL obvodů, se pro doladění kmitočtu oscilátoru používal malý kapacitní trimr, zapojený tuším do série s krystalem. Možná by tedy púomohlo dát do série s krystalem keramický kond 12pF, čímž bychom dostali výsledou kapacitu 6pF. Ale co by to udělalo s kvalitou celého obvodu, to netuším. Jak říkám, blbé je na tom to, že to nejde přímo změřit, protože pak je přesné dostavení opravdu “během na dlouhou trať”. Teď mne napadlo, že by možná šlo připojit na ten vývod nějaký MOSFET a oddělit tak oscilátor impedančně od čítače. Mám ještě jeden kousek DS1302, tak to možná zkusím na kontaktním poli.

Vl.

Samozřejmě existují typy, keré mají krystal uvnitř, některé (starší) i se zálohovací baterkou. Typy teď z hlavy nevím, ale někde to mám.

Vl.

Proč by to nešlo změřit přímo? Všechny obvody RTC s 32kHz krystalem mají nějaký výstup, zpravidla 1Hz, na kterém se provádí kalibrace oscilátoru. Ke krystalu nelze připojovat nic, neboť i 1pF ho rozladí více než je žádoucí.
A ještě jednu poznámečku k tomu. Tyhle oscilátory jsou nesmírně citlivé na rušení okolními vodiči. Krystaly kmitají s velmi malou enerjií a proto jejich kmity snadno naruší i datový vodič vedený poblíž spojů krystalu. Někteří výrobci doporučují stínící měď pod švábem a krystalem. Pokud oscilátor funguje správně, půjde nastavit sekundový výstup s přesností na 0,1us. Je-li rušen, budou na čítači nestabilní i jednotky us. Mám tím na mysli krátkodobou stabilitu, řádově jednotek až desítek minut, ne dlouhodobou.

Tak ze ako to iresit e procesor posuva cas aby to sedeo :slight_smile: inak pcf8583 umoznuje pripojit trimer na dostavenie frekvencie… DS bohuzial nie…

Ne, DS1302 bohužel žádný takový výstup hodinového kmitočtu nemá.
Vl.

Tak jsem po delší době opět spustil zařízení, ve kterém používám DS1302. Naposled jsem to měl spuštěné 26.3.2009 a předpokládám, že jsem tam měl v ten den nastaven správný čas. Dnes, po spuštění mi displej ukázal o 7min 30sec více. Rozdíl je tedy cca + 7min 30sec za cca 2,5 měsíce, což je tedy na můj vkus docela dost. Podotýkám, že celou tu dobu, kdy jsem to měl “odstavené”, to držel zálohovací lithiový akumulátor 3V. Vzhledem k tomu, že odchylka je do plusu, mohlo vy to být rušením, jak psal Technik. Ale v okolí krystalu nemám vedené žádné signálové spoje, které by ho mohly rušit. Dal jsem do přílohy náhled na DPS v okolí toho krystalu, zkuste se mi na to někdo podívat, prosím, zda tam uvidíte něco, co by bylo nevhodně vedené. Krystal je označen Q2 a je připojen na piny 2 a 3 IO5 (DS1302). Okolo je všude rozlitá měď, připojená na GND. Díky za ochotu. Vlasťa.

hm pre znizenie frekvecie by snad bolo mazne zapojit do seie s xtalom cievku… hm ?