RTV forum PL | NewsGroups PL

Jak poprawnie zrealizować arbitraż w protokole I2C przy transmisji danych?

pytanie o protokół I2C

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak poprawnie zrealizować arbitraż w protokole I2C przy transmisji danych?

MariuszC
Guest

Fri Dec 01, 2006 11:26 am   



Witam,
nie trafiłem na odpowiedź na nurtujący mnie problem, mam nadzieję że Wy mi
odpowiecie.
Otóż w specyfikacji jest podany opis arbitrażu który polega na wykryciu sytuacji
gdy dwa urządzenia master stwierdzają stan "bus free" (SDA = SCL = HI) i
zaczynają nadawać warunek START (SDA HI->LO, a potem SCL HI->LO). Jednak już
przy samej transmisji dla poszczególnych bitów danych (równych 1) zdarzają się
stany SDA = SCL = HI czyli "bus free". Powiedzcie mi proszę czy każdy master
przed rozpoczęciem transmisji musi badać stan linii SDA i SCL przez jakiś
minimalny czas, zanim stwierdzi czy magistrala jest wolna? Inaczej wciąłby się w
jakąś transmisję i jakiś bit danych (o wartości 1) zamieniłby w sygnał STARTu.

Mam specyfikację "THE I 2C-BUS SPECIFICATION VERSION 2.1 JANUARY 2000" ze strony
PHILIPSA i jakoś nie znalazłem/albo pomijam niechcący odpowiedź na ten problem

MariuszC

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

Paweł Cern
Guest

Sun Dec 03, 2006 9:34 pm   



Quote:

Warunki STAR i STOP sa generowane sprzętowo, gdy mamy kilku masterów to
można zadbac o jakiś timeout dla danej transmisji. Jeśli driver linii
sie powiesi i nie wymusi stałego "0" to magistrale możę przejąć dowolny
inny master. Jeśli się powiesi i wymsui "1" to troche gorzej, bo
masgistrala będzie ciągle zajęta.

Pozdro

Driver linii interfejsu I2C umie wymusić conajwyżej '0' i 'Z' (stan wysokiej
impedancji). Jeśli zawiesi się w stanie 'Z' to nic się nie stanie, może być
problem w stanie '0'. Generalnie dopóki nie symulujemy I2C na poziomie
programowym, takie ryzyko jest minimalne, a jeśli już występuje - układ jest
po prostu zepsuty.

Paweł

Paweł Cern
Guest

Sun Dec 03, 2006 9:43 pm   



Quote:

Zalozmy, ze mamy dwoch masterow - Atmegi ze sprzetowa obsluga i2c i jeden
slave - pcf8583.
Jak powinien wygladac reset i2c ?


Może pusta transakcja START+STOP?

elektroda NewsGroups Forum Index - Elektronika Polska - Jak poprawnie zrealizować arbitraż w protokole I2C przy transmisji danych?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map
Nasz serwis wykorzystuje pliki cookies. Korzystanie z witryny oznacza zgodę na ich zapis lub odczyt zgodnie z ustawieniami przeglądarki. Informacja o ciasteczkach