Pokrewne
menu      Szukam przetwornik A/C 16-bit z i2c w normalnej obudowie
menu      Mosty miedzy interfejsami (UART/SPI/I2C)
menu      ATmega16 i2c (TWI) i bit TWEA
menu      Kilka TDA8425 na jednej linii I2C ?
menu      TWI (I2C) w AVR, a topologia
menu      Procki audio I2C
menu      pytanie o protokół I2C
menu      I2C izolowana galwanicznie.
menu      RS232 --> AVR --> I2C
menu      I2C slave na Atmega?
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • przylepto3.keep.pl
  • magistrala i2c - RESET





    Luk@sz - 17-02-2007 22:45
    magistrala i2c - RESET
      Witam

    Buduję system złożony z kilku uC, komunikacja między nimi to szyna i2c.
    W systemie jest 1 master(zawsze ten sam), a reszta pracuje jako slave.
    Głowię się jak rozwiązać problem błędów w transmisji. Założenie mam
    takie, że w każdym urządzeniu określam "timeout" (np. 1s) po którym
    interfejs TWI jest resetowany. Niby całość działa ale nie do końca. W
    jaki sposób zrobić skuteczny RESET na i2c? Ma ktoś jakiś pomysł?

    Pozdrawiam





    Andy - 17-02-2007 22:45

      Użytkownik "Luk@sz" <lkoasze@o2.pl> napisał w wiadomości
    news:45d75ca1$0$13179$f69f905@mamut2.aster.pl...
    > Witam
    >
    > Buduję system złożony z kilku uC, komunikacja między nimi to szyna i2c.
    > W systemie jest 1 master(zawsze ten sam), a reszta pracuje jako slave.
    > Głowię się jak rozwiązać problem błędów w transmisji. Założenie mam
    > takie, że w każdym urządzeniu określam "timeout" (np. 1s) po którym
    > interfejs TWI jest resetowany. Niby całość działa ale nie do końca. W
    > jaki sposób zrobić skuteczny RESET na i2c? Ma ktoś jakiś pomysł?
    >

    Gdy pojawia sie bledy moze powtarzac ostatnia transmisjie ?

    Co to znaczy "Niby calosc dziala ale nie do konca" ?
    Tzn. co nie dziala ?

    --
    Andrzej




    Luk@sz - 17-02-2007 23:45

      Andy napisał(a):
    > Gdy pojawia sie bledy moze powtarzac ostatnia transmisjie ?
    >
    > Co to znaczy "Niby calosc dziala ale nie do konca" ?
    > Tzn. co nie dziala ?

    Rozchodzi mi sie o to jak powinna wyglądać sekwencja RESET. Przykładowo,
    pojawiło się zakłócenie na szynie, master wysłał daną i nie dostał ACK
    od SLAVE. W tej sytuacji MASTER powinien zresetować magistrale i ponowić
    transmisję, natomiast SLAVE powinien zresetować sprzętowe TWI. Jakim
    rozkazem to zrobić?

    Czy jeżeli jestem jako SLAVE i zechcę wysłać STOP to co się wydarzy?

    Pozdro




    Patryk Sielski - 17-02-2007 23:45

      Luk@sz <lkoasze@o2.pl> pisze:
    > Rozchodzi mi sie o to jak powinna wyglądać sekwencja RESET. Przykładowo,
    > pojawiło się zakłócenie na szynie, master wysłał daną i nie dostał ACK
    > od SLAVE. W tej sytuacji MASTER powinien zresetować magistrale i ponowić
    > transmisję, natomiast SLAVE powinien zresetować sprzętowe TWI. Jakim
    > rozkazem to zrobić?

    Ja wysyłam po prostu STOP i u mnie działa :-)

    > Czy jeżeli jestem jako SLAVE i zechcę wysłać STOP to co się wydarzy?

    To musi stać się MASTERem. SLAVE zgodnie z założeniami tylko słucha.

    --
    Pozdrawiam,
    Patryk Sielski





    Andy - 17-02-2007 23:45

      Użytkownik "Patryk Sielski" <psielski-usun@elka-usun.pw.edu.pl> napisał w wiadomości
    news:39da9$45d77c61$57ceab2d$25760@news.chello.pl. ..
    > Luk@sz <lkoasze@o2.pl> pisze:
    > > Rozchodzi mi sie o to jak powinna wyglądać sekwencja RESET. Przykładowo,
    > > pojawiło się zakłócenie na szynie, master wysłał daną i nie dostał ACK
    > > od SLAVE. W tej sytuacji MASTER powinien zresetować magistrale i ponowić
    > > transmisję, natomiast SLAVE powinien zresetować sprzętowe TWI. Jakim
    > > rozkazem to zrobić?
    >
    > Ja wysyłam po prostu STOP i u mnie działa :-)
    >
    > > Czy jeżeli jestem jako SLAVE i zechcę wysłać STOP to co się wydarzy?
    >
    > To musi stać się MASTERem. SLAVE zgodnie z założeniami tylko słucha.
    >...

    Jesli chodzi o AVR to pisza cos w dokumentacji,
    ze jesli w przypadku SLAVE ustawimy bit STO
    to nie generuje to sekwencji STOP na liniach TWI
    ale doprowadza maszyne stanow od TWI do stanu poczatkowego.

    --
    Andrzej




    Adam Wysocki - 18-02-2007 00:45

      Spinacz biurowy, Luk@sz <lkoasze@o2.pl>!

    > Rozchodzi mi sie o to jak powinna wyglądać sekwencja RESET.

    Nie ma czegoś takiego jak sekwencja resetu na i2c. Do synchronizacji, czyli
    ustawienia stanu początkowego w automacie slave'a, służą sekwencje start/stop.
    Po prostu jeżeli coś poszło nie tak to robisz stop i ponawiasz transmisję.

    > pojawiło się zakłócenie na szynie, master wysłał daną i nie dostał ACK
    > od SLAVE. W tej sytuacji MASTER powinien zresetować magistrale

    Wysyłając stop.

    > natomiast SLAVE powinien zresetować sprzętowe TWI.

    Po otrzymaniu start.

    > Czy jeżeli jestem jako SLAVE i zechcę wysłać STOP to co się wydarzy?

    Nie ma czegoś takiego. Od wysyłania poleceń jest master. Slave ma słuchać
    i ewentualnie wysłać acka albo dane (jeżeli są z niego czytane) w takt
    zegara mastera. Jeżeli slave stwierdzi, że coś mu się nie zgadza, to albo
    może nie wysłać acka, albo możesz zrobić jakiś rejestr kontrolny w slave,
    z którego czytasz np. kod błędu ostatniej operacji na magistrali, albo
    numer stanu w automacie stanowym slave'a (ale to raczej dotyczy wyższej
    warstwy niż datalink, np. ogólnej spójności prawidłowo przesłanych danych).

    --
    Adam Wysocki * Warszawa * http://www.chmurka.net/ * GSM: 514 710 213
    FidoNet: 2:480/138, SWL: SP5-250730, QTH: KO02MF, CB: 19 Śródmieście
    W razie wątpliwości opróżnij magazynek. (C) Jakub Krajewski amd3dnow
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • konstruktor.keep.pl
  • Design by flankerds.com