Hallo,

es gibt noch eine weitere Fehlermöglichkeit und zwar hat der I2C-Slave, in diesem Fall der EEPROM, die Möglichkeit bei längeren Operationen den I2C-Master auszubremsen indem er den Takt (SCL) einfach länger auf Low zieht. Der Master bekommt das mit und wartet bis der Slave den Bus wieder freigibt. Viele Softwareimplementationen jedoch, bekommen das einfach nicht mit, weil dieser Fall gar nicht in Betracht gezogen wird.

Im Zusammenhang mit den I2C-Sensormodulen (beim EEPROM ists aber genauso) haben manche Kunden insbesondere mit Software-I2C-Implementationen (C-Control, aber auch AVR) Probleme, dass die Kommunikation mitunter nicht einwandfrei arbeitet. Durch Einfügen einer künstlichen Pause (dirty, aber geht) nach dem Write lässt sich dies dann aber zumeist beheben.

Ich würde dir empfehlen, unbedingt mit der Hardware-I2C-Objekt zu arbeiten. Wie das mit Bascom geht steht in dem Buch von Roland Walter "AVR Mikrocontroller Lehrbuch".

HTH und Viele Grüße
Jörg