Hello,
I'm trying to read/update BQ27410 flash memory data. My code follows all PDFs found on the TI site, however, I cannot get correct checksum value.
Here's an example:
I write the following registers: DFDCNTL=0, DFDCLS=48, DFDBLK=0. (Select class ID = 48 (decimal), block 0, regular flash memory access).
Then I read 32 bytes of data (starting at the address 0x40):
[00] [00] [0e] [10] [f6] [fe] [0c] [00] [31] [00] [21] [00] [01] [00] [00] [03] [84] [5a] [64] [05] [3c] [13] [60] [05] [3c] [fe] [70] [07] [62] [71] [32] [37]
If I now summ all these values, I get 0x75c. Calculated checksum should be 0xff-0x5c=0xa3.
However, if I read DFDCKS register, I get 0x99, not 0xa3.
I noticed that the values retrieved from the flash memory seem to be OK (I compared them to the table 7 of the slusaf4.pdf / bq27410-G1 spec), however, checksum value does not match my calculations. The same is true for any DFDCLS class ID value.
What could be wrong with the checksum?