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.

Not able to read BlockDataChecksum (extended command 0x60) : bq27510-G2

Other Parts Discussed in Thread: BQ27510-G2

Hi

I am using bq27510-G2 chip for my application. I am able to read Standard Data Commands and some Control sub-commands.

I am not able to read the flash checksum from the control sub-command 0x0004.

Also I am not able to read checksum directly from the extended command (BlockDataChecksum) 0x60 after reading 32 bytes from the flash. (Unsealed Mode)

Reply to both of these commands is 0x00 whereas I can read 32 bytes from flash and if I manually compute checksum it is B9 for subclass 64.

The I2C sequence being used for reading 0x0004 is the same as given in slua467a.pdf for I2C sub-command reading.

The I2C sequence for reading 0x60 (Extended commands - BlockDataChecksum) is 
    
[M]:    [S] 0xAA      0x60      [S] 0xAB                        [P]
                       \    /      \    /             \                     /
[Sl:]                 ack        ack               ack  read data

Kindly help.

I am able to read 32 bytes block from flash for all subclass, able to read device name length 0x62, Device name 0x63-0x69 etc

Thanks & Regards
Vikas

  • Hi Vikas,

    Because the dataflash contents are dynamic, the DF_CHECKSUM command really has no useful function and is being removed from newer products.  DF_CHECKSUM computes the checksum of the entire dataflash, including hidden dynamic values that are continuously updating.  Once you execute FW, this checksum will start changing all the time.

  • Hi dMax,
    I understand DF_CHECKSUM does not make any sense. We were using it to test if we are able to read Flash Checksum.
    Main issue is that we are not able to read checksum directly from the extended command (BlockDataChecksum) 0x60 after reading 32 bytes from the flash. (Unsealed Mode)

    The I2C sequence for reading 0x60 (Extended commands - BlockDataChecksum) is
       
    [M]:    [S] 0xAA      0x60      [S] 0xAB                        [P]
                           \    /      \    /             \                     /
    [Sl:]                 ack        ack               ack  read data


    I am able to read 32 bytes block from flash for all subclass, able to read device name length 0x62, Device name 0x63-0x69 etc

    Do I have to give some delay after passing address ( 0xAA    0x60) and before giving repeat start?

    Regards,
    Vikas

  • I don't know if it helps, but between I read/write the data block and read it's checksum (you must do this in sequence), I use a delay of 100 ms. It could be less, but it works.