Hello, I'd like to know how to read the content of dataflash of BQ27510-G2 in ROM mode. I studied the documents from TI.com, performed some experiments and mapped some commands (address 0x00):
0x00 - Read Program Block/Row (96 bytes) - I want to do the same with Dataflash
0x02 - Write Program Block
0x03 - Erase Program Page (2 Blocks per page)
0x04 - Mass Erase of Program
0x05 - Calculate the checksum of Program (4 bytes)
0x07 - Don't know, it seems to calculate something, the data returned is 0x03 0x10
0x08 - Calculate the checksum of DataFlash (2 bytes)
0x0A - Write DataFlash Block (32 bytes)
0x0C - Mass Erase of DataFlash
0x0D - Don't know, it seems to calculate something, the data returned is 0x03 0x04
0x0F - Exit ROM mode
0x06 - I used this command and my bq27510 bricked, it didn't respond for I2C address 0x16 nor 0xAA.
As I understood, the checksum must be written to execute the command, and we must add the byte values depending of the function. For example, to read a program block (command 0x00), the block number must be in the addresses 0x01 and 0x02, and the checksum is calculated summing the values at 0x00, 0x01 and 0x02. To write a program block, we must sum the values from 0x00, 0x01, 0x02, 0x04 ~ 0x63.
Address 0x66 indicates the status. 0x00 means "OK", while a different value means "NOT OK", and I've seen only the values 0x02 and 0x04.
I've read the document slua440 "Data Flash Programming and Calibrating bq27500 Gas Gauge" and it shows a way to read dataflash from bq27350, and I want to do the same with bq27510.