Hi,
I am trying to get the ADM1166 crc working with a block read from ram register 0xA0 over the smbus.
I am issuing the following data to ADM1166 and receiving back 32 bytes + the PEC
set the pointer to register A0
0x68 0xA0
enter a block read command
0x68 0xfd 0x69
read the byte count
0x20
read the 32 bytes
0x4d 0x7b 0x67 0x40 0x5e 0x19 0x58 0xd9 0x8e 0xc6 0x7c 0x85 0x95 0x1f 0x7b 0xa3 0x70 0x4c 0x53 0x46 0x5e 0x06 0x64 0x85 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
read the pec
0x74
From what I understand the pec is calculated on all the bytes including the block read command, byte count,32bytes data and the pec.
I am using the CRC8 protocol.
0x68 0xfd 0x69 0x20 0x4d 0x7b 0x67 0x40 0x5e 0x19 0x58 0xd9 0x8e 0xc6 0x7c 0x85 0x95 0x1f 0x7b 0xa3 0x70 0x4c 0x53 0x46 0x5e 0x06 0x64 0x85 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x74
The checksum result I get is always 0xEB when I am expecting 0x00.
Can anyone see where I am going wrong?