Jetzt stellt sich die Frage wer "ER" ist, Programm / Befehl / Hardware .... zum übertragen eines Daten-Byte muss der CLK aber HIGH sein ...er wiederholt nach 25ms CLK stretch einfach das Byte
CLK wird vom Master vorgegeben und kann vom Slave bei LOW lang-gezogen werden ... kann es sein das dein Master da auch nicht sauber programmiert war ?!
Wenn ein Slave beim Clock Stretching sich aufhängt, hängt der BUS ... das muss der Master erkennen und z.B. den BUS-Zweig über I2C-Schalter abtrennen,
oder den Slave über eine Reset-Leitung neu starten ...
Man kann aber auch im Slave ein Watchdog mitlaufen lassen, der ein hängen in der TWI-Schleife erkennt und den Slave neu startet,
genau so kann ein Master beim übertragen einfach abrechnen, das muss der Slave erkennen.
Werde den Bus ausgiebig mit externen und internen Störungen testen ...
In meinem Fall scheint aber die in Bascom umgesetzten Befehle ( I2creceive / I2csend ) das Problem zu haben, möglicherweise wurden Fehler-Meldungen vom TWI-Controller nicht abgefangen und werden deswegen ignoriert.
Lesezeichen