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

Xmega TWI - ADC MCP3421 - zawiesza się po krótkim czasie pracy

rafiks 07 Maj 2017 15:26 1347 8
  • #1 16460996
    rafiks
    Poziom 18  
    Witam Was, Podłączyłem do xmegi ADC MCP3421 rezystory pull-up 1k ( próbowałem z innymi ) transmisja 100kHz ( próbowałem z innymi prędkościami ) problem w tym że działa tylko chwilę zawsze zawiesza się w tym samym miejscu po takim samym czasie. Reset układu nie pomaga - powstaje tylko szpilka:

    Xmega TWI - ADC MCP3421 - zawiesza się po krótkim czasie pracy

    Tutaj rozpoczęcie komunikacji:

    Xmega TWI - ADC MCP3421 - zawiesza się po krótkim czasie pracy

    A tutaj zawieszenie komunikacji:

    Xmega TWI - ADC MCP3421 - zawiesza się po krótkim czasie pracy




    A tutaj kod programu:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Jakieś pomysły gdzie popełniłem błąd?
  • #2 16461142
    excray
    Poziom 41  
    Kolego jak czytasz dane po i2c to przy ostatnim odczytywanym bajcie powinieneś zwracać NAK. Czytanie dokumentacji się kłania.
  • #3 16461294
    rafiks
    Poziom 18  
    Niestety tak jak myślałem to nie to było problemem. Poniżej przerobiona procedura odczytu ostatni bajt jako NACK. Tak jak się zawieszało tak się nadal zawiesza komunikacja jest poprawna przez ok 200 milisekund prawie zawsze zawiesza się po takim samym okresie czasu.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #4 16461348
    funak
    Poziom 26  
    To może problem jest typowo sprzętowy, czyli brakuje energii podczas konwersji.
    Masz zamontowany blisko pinów kondensator odprzęgający 100nF?

    Dodano po 1 [minuty]:

    PS. Co to za program/sprzęt do monitorowania magistrali I2C?
  • #5 17363579
    joik123
    Poziom 9  
    Mam teraz podobny problem. Można wiedzieć co było problemem?
  • #6 17363878
    Konto nie istnieje
    Konto nie istnieje  
  • #7 17363955
    joik123
    Poziom 9  
    Dzięki za odpowiedź.
    Mam właśnie problem z blokowaniem SDA przez slave. Jest to jednoznaczna diagnoza, ponieważ po odłączeniu slave SDA momentalnie przechodzi do stanu wysokiego. Jakie może być źródło tego problemu? Czy to prawda, że jak wyślesz ACK zamiast NACK-a zaraz przed sekwencjom STOP to slave też będzie blokował magistralę?
  • #8 17363958
    Konto nie istnieje
    Konto nie istnieje  
  • #9 17394788
    joik123
    Poziom 9  
    Po kilku dniach walki poddałem się i użyłem standardowych bibliotek atmela, śmiga aż miło. Jak będę miał trochę wolnego czasu znów sam spróbuję :D Dzięki za wszystko.
REKLAMA