Forum: Mikrocontroller und Digitale Elektronik I2C Failure Modes


von Chefkoch (Gast)


Lesenswert?

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

von Christian M. (Gast)


Lesenswert?

Ah ja, super!

Auch Grüsse, Chregu

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.