Zegarek (RTC) na I2C



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Pszemol" <Pszemol_at_nospam_PolBox.com>
Subject: Zegarek (RTC) na I2C
Date: Tue, 7 Oct 2003 11:19:37 -0500


Bawię sie właśnie zegarkiem firmy Dallas (DS1338) i już mi tyka ;-)

Mam jednak pytanko - wyczytałem że podczas czytania zegarka
trzeba wysłać tylko adres urządzenia (w tym wypadku 0xD1)
a zegarek zacznie wysyłać bajty ze swojej pamięci po kolei.
Nie widzę możliwości wskazania mu adresu jaki chcę przeczytać.
Albo ja źle czytam, albo nie ma innej możliwości jak tylko
wpisać jakąś wartość pod adres np. 0x3F i wtedy następny
odczyt będzie dotyczył komórki o adresie zero... Widzę bowiem,
że podczas transakcji zapisu podaje się adres jaki chce się
zapisać, natomiast przy odczycie nie ma adresu rejestru...

Czy każde zatem odczytanie tych 7 bajtów z aktualnym czasem
powinno być poprzedzone zapisem czegoś pod (adres-1) ?

Ma ktoś pod ręką jakiś przykład aplikacji która korzysta
z takiego lub podobnego zegarka gdzie byłyby widoczne
procedury inicjalizacji, czytania i zapisu czasu? Chętnie
sobie popatrzę jak to zrobili inni... :-)


========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!newsfeed.gazeta.pl!news.icm.edu.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Zbych" <bzbUSUN_TO_at_nospam_poczta.onet.pl>
Subject: Re: Zegarek (RTC) na I2C
Date: Tue, 7 Oct 2003 19:05:52 +0200


Nie widzę możliwości wskazania mu adresu jaki chcę przeczytać.

Odczyt składa się z dwóch faz
pierwsza zapisu adresu komórki - start, adres układu, adres komórki (brak
stopu !!)
druga - właściwy odczyt danych - znowu start, adres ukladu, a dalej już
tylko dane.

Dokładny opis można znaleźć w specyfikacji i2c lub w pdfach do pamięci
eeprom i2c.


========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!newsfeed.gazeta.pl!news.internetia.pl!skynet.be!skynet.be!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!news.xnet.com!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Pszemol" <Pszemol_at_nospam_PolBox.com>
Subject: Re: Zegarek (RTC) na I2C
Date: Tue, 7 Oct 2003 13:14:23 -0500


"Zbych" <bzbUSUN_TO_at_nospam_poczta.onet.pl> wrote in message news:blurpq$stj$1_at_nospam_SunSITE.icm.edu.pl...
Odczyt składa się z dwóch faz
pierwsza zapisu adresu komórki - start, adres układu, adres komórki

Czy zjadłeś tu bajt zapisywany do komórki czy rzeczywiście go brakuje?

(brak stopu !!)
druga - właściwy odczyt danych - znowu start,
adres ukladu, a dalej już tylko dane.

Czyli start bez stopu i potem adres urządzenia z bitem READ.
Kapuję. Idę przećwiczyć :-)

Dokładny opis można znaleźć w specyfikacji i2c lub w pdfach
do pamięci eeprom i2c.

W datasheet tego zegarka niestety nie było opisu procedurek.
Ale znalazłem adres serwerka ftp maxima, więc coś tam też
moze znajdę... ftp://ftp.dalsemi.com/pub/

Dzięki za odpowiedź.


========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Pszemol" <Pszemol_at_nospam_PolBox.com>
Subject: Re: Zegarek (RTC) na I2C
Date: Tue, 7 Oct 2003 13:20:03 -0500


O, znalazłem przykładzik w folderze timekeeping:

uchar Sec, Min, Hrs, Dte, Mon, Day, Yr, Cr;

Start2W();
WriteByte2W(0xD0); /* write slave address, write 1307 */
WriteByte2W(0x00); /* write register address, 1st clock register */
Start2W();
WriteByte2W(0xD1); /* write slave address, read 1307 */
Sec = ReadByte2W(ACK); /* starts w/last address stored in register pointer */
Min = ReadByte2W(ACK);
Hrs = ReadByte2W(ACK);
Day = ReadByte2W(ACK);
Dte = ReadByte2W(ACK);
Mon = ReadByte2W(ACK);
Yr = ReadByte2W(ACK);
Cr = ReadByte2W(NACK);
Stop2W();

Wszystko się zgadza z Twoim opisem - jeszcze raz dzięki.


========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Pszemol" <Pszemol_at_nospam_PolBox.com>
Subject: Re: Zegarek (RTC) na I2C (tym razem problem elektryczny)
Date: Fri, 10 Oct 2003 12:21:01 -0500


Mam jeszcze jeden problem z DS1338, tym razem bardziej elektryczny.
Otóż zegarek mi traci ustawienia gdy wyłączam zasilanie Vcc...

