I2C Failure Modes

Gast #5060256
Hallo zusammen,

da der I2C durchaus mal "hängen bleiben" kann, muss man Methoden 
vorsehen, um ihn wieder "frei zu machen".

Meine konkrete Anwendung ist zum Glück nur mittel anspruchsvoll - es 
gibt zwar mehrere Teilnehmer, aber nur einen Master.
Wenn ich das richtig verstanden habe, wird der Takt immer vom Master 
erzeugt, egal ob er empfängt oder sendet. Das würde bedeuten, dass in 
meinem Fall wo es nur einen Master gibt, kein anderer Teilnehmer die 
Taktleitung DAUERHAFT low ziehen kann. Außer den beiden AD Wandlern, die 
während ihrer Sampling und Conversiontime ein Clockstretching machen, 
was aber vorrübergegehnd ist.

>Das heißt, es bliebe nur übrig, dass ein Slave SDA dauerhaft LOW zieht?

>1)
>Ein Klassiker ist, dass SDA von einem Slave permanent LOW gehalten wird, >weil 
ein Taktpuls "verloren" gegangen ist.
>>Da kann man einfach die Taktleitung ein paar mal manuell toggeln und nach 
>>spätestens 9 mal ist der Slave durch seine Statemachine geschoben.

>2)
>Gibt es andere Szenarien, die ich bedenken muss?

viele Grüße,
Chefkoch

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.