Witam, próbuję się skomunikować z tym układem, tylko nie bardzo potrafię zinterpretować pdf-a. Chodzi o to, jak te dane są przesyłane - dobrze rozumiem ze jak wysyłamy dane, to transmisja wyglada tak, ze mamy start, potem bajt adresu (0xD0) a potem idą bajty które są zapisywane w kolejnych komorkach w pamieci układu (00,01,02...) tak długo dopóki master nie skonczy transmisji? a w drugą stronę to wyglada tak ze master wysyła start i adres (0xD1) a potem zczytuje po kolei bajty z pamieci w kolejnosci 00,01 itd, tak długo dopoki slawe nie przerwie transmisji (mo własnie kiedy, po wysłaniu bajtu 07 ? czy tez działa to jakos inaczej?
problem z komunikacją z układem DS1307
Feb 24, 2007
7 Replies
nuclear napisał(a):
Tu jest błąd. Pierwszy bajt po zaadresowaniu układu to adres komórki, do której zapisujesz. Pamiętaj, że aby uruchomić licznik musisz ustawić bit 7 w komórce 0x00 (maska 0x80).
tak długo dopóki master nie skonczy
Pozdrawiam Przemysław Podwapiński
Użytkownik "Kret" snipped-for-privacy@poczta.fm napisał w wiadomości news:erq8e3$4lq$ snipped-for-privacy@atlantis.news.tpi.pl...
czyli to ma wygladać tak:
start bajt abresu ukladu (D0) bajt adresu komorki (00) bajt danych komorki 00 bajt danych komorki 01 . . . bajt danych komorki 07 stop
?a w odczycie tez jest adres?
czyli
start bajt adresu układu (D1) bajt adresu komorki (00) odczyt bajtu z komorki 00 odczyt bajtu z komorki 01 . . . bajt odczytu z komorki 07 stop
? czy też to samo tylko bez adresu komorki?
a moze coś takiego?
start bajt adresu układu (D0) bajt adresu komorki (00) stop start bajt adresu układu (D1) odczyt bajtu z komorki 00 odczyt bajtu z komorki 01 . . . bajt odczytu z komorki 07 stop
bo zaczynam sie w tym gubić...
nuclear napisał(a):
Co do zapisu do DS'a to rozumujesz poprawnie. Przy odczycie nie wysylasz juz adresu komorki. Zaczynasz odczytywac w miescu, gdzie ostatnio zapisywales. Jesli chcesz okreslic inny rejestr (tj. sytuacja gdy np. skonczyles zapis na 8 komorce, a chcesz odczytac 2-ga), to musisz zrobic tzw. 'fake write' - ustawienie wskaznika komorki, czyli sekwencja polecen jak w ostatnim przykladzie, ktory podales. Pierwszy stop nie jest konieczny, wiec moze to wygladac tak:
start bajt adresu układu (D0) bajt adresu komorki (00)
start bajt adresu układu (D1) odczyt bajtu z komorki 00 odczyt bajtu z komorki 01 . . . bajt odczytu z komorki 07 stop
dobra, wydaje mi sie ze zrozumialem, zapis to faktycznie start,adres układu(D0),adres pierwszej komorki(00),dane pierwszej komorki,dane drugiej komorki....i tak dopoki master nie powie stop. ale z odczytem mam problem, wydaje mi sie ze powinno być start,(D0),(00),start,(D1), odczyt komorki 00, odczyt komorki 01 itd a u mnie dziala jedynie kombinacja start,(D0),(nr komorki odczytywanej),start,dane komorki odczytywanej,stop i dla kazdej z komorek z osobna musze inicjować komunikacje...całośc dziala bez zarzuru, ale wydaje mi sie ze mozna by to zrobić prosciej...
nuclear napisał(a):
Są jakieś problemy z serwerem news.tpi, więc wysłam jeszcze raz:
Co do zapisu do DS'a to rozumujesz poprawnie. Przy odczycie nie wysylasz juz adresu komorki. Zaczynasz odczytywac w miescu, gdzie ostatnio zapisywales. Jesli chcesz okreslic inny rejestr (tj. sytuacja gdy np. skonczyles zapis na 8 komorce, a chcesz odczytac 2-ga), to musisz zrobic tzw. 'fake write' - ustawienie wskaznika komorki, czyli sekwencja polecen jak w ostatnim przykladzie, ktory podales. Pierwszy stop nie jest konieczny, wiec moze to wygladac tak:
start bajt adresu układu (D0) bajt adresu komorki (00)
start bajt adresu układu (D1) odczyt bajtu z komorki 00 odczyt bajtu z komorki 01 . . . bajt odczytu z komorki 07 stop
Podczas odczytu jest możliwość pobrania więcej jak jednego bajtu. W Twoim poście zasygnalizowałeś problem z odczytem większej ilości komórek
- sprawdź swoje procedury na generowanie ACK i NACK.
to juz zauwazyłem - bez bateri w ogole mi nie odpowiadał...
dzieki, pomogło, faktycznie był bład w procedurze odczytu, i zawsze generował nack.... teraz jest dobrze, odbiera tyle bajtów ile chcę ;)
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required