Hallo zusammen,
für eine Reparatur muss ich den Inhalt eines EEPROMs (64kB SPI EEPROM,
M95640) verändern. Das Problem ist eine Prüfsumme für Datenblöcke,
welche ich nicht selber berechnen kann. Das EEPROM hängt an einem C2000
von TI (TMS320F28335PGFA)
In dem EEPROM sind mehrere dieser Blöcke, mit der Größe von 160 Byte.
Diese Blöcke möchte ich modifizieren können. Die Blöcke, kann ich, wenn
ich sie aus einem anderem EEPROM rauskopiere, einzeln austauschen. Somit
scheint es keine Checksum für das gesamte EEPROM zu geben. Der Block
beginnt immer mit "50 00 40 00". Und am Ende des Blocks sind die letzten
16 Bit anscheinend die Checksum. Soweit meine Ananlyse. Ob diese aber
korrekt sind, weiß ich nicht.
Recht weit am Ende des Bins gibt es auch leere Blöcke, mit denen habe
ich versucht habe die Checksum zu berechnen. (Bsp. 0x14C0-155F)
1 | 50 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 58 42
|
Auch hier sieht man wieder den Anfang mit 50 00 40 00 und die letzten 16
Bit als vermeintliche Checksum "58 42".
Verschiedene Möglichkeiten habe ich probiert. Die Checksum mit und Ohne
"50 00 40 00" zu berechnen, auf Basis verschiedener CRC16 Möglichkeiten,
die es in Online Kalkulatoren gibt.
Ändere ich Werte in diesem Block, ohne die Checksum anzupassen, startet
der µC nicht.
Im Anhang ist ein EEPROM Dump. Gerne kann ich, falls notwenidg, noch
weitere zur Verfügung stellen.
Sonst hoffe ich, dass alles soweit verständlich ist.
Habt ihr eine Idee, wie die Checksum berechnet wird? Braucht ihr sonst
noch Infos?
Vielen Dank und viele Grüße
Chris