I2C i dwa urzadzenia

Aug 17, 2004 6 Replies

Witam! Mam podlaczone dwa urzadzenia do I2C. Jedno jest blisko-0,5 metra, drugie daleko, 40 m dalej. Oba pracuja poprawnie, jak sa podlaczone osobno. Gdy je wepne razem, pracuje urzadzenie, ktore jest dalej, to blizsze nie. Przez jakie kondensatory (rezystory) podlaczyc je nalezy do magistrali? Teraz sa podlaczone przez kondensatory



330 Ohm

pozdrawiam i dziekuje za odpowiedz!



Rozumiem że miałeś na myśli dwa rezystory 330 ohm.

Przekroczyłeś dopuszczalną pojemność lini I2C - jedyne ograniczenie twórców standardu które determinuje długość takiej lini.

Powinieneś zastosować extender (1 parę układów wydłużających szynę I2C).

Możesz zastosować lepsze kable i trochę zmiejszyć wartość rezystorów podciągających ale 40 metrów to dużo (chyba za dużo IMHO).

HTH, RobertG.

U¿ytkownik "radek" snipped-for-privacy@z.pl napisa³ w wiadomo¶ci news:cfshol$q86$ snipped-for-privacy@inews.gazeta.pl...

Yyyyyy kondensatory 330Om ? Chodzi Ci o pullupy ? Jesli masz pullupy 330Om to za malo - ja bym probowal miedzy 2k2 a 1k0 przy takich odleglosciach. Zalezy jeszcze co jest napisane w pdfach od tych urzadzen.

U¿ytkownik "radek" snipped-for-privacy@z.pl napisa³ w wiadomo¶ci news:cfshol$q86$ snipped-for-privacy@inews.gazeta.pl

Na mój gust I2C _z_zasady_ nie nadaje siê do pracy na d³ugich liniach. Tzn. nawet je¶li zadzia³a to bez gwarancji, ¿e zawsze i przy dowolnej kombinacji transmitowanych danych.

W przypadku RS485 mo¿esz na tyle zwolniæ prêdko¶æ transmisji, ¿e próbkowanie stanu bitu w odbiorniku nast±pi dopiero po ustaleniu stanu na magistrali. Czyli w momencie gdy biegaj±ce w linii odbicia ulegn± wyt³umieniu do wymaganego poziomu. Poza tym konstrukcja interfejsów pozwala na ³atwe dopasowanie koñców linii. Gdyby nie ograniczenie ze wzglêdu na max. rezystancjê linii, to RS485 w zasadzie nie mia³by okre¶lonego max. zasiêgu transmisji (oczywi¶cie pod warunkiem odpowiednio spowolnionego taktowania)

Automat interfejsowy I2C reaguje na _zbocza_ sygna³ów. W z³o¶liwym przypadku sygna³ powracajacy po odbiciu od niedopasowanego koñca linii (lub ich kombinacja) mo¿e zostaæ zinterpretowany jako dodatkowe zbocze wysy³aj±ce I2C w maliny.

Wyobra¿my sobie, ¿e mamy nadajnik I2C (a ¶ci¶lej to zarazem i odbiornik), kawa³ek linii d³ugiej i odbiornik. Urz±dzenie I2C jako odbiornik (tzn. je¶li nie nadaje tylko s³ucha) z punktu widzenia linii jest obci±¿eniem wysokoimpedancyjnym. Czyli linia na koñcu nie jest dopasowana. Ew. rezystory podci±gaj±ce rzêdu 1...10kohm te¿ maj± siê nijak do przeciêtnej impedancji falowej kabelka rzêdu kilkadziesi±t...stokilkadziesiat ohm. Nadajnik wysy³a w liniê zbocze sygna³u. Impuls biegnie w linii, odbija siê od jej niedopasowanego koñca i wraca do nadajnika. Linia wzglêdnie krótka, t³umi s³abo, wiêc amplituda odbicia prawdopodobnie bêdzie wystarczaj±ca, ¿eby mog³a byæ zinterpretowana jako zmiana stanu logicznego - np. dodatkowy warunek Start/Stop albo fa³szywe ACK.