Vbat jest ok na poziomie 3V z bateryjki litowej ale przy
wyłączaniu urządzenia widzę, że oscylator zamiera i potem
przy ponownym starcie mam czas wyzerowany i OSF bit ustawiony.

Obserwowałem na oscyloskopie Vcc i zauważyłem, że tu może
być problem - otóż w ciągu ok 50us napięcie Vcc spada do
zera a potem mam dosyć duży "overshot" opadającego zbocza
tak że Vcc pozostaje pod poziomem zera jakieś 250us...
Minimum dołka sięga średnio 700mV (raz 680, innym razem 720).
Układ RTC jest zblokowany tantalem 10uF i ceramikiem 100nF (SMD).

Czy sądzicie że taki dołek w minusie może mi układ wyłączyć?

Jak się tego dołka na Vcc pozbyć?!? Zasilacz jest wykonany
w oparciu o MAX1715EEI sterującym dwoma N-HEXFET_MOSFETAMI
w każdej z dwu gałęzi (zasilacz jest podwójny: 5 i 3.3V).
Z pomiędzy MOSFETów napięcie jest zblokowane diodą schotkiego
ale potem wyłazi przez filtr indukcyjny na resztę układów.
Cewka przy 3.3V ma indukcyjność 2.5uH i płynie przez nią
prąd rzędu 380-400mA podczas normalnej pracy układu...
Cewka na 5V ma indukcyjność 5.1uH ale 5V mnie nie obchodzi.
Za cewką 3.3V jest bezpiecznik - gdy wyjmę go z podstawki to
napięcie Vcc opada płynnie z rozładowujących się kondziorów.
Wnioskuję z tego, że sterowanie POWER ON/OFF podawane
z wyłącznika na układ przetwornicy zwiera dolnego MOSFETA
aby rozładował on kondensatory przez cewkę do masy...
To prawdopodobnie powoduje ten dołek na Vcc. Macie jakieś
pomysły co tu możnaby zrobić z układem zasilacza lub RTC??


========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Seba" <klosso_at_nospam_o2.pl>
Subject: Odp: Zegarek (RTC) na I2C (tym razem problem elektryczny)
Date: Sat, 11 Oct 2003 01:11:55 +0200



Użytkownik Pszemol <Pszemol_at_nospam_PolBox.com> w wiadomości do grup dyskusyjnych
napisał:bm687d.5fc.0_at_nospam_poczta.onet.pl...
Mam jeszcze jeden problem z DS1338, tym razem bardziej elektryczny.
Otóż zegarek mi traci ustawienia gdy wyłączam zasilanie Vcc...

Vbat jest ok na poziomie 3V z bateryjki litowej ale przy
wyłączaniu urządzenia widzę, że oscylator zamiera i potem
przy ponownym starcie mam czas wyzerowany i OSF bit ustawiony.

Obserwowałem na oscyloskopie Vcc i zauważyłem, że tu może
być problem - otóż w ciągu ok 50us napięcie Vcc spada do
zera a potem mam dosyć duży "overshot" opadającego zbocza
tak że Vcc pozostaje pod poziomem zera jakieś 250us...
Minimum dołka sięga średnio 700mV (raz 680, innym razem 720).
Układ RTC jest zblokowany tantalem 10uF i ceramikiem 100nF (SMD).

Czy sądzicie że taki dołek w minusie może mi układ wyłączyć?

Jak się tego dołka na Vcc pozbyć?!? Zasilacz jest wykonany
w oparciu o MAX1715EEI sterującym dwoma N-HEXFET_MOSFETAMI
w każdej z dwu gałęzi (zasilacz jest podwójny: 5 i 3.3V).
Z pomiędzy MOSFETów napięcie jest zblokowane diodą schotkiego
ale potem wyłazi przez filtr indukcyjny na resztę układów.
Cewka przy 3.3V ma indukcyjność 2.5uH i płynie przez nią
prąd rzędu 380-400mA podczas normalnej pracy układu...
Cewka na 5V ma indukcyjność 5.1uH ale 5V mnie nie obchodzi.
Za cewką 3.3V jest bezpiecznik - gdy wyjmę go z podstawki to
napięcie Vcc opada płynnie z rozładowujących się kondziorów.
Wnioskuję z tego, że sterowanie POWER ON/OFF podawane
z wyłącznika na układ przetwornicy zwiera dolnego MOSFETA
aby rozładował on kondensatory przez cewkę do masy...
To prawdopodobnie powoduje ten dołek na Vcc. Macie jakieś
pomysły co tu możnaby zrobić z układem zasilacza lub RTC??


Może dioda szeregowa przed kondziolem , to niedopuści do rozładowania C .
Ale nap. wej. bedzie musiało być wyższe o 0,6V .Chyba że obniżone nap. to
nieporoblem




========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai