Der Master muß natürlich nach jedem Byte schreiben (Adresse, Daten) auf
ACK prüfen.
Das HV-I2C der AVRs hat leider auch diverse Bugs.
Bei 100kHz ist eine Pause 4,7µs zwischen Stop und Start vorgeschrieben,
die hält der AVR nicht von selber ein.
Solange der Slave den Stop-Interrupt nicht gelöscht hat, geht ihm ein
neues Start durch die Lappen.
Und als Multimaster kann das HV-I2C richtig abstürzen und muß disabled
werden.
Das HW-I2C der Atmel 8051 hat auch Fehler.
Nur das HW-I2C der Philips 8051, also das Original ist fehlerfrei.
Programmtechnisch sehen diese 3 HW-I2C identisch aus (Register, Bits,
Abläufe), aber intern sind sie es nicht. Da haben die bei Atmel beim
Nachentwickeln des Philips-I2C geschlampt.