Elektroda.pl
Elektroda.pl
X
CControls
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Przedłużenie szyny i2c do ponad 10m

27 Sty 2010 06:40 2408 22
  • #1 27 Sty 2010 06:40
    528649
    Użytkownik usunął konto  
  • CControls
  • Pomocny post
    #2 27 Sty 2010 10:04
    Balu
    Poziom 38  

    Generalnie one nie są przewidziane na takie odległości, ja bym dał skrętke E5 z ekranem umasionym, do tego możesz mieć nadzieję, że niska prędkość na szynie jest i możesz ją podciągnąć trochę mocniej do plusa...
    Tyle bez głębszej ingerencji.

    0
  • CControls
  • Pomocny post
    #3 27 Sty 2010 10:09
    tmf
    Moderator Mikrokontrolery Projektowanie

    A ja obstawiam, ze to niemozliwe. Skretka z pewnoscia odpada - szyna I2C nie jest szyna roznicowa, wiec puszczanie sygnalow w dlugich rownoleglych przewodach spowoduje przesluchy i niemoznosc jakiejkolwiek transmisji. Drugim problemem sa okreslone dla I2C czasy narastania/opadania zboczy. No i dodatkowo autobus to srodowisko o duzych zakloceniach, pomijam juz to co stanie sie z ukladem podczas jazdy w burzy - 10m antena.

    0
  • #4 27 Sty 2010 10:54
    528649
    Użytkownik usunął konto  
  • Pomocny post
    #5 27 Sty 2010 11:20
    atom1477
    Poziom 43  

    Wyjścia SCL i SDA "wzmocnić" tranzystorami a rezystory podciągające zmniejszyć do 470...220R.

    Dodano po 1 [minuty]:

    Ale niestety będziesz musiał skombinować jakiś autobus bo musowo to przetestować w praktyce.

    0
  • #6 27 Sty 2010 11:44
    Balu
    Poziom 38  

    A czy ja kazałem komuś puścić jedną parą wszystko?:>
    skrętka jako tanie wyjście;)

    Co do autobusu to koniecznie testy wwewnątrz,a ten układ texasa wygląda na wymarzony:)

    0
  • Pomocny post
    #7 27 Sty 2010 13:14
    _Robak_
    Poziom 33  

    Możesz jeszcze spróbować takie coś, pościć SDA i SCL różnicowo, w jednej parze SDA i ~SDA, i tak samo z SCL, a na płytce docelowej złożyć z zaszumionych sygnałów komplementarnych całosć. Złożyć taki sygnał możesz za pomocą układu DS75115.

    0
  • #8 27 Sty 2010 14:08
    528649
    Użytkownik usunął konto  
  • #9 28 Sty 2010 08:41
    asembler
    Poziom 32  

    A czy w ogóle to jest szyna I2C?

    0
  • #10 28 Sty 2010 08:49
    bolek
    Specjalista - oświetlenie sceniczne

    Popieram Atoma, sam to przerabiałem. Ale z prostą parą tranzystorów to za bardzo nie przejdzie- linia działa w dwie strony.
    I2C ogólnie nie lubi pojemności, to że nadajnik "wolno" wysyła to nic nie znaczy. Ważne jest to że odbiornik potrafi zobaczyć 100 lub 400kHz i tu jest ograniczenie (zbocza muszą być praktycznie idealne).

    Ja maksymalnie poleciał i2c na 7m. pull up 1k, były nawet warystory. Nie mówie że było idelanie, bo pstrykanie odbiornikiem w okolicach kabla powodowało wykolejenie transmisji, ale się przed tym zabezpieczyłem programowo.

    Autobusy to przeważnie diesle, tam z sianiem po eterze nie jest tak źle

    0
  • #11 28 Sty 2010 11:32
    528649
    Użytkownik usunął konto  
  • #12 28 Sty 2010 12:09
    atom1477
    Poziom 43  

    bolek napisał:
    Popieram Atoma, sam to przerabiałem. Ale z prostą parą tranzystorów to za bardzo nie przejdzie- linia działa w dwie strony.

    Ale mi nie chodzi o Push-Pulla z dwóch tranzystorów, tylko o dwa tranzystory na dwie linie. Czyli po jednym tranzystorze na linię i wtedy będzie to dwukierunkowe.

    0
  • #13 28 Sty 2010 13:48
    Chris_W
    Poziom 37  

    Jak są tranzystory to można nawet napięcie podnieść, prądy dać maksymalne możliwe w tych warunkach.

    0
  • Pomocny post
    #14 28 Sty 2010 14:33
    sq6ade
    Poziom 40  

    Są gotowe scalone bufory na szyne I2C. Może to załatwi sprawę.
    Znalazłem kilka w góglu pod hasłem "I2C line buffer"

    0
  • #15 28 Sty 2010 16:53
    528649
    Użytkownik usunął konto  
  • #16 28 Sty 2010 18:55
    bolek
    Specjalista - oświetlenie sceniczne

    Obciążalność zależy od danego proca- trzeba zanurkować do odpowiedniego manuala. O filtrze i ograniczeniu czasu narastania coś namieszałeś, nawet się to kłóci z cyfrową ideą tego wyjścia!. Ograniczenie jest w postaci źródła prądowego.

    Slave (i w ogóle starsze procki) lubią dawać tylko stan niski (zwierane przez wewnętrzny tranzystor), wysoki stan podawany jest za pośrednictwem pullupa, który albo znajduje się w układzie, albo ty go zamontujesz.
    Ogólnie w takim przypadku pullup zda się do pewnej granicy, zwróć uwage jak będa się rozkładać proądy w twojej linii w zalezności gdzie i jakie rezystory postawisz. Ba! w przypadku gdy wystawisz stan wysoki, prąd w linii praktycznie nie popłynie i właśnie dla stanu wysokiego wiele łatwiej wykoleić transmisje.

    Wypadało by zadać pytanie, czy ten twój master tylko wysyła do slave informacje czy też odczytuje?
    Jeśli tylko wysyła, to na drugim końcu wystarczy postawić dwie negujące bramki i w ten sposób zapewnić sobie przepływ prądu w linii dla obydwóch stanów

    0
  • #17 29 Sty 2010 06:49
    528649
    Użytkownik usunął konto  
  • #18 29 Sty 2010 08:39
    bolek
    Specjalista - oświetlenie sceniczne

    technics6 napisał:


    Oj chyba nie masz racji. Schemat blokowy modułu I2C w AVR'ach Atmela.

    Przedłużenie szyny i2c do ponad 10m

    Nie wszystkie wyjścia w AVr są takie same, nie wspomniałeś że pytasz o sprzetowe I2c. Tak czy siak, filtr to masz jedynie do szpilek. Nikt z premedytacją nie będzie ograniczał stromości zbocza w wyjściu cyfrowym. Tam pisze "control" a nie "filter" :)

    technics6 napisał:

    Nie da się zrobić szyny i2c w jedną stronę, bo po zakończeniu transmisji master czeka, aż slave ściągnie do zera linię SDA.


    Pisząc sciąganie masz na myśli właśnie potwierdzenie?. Master na nic nie czeka, albo dostanie ack albo nie. To co się stanie dalej to już kwestia programisty.
    Jestem pewien że robiąc stabilną transmisje, nie trzeba będzie czytać żadnych potwierdzeń, bądz wysyłać wszystko jeszcze raz

    0
  • #19 29 Sty 2010 08:51
    Freddie Chopin
    Specjalista - Mikrokontrolery

    bolek napisał:
    Tak czy siak, filtr to masz jedynie do szpilek. Nikt z premedytacją nie będzie ograniczał stromości zbocza w wyjściu cyfrowym.

    Sam jesteś w błędzie - stromość zboczy w komunikacji I2C jest określona precyzyjnie i nie jest ona równa "Inf V/s"! Nie jest to ograniczenie do bardzo łagodnych zboczy, jednak JEST ograniczeniem do konkretnych wartości. W STM32 nawet możesz kontrolować ten parametr.

    4\/3!!

    0
  • #20 29 Sty 2010 08:59
    bolek
    Specjalista - oświetlenie sceniczne

    Dwóch na jednego? Dobra, w kwesti zbocza ustąpie :)

    0
  • #21 29 Sty 2010 09:50
    528649
    Użytkownik usunął konto  
  • #22 29 Sty 2010 09:52
    tmf
    Moderator Mikrokontrolery Projektowanie

    bolek napisał:
    Pisząc sciąganie masz na myśli właśnie potwierdzenie?. Master na nic nie czeka, albo dostanie ack albo nie. To co się stanie dalej to już kwestia programisty.
    Jestem pewien że robiąc stabilną transmisje, nie trzeba będzie czytać żadnych potwierdzeń, bądz wysyłać wszystko jeszcze raz


    A skad bez ACK chcesz wiedziec, czy slave w ogole odpowiedzial? Nawet wyslanie adresu wymaga ACKa. Wiec linia SDA musi byc dwukierunkowa. Dla implementacji pelnej specyfikacji I2C linia SCK tez musi byc dwukierunkowa, bo slave moze trzymac ja w stanie niskim sygnalizujac masterowi, ze ma zwolnic.

    0
  • #23 29 Sty 2010 10:07
    528649
    Użytkownik usunął konto