I2C Slave - jak prawidłowo zaimplementować odbiór danych w mikrokontrolerze '51?
I2c slave - procedura
From: "Ed" <edxx_at_nospam_poczta.onet.pl>
Subject: I2c slave - procedura
Date: Wed, 6 Mar 2002 08:52:23 +0200
Witam!
Męczę się z procedurš na odbiór danych przesyłanych po i2c w slave.
Wykorzystuję zwykłš '51 bez wbudowanej obsługi i2c, linię SDA podpinam pod
INT0 (wykrycie START) a SCL pod P1.0
Po wykryciu przerwania i sprawdzeniu że to rzeczywiście START zawieszam całš
pozostała część programu i skupiam się tylko na odbiorze danych. Mimo
wszystko kaszana.
Możecie się podzielić jakšś sprawdzonš procedurš na odbiór danych przez
slava lub ideš jak to zrobić w miarę sprytnie?
Z góry dzięki
Ed
From: "Mariusz Księżak" <mariuszk_at_nospam_altkom.com.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 09:51:55 +0100
Witam
nie sadze ze wykorzystanie przerwana to dobry pomysl ?
ja mam inny pomysl na procedure:
przykladowo na porcie P3.0 mamy zegar SCL
a na P3.1 dane SDA
jnb P3.0,$ ;to jest program wykrywajacy opadajace zbocze zegarowe
jb P3.0,$ ;po nim nalezy umiescic procedure odczytu bitu na przyklad
mov c,P3.1 ;przenesienie bitu do rejestru C
rrc a
umiesc to w petli
P.S. To jest tylko przyklad nie mowie ze to bedzie dzialac na 100% poprostu
tego jeszcze nie robilem :-)
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 11:03:55 +0100
"Mariusz Księżak" <mariuszk_at_nospam_altkom.com.pl> wrote in message
news:a64la4$2lt9$1_at_nospam_news2.ipartners.pl...
Witam
nie sadze ze wykorzystanie przerwana to dobry pomysl ?
a jak chcesz to inaczej zrobic jesli program wykonuje inne zadania ?
a dane na magistrali pojawiaja sie w blizej nieokreslonym momencie
z punku widzenia slave'a
w ogole to 51 moze nie wyrobic jako slave
majac programowa oblsuge zalezy jak szybki jest master
ja mam inny pomysl na procedure:
przykladowo na porcie P3.0 mamy zegar SCL
a na P3.1 dane SDA
jnb P3.0,$ ;to jest program wykrywajacy opadajace zbocze zegarowe
no i tu utknie az do momentu jak master zacznie "gadac" a co z reszta pogamu ?
no chyba ze masz wielozadaniowosc z wywlaszczaniem :-)
jb P3.0,$ ;po nim nalezy umiescic procedure odczytu bitu na przyklad
mov c,P3.1 ;przenesienie bitu do rejestru C
rrc a
umiesc to w petli
no chyba, ze ta 51 nie ma nic innego do roboty tylko czekac na dane
od mastera i wrzucac do jakiegos buffora to w sumie moglo by byc
Andrzej
From: "Mister" <wojpie_at_nospam_bielsko.evatronix.com.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 12:00:31 +0100
nie sadze ze wykorzystanie przerwana to dobry pomysl
A jak inaczej to zrobisz ????
Chyba ze procek będzie tylko odbierał i nic. Ale to sztuka dla sztuki
Ed pisał ze procek ma pracować jako slave !
From: "Mariusz Księżak" <mariuszk_at_nospam_altkom.com.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 12:37:19 +0100
Użytkownik "Mister" <wojpie_at_nospam_bielsko.evatronix.com.pl> napisał w wiadomości
news:a64ss5$944$1_at_nospam_news.tpi.pl...
nie sadze ze wykorzystanie przerwana to dobry pomysl
A jak inaczej to zrobisz ????
Chyba ze procek będzie tylko odbierał i nic. Ale to sztuka dla sztuki
Ed pisał ze procek ma pracować jako slave !
Ja przedstawilem tylko propozycje rozwiazania problemu a wy krytykujecie !
Macie jakies rozwiazanie ? jakies propozycje ? pokazcie je !
Przyznaje sie jeszcze obslugi przerwan sie nie nauczylem ....
Mariusz Ksiezak
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 14:37:23 +0100
Użytkownik "Mariusz Księżak" <mariuszk_at_nospam_altkom.com.pl> napisał w wiadomości
news:a64v09$2tes$1_at_nospam_news2.ipartners.pl...
...
Ja przedstawilem tylko propozycje rozwiazania problemu a wy krytykujecie !
Macie jakies rozwiazanie ? jakies propozycje ? pokazcie je !
eee .. . :-))
latwiej krytykowac niz cos zaproponowac
ja bym zapytal z jaka szybkoscia chodzi master
bo nie ma pewnosci, ze 51 wyrobi sie czasowo
chyba, ze to jakas odmiana z dallas'a
Andrzej
From: "Ed" <edxx_at_nospam_poczta.onet.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 16:22:18 +0200
"Andy" <anok_at_nospam_ceti.pl> wrote in message
news:27955-1015421763_at_nospam_main.lokalizuj.auto.pl...
Użytkownik "Mariusz Księżak" <mariuszk_at_nospam_altkom.com.pl> napisał w wiadomości
news:a64v09$2tes$1_at_nospam_news2.ipartners.pl...
ja bym zapytal z jaka szybkoscia chodzi master
bo nie ma pewnosci, ze 51 wyrobi sie czasowo
chyba, ze to jakas odmiana z dallas'a
Andrzej
Idea jest taka, że dwie 8051 z kwarcem 11,059 gadajš sobie po i2c ( jeden
nadaje - drugi tylko słucha). Obsługa i2c mastera jest zrobiona programowo,
slave ma już zajęte jedno przerwanie zewnętrzne, transmisja jest niewielka
powiedzmy 2-3 bajty na sekundę nie liczšc adresu slave.
Pozdrawiam
Ed
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 15:40:38 +0100
Użytkownik "Ed" <edxx_at_nospam_poczta.onet.pl> napisał w wiadomości
news:a658qc$edf$1_at_nospam_news.onet.pl...
Idea jest taka, że dwie 8051 z kwarcem 11,059 gadajš sobie po i2c ( jeden
nadaje - drugi tylko słucha). Obsługa i2c mastera jest zrobiona
programowo,
slave ma już zajęte jedno przerwanie zewnętrzne, transmisja jest niewielka
powiedzmy 2-3 bajty na sekundę nie liczšc adresu slave.
Dlaczego ma to być akurat i2c a nie np. 51-kowe uart-y?
Ze względu na inne kości z i2c z ukladzie, zajęte uart-y czy jakis inny
powód?
Jakie to 51-ki?
MDz
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 15:41:28 +0100
Użytkownik "Ed" <edxx_at_nospam_poczta.onet.pl> napisał w wiadomości
news:a658qc$edf$1_at_nospam_news.onet.pl...
...
Idea jest taka, że dwie 8051 z kwarcem 11,059 gadajš sobie po i2c ( jeden
nadaje - drugi tylko słucha). Obsługa i2c mastera jest zrobiona
programowo,
slave ma już zajęte jedno przerwanie zewnętrzne, transmisja jest niewielka
powiedzmy 2-3 bajty na sekundę nie liczšc adresu slave.
rozumiem
a nadajaca 51 ma jakies opoznienia miedzy wysylanymi bitami
czy nadaje na maxa ?
a tak z ciekawosci:
UART'y masz zajete ?
nie chcesz tego zrobic na serialu ?
Andrzej
From: <p.banczyk_at_nospam_softbank.pl>
Subject: Re: I2c slave - procedura
Date: 6 Mar 2002 16:48:47 +0100
Czesc.
Czyzby orogramowanie nie miescilo sie w jednej kosci i trzeba przeniesc
funkcjonalnosc na inna kosc ?.
moze zrobic to tak
1. master wysyla cynk na dodatkowa linie
2. slave zawiesza dzialalnosc - obsluguje przerwanie przerwanie
3. w przerwaniu odpowiada masterowi ze jest gotowy
4. master nadaje i2c a slave odbiera
Pozdrawiam
Pawel
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
From: "Ed" <edxx_at_nospam_poczta.onet.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 18:03:19 +0200
"Andy" <anok_at_nospam_ceti.pl> wrote in message
news:30613-1015425588_at_nospam_main.lokalizuj.auto.pl...
Użytkownik "Ed" <edxx_at_nospam_poczta.onet.pl> napisał w wiadomości
news:a658qc$edf$1_at_nospam_news.onet.pl...
...
Idea jest taka, że dwie 8051 z kwarcem 11,059 gadajš sobie po i2c
jeden
nadaje - drugi tylko słucha). Obsługa i2c mastera jest zrobiona
programowo,
slave ma już zajęte jedno przerwanie zewnętrzne, transmisja jest
niewielka
powiedzmy 2-3 bajty na sekundę nie liczšc adresu slave.
rozumiem
a nadajaca 51 ma jakies opoznienia miedzy wysylanymi bitami
czy nadaje na maxa ?
a tak z ciekawosci:
UART'y masz zajete ?
nie chcesz tego zrobic na serialu ?
Andrzej
Master nie nadaje na max, 2-3 komunikaty na sec (w fazie testowania
softu),
- Procesorki to 8955wd i 2051.
- Do 2051 sš podpięte triaki - pracuje toto jako dimmer na 3 różne obwody. Z
mastera chciałbym wysyłać po i2c komendy na ile poszczególne obwody majš być
wysterowne.
-I2c jest wykorzystywany także do innych celów (na czas testowania procedury
slave w 2051 pozostała część komunikacji po i2c jest zablokowana)
- Port szeregowy w 8955 jest wykorzystany do komunikacji z "wizualizacjš"
Pozdrawiam
Ed
Nie upieram się przy I2c ale najbardziej by mi odpowiadał w tej
konfiguracji - inne rozwišzania, sugestie mile widziane
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 17:19:22 +0100
Użytkownik "Ed" <edxx_at_nospam_poczta.onet.pl> napisał w wiadomości
news:a65env$p3p$1_at_nospam_news.onet.pl...
- Procesorki to 8955wd i 2051.
- Do 2051 sš podpięte triaki - pracuje toto jako dimmer na 3 różne obwody.
Z
mastera chciałbym wysyłać po i2c komendy na ile poszczególne obwody majš
być
wysterowne.
-I2c jest wykorzystywany także do innych celów (na czas testowania
procedury
slave w 2051 pozostała część komunikacji po i2c jest zablokowana)
- Port szeregowy w 8955 jest wykorzystany do komunikacji z "wizualizacjš"
A czy 'wizualizacja' to jakiś produkt zewnętrzny czy też 51-ka? ;-) Może '51
muli-point serial'?
Jak się domyślam to w 2051 masz wolny uart. Może ustawić go w tryb0
(synchroniczny) a sygnały po stronie WD55 generować na dwóch drutach
programowo?
MDz
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 22:11:44 +0100
"Ed" <edxx_at_nospam_poczta.onet.pl> wrote in message news:a65env$p3p$1_at_nospam_news.onet.pl...
...
- Master nie nadaje na max, 2-3 komunikaty na sec (w fazie testowania
softu),
- Procesorki to 8955wd i 2051.
- Do 2051 sš podpięte triaki - pracuje toto jako dimmer na 3 różne obwody. Z
mastera chciałbym wysyłać po i2c komendy na ile poszczególne obwody majš być
wysterowne.
-I2c jest wykorzystywany także do innych celów (na czas testowania procedury
slave w 2051 pozostała część komunikacji po i2c jest zablokowana)
hmm ...
trudno tak na odleglosc cos wyczuc
rozumiem, ze robisz tak:
po wejsciu do przerwania sprawdzasz stan lini SCL
jesli jest 1 to OK i odbierasz kolejne bity po kolejnych impulsach na SCL
jesli 0 to wychodzisz z przerwania
bo to nie byl impuls startu tylko zmiana 1->0 na SDA
w trakcie transmisji
to na wypadek wszelki jakby slave sie zle wstrzelil
co wlasciwie sie kaszani?
przesylasz po kilka bajtow z mastera do slave'a ?
a jak przeslesz jeden bajt to co zostanie odebrane ?
za kazdym razem inny bajt czy zawsze to samo
ale rozni sie od tego co nadajesz czy co ?
czy warunek startu sie jest dobrze rozpoznawany ?
czy jak przeslesz 8 bitow to odbierzesz 8 czy mniej czy wiecej ?
INT0 masz ustawione aktywne na stan czy na zbocze ?
Andrzej
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: I2c slave - procedura
Date: Wed, 06 Mar 2002 22:50:42 GMT
On Wed, 6 Mar 2002 18:03:19 +0200, Ed wrote:
- Do 2051 sš podpięte triaki - pracuje toto jako dimmer na 3 różne obwody. Z
mastera chciałbym wysyłać po i2c komendy na ile poszczególne obwody majš być
wysterowne.
-I2c jest wykorzystywany także do innych celów (na czas testowania procedury
slave w 2051 pozostała część komunikacji po i2c jest zablokowana)
- Port szeregowy w 8955 jest wykorzystany do komunikacji z "wizualizacjš"
Nie upieram się przy I2c ale najbardziej by mi odpowiadał w tej
konfiguracji - inne rozwišzania, sugestie mile widziane
I2C sie kiepsko nadaje do uP. Jest za szybkie zeby programowo
to obsluzyc, i mozna bity pogubic. Sugeruje:
a) zalozyc sobie wolniejsza prace mastera, dluzszy okres
od "Start" do pierwszego bitu - w tym czasie przyjac przerwanie,
odczyt programowy.
b) chyba by sie dalo .. trzeba w slavach kawalek przerzutnika
dolozyc, ktory automatycznie wydluzy zegar i spowolni transmisje.
Reszta juz programowo - SCLK pod przerwanie podlaczyc,
bit odczytac, przerzutnik wyzerowac.
c) z innej komunikacji skorzystac... moze port mastera przelaczac
miedzy zewnetrzna a wewnetrzna linie, moze porty slave'ow w trym
synchroniczny i softwareowo transmitowac ..
J.
From: "Jacek Domański" <jadoone_at_nospam_polbox.com>
Subject: Re: I2c slave - procedura
Date: Wed, 06 Mar 2002 19:04:41 GMT
Użytkownik "Andy" <anok_at_nospam_ceti.pl> napisał w wiadomości
news:30613-1015425588_at_nospam_main.lokalizuj.auto.pl...
Użytkownik "Ed" <edxx_at_nospam_poczta.onet.pl> napisał w wiadomości
news:a658qc$edf$1_at_nospam_news.onet.pl...
a tak z ciekawosci:
UART'y masz zajete ?
nie chcesz tego zrobic na serialu ?
I2C ma o tyle wygodny protokol, ze do wspolnej szyny mozna podlaczyc n
urzadzen i jeden protokol je wszystkie obsluguje.
Jak ktos ma juz "przecwiczona" komunikacje I2C, to dodanie jeszcze jednego
ukladu, w ten sam sposob obslugiwanego, nie wnosi dodatkowych trudnosci w
jego obsludze.
A RS czesto wykorzystywany jest do komunikacji np. z PC'tem albo jako
"komunikacja dalszego zasiegu" - np. po podpieciu scalaczkow RS485..itp..
Wszystko zalezy jak bardzo procesor jest wykorzystywany i czy ma wszytkie
mozliwe zasoby zajete, czy nie :-))
Dodanie I2C Slave do uC stwarza mozliwosc potraktowania go jako swoistego
wyspecjalizowanego scalaka sterowanego magistrala I2C, gdzie mamy jednak
mozliwosc wplywu na funkcje jakie bedzie on sprawowal (odp. go programujac)
Tak wlasnie to rozumiem i chyba o to chodzilo autorowi pytania?
Zwlaszcza w wypadku znacznego skomplikowania programu procesora glownego,
gdzie nie ma miejsca na dodanie dodatkowych procedur innego protokolu,
wykorzystanie i tak juz stosowanych do komunikacji z innymi scalakami
procedur I2C daje istotne oszczednosci pamieci programu.
Polecam opracowanie tych procedur na przerwaniach - jako pewnego rodzaju
"zelaznego zestawu" czy bliblioteki - pozniej dolaczanej do dowolnego
programu jako gotowy, przecwiczony, sporawdzony modul - jesli zajdzie
potrzeba komunikacji I2C Slave.
Pozdrawiam
Jado
From: "Tomasz Kołecki" <tomaszkolecki_at_nospam_poczta.onet.pl>
Subject: Re: I2c slave - procedura
Date: Thu, 7 Mar 2002 09:46:33 +0100
Użytkownik "Ed" <edxx_at_nospam_poczta.onet.pl> napisał w wiadomości
news:a658qc$edf$1_at_nospam_news.onet.pl...
"Andy" <anok_at_nospam_ceti.pl> wrote in message
news:27955-1015421763_at_nospam_main.lokalizuj.auto.pl...
Użytkownik "Mariusz Księżak" <mariuszk_at_nospam_altkom.com.pl> napisał w
wiadomości
news:a64v09$2tes$1_at_nospam_news2.ipartners.pl...
ja bym zapytal z jaka szybkoscia chodzi master
bo nie ma pewnosci, ze 51 wyrobi sie czasowo
chyba, ze to jakas odmiana z dallas'a
Andrzej
Idea jest taka, że dwie 8051 z kwarcem 11,059 gadajš sobie po i2c ( jeden
nadaje - drugi tylko słucha). Obsługa i2c mastera jest zrobiona
programowo,
slave ma już zajęte jedno przerwanie zewnętrzne, transmisja jest niewielka
powiedzmy 2-3 bajty na sekundę nie liczšc adresu slave.
Pozdrawiam
Ed
Tak sobie mysle ze mozesz sprobowac dolozyc ekspander PCF8574 (przynajmniej
odpadnie Ci obsluga protokolu I2C i probowac kombinowac cos z tym co masz po
drugiej stronie (8 liniii wiec cos by sie dalo wymyslic (wlasny protokol
szeregowy z jedna linia jako znacznikiem startu), ale nie wiem dlaczego nie
podoba mi sie to za bardzo, ja bym chyba rozejrzal sie za innym procesorem
na slave, np. takim co ma I2C, mimo wszystko byloby to chyba tansze
rozwiazanie,
Tomek
From: Milosz Skowyra <miloszek.SPAM_REMOVE_at_nospam_fidonet.org.pl>
Subject: Re: I2c slave - procedura
Date: Thu, 07 Mar 2002 18:01:22 +0100
"Mariusz Księżak" wrote:
Ja przedstawilem tylko propozycje rozwiazania problemu a wy krytykujecie !
Macie jakies rozwiazanie ? jakies propozycje ? pokazcie je !
Buahhahaa...
Ktos mnie pytal jak sie jedzie na wroclaw, wyslalem go na krakow a wy
mnie krytykujecie, moze sami znacie lepsza droge ??? Rotfl. MSPANC
Na powaznie, znasz sposob dzialania IIC w trybach master i slave ??? Mam
podejrzenie ze nie, udzieliles koledze rady ktora raczej do dobrych nie
nalezy.
On mial racje, jedyne rozwiazanie to wykorzystanie przerwan.
Przyznaje sie jeszcze obslugi przerwan sie nie nauczylem ....
No tak... przynajmniej chwala ci za to ze sie przyznales.
--
Regards. Przy odpowiedzi usun "SPAM_REMOVE" z adresu!!!
|-----------------------------------------------------|
| Milosz Skowyra GSM Mobile +48 600 95 35 72 |
| miloszek_at_nospam_fidonet.org.pl 2:484/2.47 on fidonet |
|-----------------------------------------------------|
Proscie, a bedziecie prosci.
From: "Greg S." <greg_sz_at_nospam_dsuper.net>
Subject: Re: I2c slave - procedura
Date: Wed, 06 Mar 2002 12:56:35 -0500
Przyznaje sie jeszcze obslugi przerwan sie nie nauczylem ....
No tak... przynajmniej chwala ci za to ze sie przyznales.
A to dobre chwala to moze za cos wiekszego niz za przyznanie sie do niewiedzy.
Radzilbym co postudiowac porzadnie jak dzialaja komputery w ogole, potem
poczytac jak ten szczegolny procek dziala i dopiero sie zabierac do roboty.
Zaoszczedzisz czasu i czczego pisania.
To teraz chwala mnie ze opieprzylem i pouczylem he he.
Pozdrowka
Grze..Szy..
From: "Greg S." <greg_sz_at_nospam_dsuper.net>
Subject: Re: I2c slave - procedura
Date: Wed, 06 Mar 2002 11:28:48 -0500
Ed wrote:
Wykorzystuję zwykłš '51 bez wbudowanej obsługi i2c, linię SDA podpinam pod
INT0 (wykrycie START) a SCL pod P1.0
to jest nie jest w porzadku bo byle co Ci robi przerwania. Nie znam tego procka
na tyle zeby radzic szczegolowo ale
albo mozesz miec przerwanie (Timer w trybie Capture) na ktoryms porcie to jego
uzyj do tego celu albo timerem crob sobie przerwanie odpowiednio czesto (3-4
razy predkosc transmisli I2C) i w obsludze przerwania badaj stan portu ktory
jest dla ciebie SDA i SCL.
Po wykryciu przerwania i sprawdzeniu że to rzeczywiście START zawieszam całš
pozostała część programu i skupiam się tylko na odbiorze danych.
Tu tez jest blad . Nie mozesz tak zawieszac wszystkiego na dlugo chyba ze
rzeczywiscie inne rzeczy sa niewazne.
Zrob tak ze by robic przerwanie na kazda zmiane na lini I2C i wsuwac sobie do
jakiegos rejestru bity jeden po drugim.
Potem badasz czy wystepuje taka sekwencja jak trzeba itd..
W kazdym razie minimalizuj czas pozostawania w obsludze przerwan
Powodzenia
Grze..Szy..
From: "Ed" <edxx_at_nospam_poczta.onet.pl>
Subject: Re: I2c slave - procedura
Date: Fri, 8 Mar 2002 14:24:55 +0200
Dzieki wszystkim za rady - wychodzi na to, ze skonczy sie na transmisji
synchronicznej z wykorzystaniem trybu 0 w 2051 i malej procedurce w 8955.
Pozdrawiam
Ed
From: Romuald Bialy <romek_b_at_nospam_o2.pl>
Subject: Re: I2c slave - procedura
Date: Fri, 08 Mar 2002 23:48:07 +0100
Ed wrote:
Dzieki wszystkim za rady - wychodzi na to, ze skonczy sie na transmisji
synchronicznej z wykorzystaniem trybu 0 w 2051 i malej procedurce w 8955.
Dobra, ale o ile dobrze pamietam odbior w trybie 0 UART'u polega na tym
ze odbiornik generuje sygnal zegarowy i w jego takt przyjmuje dane np. z
rejestru przesownego. Wiec z deszczu pod rynne, bo 8955 musialby wysylac
dane w takt zegara z 2051.
Rozwiazaniem moze byc albo zastosowanie multipleksera na sygnalach RXD i
TXD z 8955 i przesylanie tego UART'em w trybie 2 z wykozystaniem trybu
multiprocesorowego, albo napisanie na 8955 programowego UART'a i
wykozystanie w 2051 trybu 3 i wolnej (np 1200 baud) transmisji.
--
Pozdrawiam.... Romuald Bialy
E'mail: romek_b_at_nospam_o2.pl
WWW: http://www.polbox.com/r/romekb
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: I2c slave - procedura
Date: Sat, 9 Mar 2002 00:47:13 +0100
Użytkownik "Romuald Bialy" <romek_b_at_nospam_o2.pl> napisał w wiadomości
news:3C893FA7.9E5A78E3_at_nospam_o2.pl...
Ed wrote:
Dzieki wszystkim za rady - wychodzi na to, ze skonczy sie na transmisji
synchronicznej z wykorzystaniem trybu 0 w 2051 i malej procedurce w
8955.
Dobra, ale o ile dobrze pamietam odbior w trybie 0 UART'u polega na tym
ze odbiornik generuje sygnal zegarowy i w jego takt przyjmuje dane np. z
rejestru przesownego. Wiec z deszczu pod rynne, bo 8955 musialby wysylac
dane w takt zegara z 2051.
Sygnał zegarowy jest wystawiany przez Tx i steruje rejesterm przesuwnym Rx-a
Uart odbiornika zgłasza przerwanie po wsunięciu 8-bitów do rejestru.
--
Marek Dzwonnik mdz_at_nospam_message.pl
GG: #2061027 (zwykle jako 'dostępny-niewidoczny')
From: Romuald Bialy <romek_b_at_nospam_o2.pl>
Subject: Re: I2c slave - procedura
Date: Sat, 09 Mar 2002 01:33:21 +0100
Marek Dzwonnik wrote:
Sygnał zegarowy jest wystawiany przez Tx i steruje rejesterm przesuwnym Rx-a
Uart odbiornika zgłasza przerwanie po wsunięciu 8-bitów do rejestru.
Bujda na resorach !
W trybie 0 zarowno przy nadawaniu jak i przy odbiorze
zegar jest generowany przez UART.
Ten tryb nadaje sie najlepiej do wysylania/pobierania danych z rejestrow
przesownych.
Fragment datasheet'a :
Serial data enters and exits through RxD. TxD _!!! _outputs_!!!_ the
shift clock. 8 bits are ransmitted/received: 8 data bits (LSB first).
The baud rate is fixed a 1/12 the oscillator frequency.
I dalej:
Reception is initiated by the condition REN = 1 and R1 = 0. At S6P2 of
the next machine cycle, the RX Control unit writes the bits 11111110 to
the receive shift register, and in the next clock phase activates
RECEIVE.
RECEIVE enable SHIFT CLOCK to the alternate _!!! __output_!!!_ function
line of P3.1. SHIFT CLOCK makes ransitions at S3P1 and S6P1 of every
machine cycle. At S6P2 of every machine cycle in which RECEIVE is
active, the contents of the receive shift register are shifted to the
left one position. The value that comes in from the right is the value
that was sampled at the P3.0 pin at S5P2 of the same machine cycle.
--
Pozdrawiam.... Romuald Bialy
E'mail: romek_b_at_nospam_o2.pl
WWW: http://www.polbox.com/r/romekb
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: I2c slave - procedura
Date: Sat, 9 Mar 2002 12:11:54 +0100
Uzytkownik "Romuald Bialy" <romek_b_at_nospam_o2.pl> napisal w wiadomosci
news:3C895851.643E8CC4_at_nospam_o2.pl...
Sygnał zegarowy jest wystawiany przez Tx i steruje rejesterm przesuwnym
Rx-a
Uart odbiornika zgłasza przerwanie po wsunięciu 8-bitów do rejestru.
Bujda na resorach !
W trybie 0 zarowno przy nadawaniu jak i przy odbiorze
zegar jest generowany przez UART.
Ten tryb nadaje sie najlepiej do wysylania/pobierania danych z rejestrow
przesownych.
Bujda ra resorach Ale przyznaje bez bicia, ze moja. Uzylem bolacego lba do
czytania srodku nocy. No i przeczytalem to co chcialem a nie to co
napisano :-((
Czyli problem nadal czeka na optymalne rozwiazanie.
MDz
From: "Ed" <edxx_at_nospam_poczta.onet.pl>
Subject: Re: I2c slave - procedura
Date: Sat, 9 Mar 2002 11:07:38 +0200
Sygnał zegarowy jest wystawiany przez Tx i steruje rejesterm przesuwnym
Rx-a
Uart odbiornika zgłasza przerwanie po wsunięciu 8-bitów do rejestru.
Bujda na resorach !
W trybie 0 zarowno przy nadawaniu jak i przy odbiorze
zegar jest generowany przez UART.
Ten tryb nadaje sie najlepiej do wysylania/pobierania danych z rejestrow
przesownych.
Pozdrawiam.... Romuald Bialy
E'mail: romek_b_at_nospam_o2.pl
WWW: http://www.polbox.com/r/romekb
Prawde powiedziawszy tuz tu dalem ciala - odbiór danych w trybie 0
rozumialem dokladnie tak samo jak Marek. Dopiero po twoim post doznalem
"olsnienia" - dzieki.
Pozdrawiam
Ed