Guten Abend,
In meinem aktuellen Projekt kommt als Prozessor ein ESP8266(ESP12-F Modul) zum Einsatz. Desweitern befindet sich noch eine Echtzeituhr (MCP7940N) und ein EEPROM(M24C32) auf der Platine welche mit dem I2C Interface verbunden sind.
Leider macht der I2C Bus ziemlich Probleme bei mir in form von er funktioniert mal und dann mal wieder nicht.
Wenn der Bus dann mal nicht funktioniert konnte ich feststellen das die Datenleitung(SDA) dauerhaft auf LOW gezogen wird während SCL auf HIGH ist. Verursacher scheint wohl möglicherweise die RTC(MCP7940N) zu sein. Ich habe mal zum testen das EEPROM & RTC ausgelötet wenn der Bus nicht funktioniert hat.
Wenn die RTC raus war funktionierte das EEPROM direkt auch ohne Codeänderung. Die RTC wurde dabei im Code nicht initialisiert. Die RTC habe ich auch schonmal testweise gegen eine neue getauscht um ein Defekt auszuschließen. Jedoch ohne Erfolg.
Hin und wieder krieg ich den Bus ans laufen wo dann RTC & EEPROM so funktionieren wie es soll. Wenn ich dann ein neues Programm auf den ESP lade scheint das wohl Glücksspiel zu sein ob der läuft oder nicht.
Ich bin mir auch nicht sicher ob es sich um ein Hardware oder Softwareproblem handelt. Die Anbindung des EEPROM hab ich selbst geschrieben und ist vom AVR-C portiert worden wo halt die i2c_xxx Funktionen durch die Methoden der Wire Library ersetzt wurden. So wie ich das verstanden habe hat der ESP8266 ja auch kein richtiges I2C Interface in Hardware wie zB. der AVR/STM32, sondern das ganze sei in Software via Bit-Banging gelöst.
PullUp Widerstände(2,2kOhm) sind direkt an den Datenleitungen am EEPROM dran nach 3,3V. Hatte vorher 4,7kOhm drin gehabt. Als Pins verwende ich GPIO4(SDA) und GPIO5(SCL)
Ich hatte das ganze bevor es in eine Platine umgewandelt wurde und der ESP8266 als Standalone zum Einsatz kommt, alles mal mit einem Streckbett und einer NodeMCU aufgebaut jedoch anstatt der MCP7940N die M Version(Ohne Battrie Backup Anschluss) im PDIP Variante verwendet und ein ST24C08 statt 32Kbit EEPROM. Da war diese Problem nicht aufgetreten.
Hat jemand ne Idee woran das liegen könnte.
Mfg





