Ich habe eine STM32L-MCU, die mit M24LR64E, einem I2C-EEPROM, verbunden ist. Früher hatte ich dieses Setup funktioniert, aber dann habe ich einige Dinge geändert (Layout, Firmware) und irgendwie habe ich den I2C geschraubt und es funktioniert jetzt nicht.
Ich verwende es mit dem I2C_DutyCycle_2-Modus bei 100 kHz, 4,7 k Pull-up sowohl auf SDA- als auch auf SCL-Leitungen. Alles auf dem Board arbeitet mit 3,3 V. Unten ist eine Aufnahme beider SCL/SDA-Leitungen auf meinem Oszilloskop, leider habe ich keinen Logikanalysator zum Spielen.
Die meisten I2C-Aufnahmen, die ich bei Google gefunden habe, scheinen mit quadratischen Anstiegs- / Abfallsignalen sehr "schön" zu sein, und meine sieht ganz anders aus.
Irgendwelche Vorschläge? Sieht das angehängte Bild für einen I2C-Bus gut aus?
Vielen Dank.
Fest. Dank Oli Glaser habe ich die Uhrkonfigurationsroutine repariert und die Oszilloskopaufnahmen sehen jetzt sehr gut aus, aber das Hauptproblem (MCU liest das EEPROM nicht) blieb bestehen. Nach stundenlangem Debug, Trial/Error, Datenblättern, Erratas, Foren usw. stellte ich fest, dass ich irgendwie die SLAVE DEVICE ADDRESS in meinem Code geändert hatte, sodass das EEPROM nicht antwortete, weil ich es nicht richtig anrief!
Für jeden zukünftigen Leser sollte die 7-Bit-Geräteadresse für dieses Gerät 0x53 oder 1010011b sein (Vergessen Sie nicht die richtige Verschiebung nach links und setzen Sie das Lese-/Schreibbit, um das vollständige Byte zu erhalten).
Vielen Dank für all die Hilfe und wie erwartet habe ich VIEL aus dieser Ausgabe gelernt!
Oli Glaser
kr105
kr105
kr105
Oli Glaser
Dorn
kr105