I2C EEPROM Inhalt lesen

Hierbei geht es darum, einen I2C EEPROM (z.B. 24C16) auszulesen, ohne den IC auslöten zu müssen. Hierbei wird die I2C Kommunikation mittels eines USB-Logicanalyzers aufgezeichnet und anschließend ausgewertet.
Nach der Auswertung soll eine Binärdatei geschrieben werden, die den Inhalt des I2C EEPROM wiederspiegelt.

SDA und SCL anzapfen und aufzeichnen. Die Aufgezeichneten Daten können als CSV exportiert werden und sehen dann folgendermaßen aus:

Time [s],Packet ID,Address,Data,Read/Write,ACK/NAK
1.07048272,2,0xAE,0x00,Write,ACK
1.07078708,3,0xAF,0xFF,Read,NAK
1.07116376,4,0xAE,0x00,Write,ACK
1.07146836,5,0xAF,0xFF,Read,NAK
1.07184516,6,0xAE,0x00,Write,ACK
1.0721494,7,0xAF,0xFF,Read,NAK
1.07282372,8,0xA0,0x14,Write,ACK
1.07312836,9,0xA1,0x00,Read,ACK
1.07325876,9,0xA1,0xC2,Read,ACK
...

Mittels diesem Python script habe ich versucht die I2C Daten aus der CSV Datei auszuwerten und in eine Binärdatei zu schreiben.