100% found this document useful (1 vote)
1K views2 pages

ME7 Eeprom Checksum Guide

The ME7 EEPROM contains 512 bytes divided into 32 pages of 16 bytes each. Each page has a descriptor word with bits indicating if the page has a checksum, backup page, and how to calculate the checksum. The checksum is calculated by summing the first 14 bytes of a page, adding or subtracting the page number, and storing the result in the last two bytes.

Uploaded by

Fila Piedra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
1K views2 pages

ME7 Eeprom Checksum Guide

The ME7 EEPROM contains 512 bytes divided into 32 pages of 16 bytes each. Each page has a descriptor word with bits indicating if the page has a checksum, backup page, and how to calculate the checksum. The checksum is calculated by summing the first 14 bytes of a page, adding or subtracting the page number, and storing the result in the last two bytes.

Uploaded by

Fila Piedra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

ME7 EEPROM Checksum-Guide

=========================
The ME7 EEPROM contains 512 bytes and is divided into 32 pages with 16 bytes per
page.
In the ME7 code you will find a table with 32 entries that contains one descript
or word for
each eeprom page. The index into this table is the eeprom pagenumber (00..31).
The descriptor word is a bitmask, the following bits are relevant for the checks
um calculation:
bit 0 = checksumPresent(CS) 1 -> page has checksum, 0 -> page has no checksu
m.
bit 6 = cksumBit(CB)
this bit is subtracted from the pageNumber to get
the
same checksum in backup page as in original page.
bit 7 = backupPage(BP)
1 -> page has a backup page.
Here is how the eeprom page info table looks like:
PAGE DESCR-WORD -> CHECKSUM-BITS
----------------------------------00
FF18
->
-01
0017
-> (CS)
02
0117
-> (CS)
03
0207
-> (CS)
04
0307
-> (CS)
05
0437
-> (CS)
06
0533
-> (CS)
07
06B7
-> (CS) (BP)
08
06F7
-> (CS) (BP) (CB)
09
07B3
-> (CS) (BP)
10
07F3
-> (CS) (BP) (CB)
11
08B7
-> (CS) (BP)
12
08F7
-> (CS) (BP) (CB)
13
09B3
-> (CS) (BP)
14
09F3
-> (CS) (BP) (CB)
15
0AB3
-> (CS) (BP)
16
0AF3
-> (CS) (BP) (CB)
17
0B32
->
-18
0B10
->
-19
0B10
->
-20
0B10
->
-21
0C37
-> (CS)
22
0D33
-> (CS)
23
0E33
-> (CS)
24
0F33
-> (CS)
25
1033
-> (CS)
26
1133
-> (CS)
27
1233
-> (CS)
28
1235
-> (CS)
29
1235
-> (CS)
30
13B7
-> (CS) (BP)
31
13F7
-> (CS) (BP) (CB)
If the checksumBit(CS) is set for a page,
Calculate the checksum as follows:
- sum up the first 14 bytes of the eeprom
- add the page number to the sum.
- if the checksumBit(CB) is set, subtract
- negate the sum (this is not the same as

this page has a checksum.


page in a 16bit variable.
1 from the sum.
complement!).

- store the resulting value in the last two bytes of the eeprom page,
first the low-byte, then the high-byte.
Disclaimer: this information was collected to the best of one's knowledge, but I
won't give
any guarantees for the correctness of my information. If you find any errors, pl
ease correct.
Have fun, mki

You might also like