nuclear
Guest
Sat Feb 24, 2007 6:59 pm
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?
Kret
Guest
Sat Feb 24, 2007 9:49 pm
nuclear napisał(a):
Quote:
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...)
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
Quote:
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?
Pozdrawiam
Przemysław Podwapiński
nuclear
Guest
Sat Feb 24, 2007 10:38 pm
Użytkownik "Kret" <moritz00@poczta.fm> napisał w wiadomości
news:erq8e3$4lq$1@atlantis.news.tpi.pl...
Quote:
nuclear napisał(a):
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...)
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).
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ć...
Kret
Guest
Sun Feb 25, 2007 1:07 am
nuclear napisał(a):
Quote:
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ć...
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
nuclear
Guest
Sun Feb 25, 2007 1:07 pm
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...
Kret
Guest
Sun Feb 25, 2007 1:32 pm
nuclear napisał(a):
Quote:
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ć...
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.
nuclear
Guest
Sun Feb 25, 2007 2:50 pm
Quote:
Ja tylko dodatm od siebie abys nie zapomnial podlaczyc bateri do tego
uklady przy uruchamianiu. Bez niej ten uklad wariuje i wysle ci glupoty.
to juz zauwazyłem - bez bateri w ogole mi nie odpowiadał...
nuclear
Guest
Sun Feb 25, 2007 9:29 pm
Quote:
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.
dzieki, pomogło, faktycznie był bład w procedurze odczytu, i zawsze
generował nack.... teraz jest dobrze, odbiera tyle bajtów ile chcę