logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Przedłużenie szyny i2c do ponad 10m

27 Sty 2010 06:40 3074 22
  • #1 7598597
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #2 7599045
    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.
  • Pomocny post
    #3 7599074
    tmf
    VIP Zasłużony dla elektroda
    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.
  • #4 7599245
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #5 7599384
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #7 7599861
    _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.
  • #8 7600076
    Konto nie istnieje
    Konto nie istnieje  
  • #9 7604231
    asembler
    Poziom 32  
    A czy w ogóle to jest szyna I2C?
  • #10 7604257
    bolek
    Poziom 35  
    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
  • #11 7604752
    Konto nie istnieje
    Konto nie istnieje  
  • #12 7604883
    Konto nie istnieje
    Poziom 1  
  • #13 7605323
    Chris_W

    Poziom 39  
    Jak są tranzystory to można nawet napięcie podnieść, prądy dać maksymalne możliwe w tych warunkach.
  • Pomocny post
    #14 7605505
    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"
  • #15 7606143
    Konto nie istnieje
    Konto nie istnieje  
  • #16 7606874
    bolek
    Poziom 35  
    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
  • #17 7609269
    Konto nie istnieje
    Konto nie istnieje  
  • #18 7609438
    bolek
    Poziom 35  
    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
  • #19 7609467
    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!!
  • #20 7609483
    bolek
    Poziom 35  
    Dwóch na jednego? Dobra, w kwesti zbocza ustąpie :)
  • #21 7609606
    Konto nie istnieje
    Konto nie istnieje  
  • #22 7609652
    tmf
    VIP Zasłużony dla elektroda
    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.
  • #23 7609693
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA