This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS160PR810: Configuration EEPROM — Calculating CRC8 Checksum

Part Number: DS160PR810

Hi,

I am reading through SNLA342 and the way in which the CRC-8 calculations are described are a little confusing. I'm assuming polynomial value of 0x07 is being used, as the documentation does not specify this.

Using the example given with Table 4 of SNLA342 as reference:

CRC-8 Input = 0x10F1811220F2811A02
Computed CRC-8 = 0x9C

This checksum value appears to be the checksum of each individual ASCII character value:
CRC8(0x31 0x30 0x46 0x31 0x38 0x31 0x31 0x32 0x32 0x30 0x46 0x32 0x38 0x31 0x31 0x41 0x30 0x32) = 0x9C

As opposed to the checksum of each byte of data:
CRC8(0x10 0xf1 0x81 0x12 0x20 0xf2 0x81 0x1a 0x02) = 0xC5

(Was this the intended behaviour?)

The EEPROM HEX file example in Section 5.2 does not seem to perform either of the two calculations above:

CRC-8 Input = 0x102B811310278123
Computed CRC-8 (as written in the documentation) = 0xA6

Checksum of each individual ASCII character value:
CRC8(0x31 0x30 0x32 0x42 0x38 0x31 0x31 0x33 0x31 0x30 0x32 0x37 0x38 0x31 0x32 0x33) = 0x58

Checksum of each byte of data:
CRC8(0x10 0x2b 0x81 0x13 0x10 0x27 0x81 0x23) = 0x33

Neither of these two computed values match the value written in the documentation.

Any pointers with this would be much appreciated.

Best regards,
KM