Hodiny reálneho času

Taky bych chtěl použít tento RTC obvod a chtěl jsem se zeptat na komunikaci,jestli musím cyklicky číst registry z RTC obvodu nebo se např. při změně sekund nastaví nějaký příznakový bit, prosím jak to řešíte Vy?

Zkoušel jsem zatím DS1302 a DS1337 a ani jeden nemá v sobě registr, kde by bylo možné vyčíst info o tom, že vteřiny poskočily kupředu.
U DS1302 cyklicky čtu registr vteřin a když dojde ke změně, přečtu vše. U DS1337 čtu všechno najednou.

Nemáte někdo zkušenost s kombinací DS1302 a 8051 (nebo s nějakým z potomků), mám problémi s programem, nikdy jsem s žádným takovým obvodem nekomunikoval a nevím jak začit. :frowning:

Zkoušel jsi použít google? :wink:

geocities.com/microcontrollers/2051projects/rtcclock/rtc.html

mstar.bloguje.cz/303373-druha-verze-hlavniho-programu-pro-hodiny.php

Mohl by výše ukázaný kód být funkční i pro kombinaci DS1307+PIC16F877A ??

Program od Xreda je na Atmel.

Popis komunikace máš na str. 12 a 13 datasheetu.

Hoši hoďte ten zdroják jsem pro ostatní

Máš ho v 6 příspěvku od Unknown Hero

A co třeba PIC18F46J50 nebo některé PIC24F . . . ???
některé z nich umí i Deep Sleep - odběr okolo 20nA !!!

Co má společného RTC a podpora spánku Deep Sleep v PIC18F46J50 ??

To, že jsou implementovány v jednom kontroleru a pokud budeš někdy dělat aplikaci s reálným časem a bateriovým/solárním napájením, tak je určitě využiješ . . . osobně se mi zdá tento kontroler pro podobné aplikace tím nejlepším, co existuje . . .

Jsem si stáhl datasheet a máš pravdu. :smiley:

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.