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