Ekhm... Czego¶ nie rozumiem? ;-)

Spróbujmy jednak t± liniê dopasowaæ. Za³o¿yæ na koñcach rezystory 100ohm? Tak obci±¿onej linii nie wysteruje ¿adne standarowe urz±dzenie I2C. Dopasowac dynamicznie dwójnikami RC? Mocno sp³aszczy zbocza, a do tego zupe³nie ró¿nie w przypadku zboczy narastaj±cych i opadaj±cych (nadajnik ma skrajnie ró¿n± impedancjê w stanach H i L). Pamietajmy, ¿e odbiornik reaguje na _zbocza_ wiêc nie mo¿na ich dowolnie sp³aszczaæ. St±d wniosek, ¿e tak dopasowanej linii o typowej warto¶ci impedancji falowej rzêdu stokilkadziesi±t omów _nie_da_ siê wysterowaæ z ma³o wydajnych wyj¶æ I2C.

Czyta³em kiedy¶ felieton na temat gotowania jajek w mikrofalówce. Ludzie wymy¶lili dziesi±tki bardziej lub mniej udanych patentów, ¿eby nie musieæ skrobaæ jajecznicy z kuchenki. Za wyj±tkiem jednego: Przyznaæ, ¿e mikrofalówka nie nadaje siê do gotowania jajek i siêgn±æ po garnek jako odpowiednie narzêdzie. Zatem I2C nie nadaje siê do ³±czenia odleg³ych urz±dzeñ. Do tego s± inne rozwi±zania. Howgh! ;-)

BTW: W Elfie mo¿na kupiæ uk³ady 82B715 (73-715-11):

formatting link
takie extendery rozwi±¿± problem? Tzn. urz±dzenie bliskie pod³±czasz bezpo¶rednio a odleg³e przez parkê extenderów.

Dostaniesz je te¿ w TME (tylko szybko - 2szt. DIP na magazynie! ;-) , ale za to taniej ni¿ w Elfie)

formatting link

Witam,

Na pewno prawd± jest, ¿e 40m dla I2C to za du¿o, ale ... dlaczego w takim razie urz±dzenie urz±dzenie pod³±czone w odleg³o¶ci

40m dzia³a, a to bli¿sze nie?

Osobi¶cie, sprawdzi³ bym czy adres urz±dzenia znajduj±cego siê dalej nie jest taki sam jak adres urz±dzenia znajduj±cego siê bli¿ej

Pozdrawiam Tomek G.

40 metrów to już kawał linii długiej i musi być dopasowana na końcach, jesli marzysz o jakiejkolwiek sensownej transmisji. Takie 'drobiazgi' jak dbałość o separowanie linii sygnałowej od prądów (to nie pomyłka!) zasilania czyli poprawne prowadzenie przewodu masy też są warte uwagi.

U¿ytkownik "tomekg" snipped-for-privacy@remove.poczta.onet.pl> napisa³ w wiadomo¶ci news:cfsrj0$dnd$ snipped-for-privacy@inews.gazeta.pl

Dalatego, ¿e urz±dzenie "bliskie" zamiast krótkiej magistrali widzi 40m linii d³ugiej z rozwarciem na koñcu. Je¿eli pracuje jako odbiornik to najpierw dostaje zbocze z pobliskiego nadajnika (wyt³umione i wyp³aszczone na skutek obci±zenia impedancj± linii) a nastêpnie - jakie¶ 400ns pó¼niej - drugi skok wynikaj±cy z powrotu sygna³u odbitego od rozwartego koñca linii d³ugiej. Na to wszystko nak³ada siê jeszcze dzwonienie wynikaj±ce z obcinania przepiêæ przez diody klampuj±ce na wej¶ciach IC. Zrobi³em przed chwil± parê symulacji. Oczywi¶cie uproszczonych (linia bezstratna, obci±¿enie zastêpcze w postaci R=2k||C=20pF||D, itd..). Mimo to mo¿na siê dowiedzieæ paru ciekawych rzeczy ;-)

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required