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.

BQ27411-G1: BlockData access issue

Part Number: BQ27411-G1

Hi all. Thanks for your time.

I have tried to use a BQ27411-G1A to monitor a battery. The interaction with the component is performed by a microcontroller via i2c.

The standard command works fine. However issues were encountered during the writing block data in extended data command.

The block data access flow followed the SLUUAS7B–January 2014 manual.

1.
The read value for offset 0 for data class is 0x60 in all subclass. Which is unexpected as the default value should be zero.
Take SAFETY subclass with id of 0x02 as example.
The written data class value is 0x02, the datablock is 0, and the access address is 0x40, 2 bytes were read.
The return value is 0x6000 with checksum of 0x00.

2. 
Follow up with the previous issue, in the same setup I tried to write data into the same register.
The written data class value is 0x02, the datablock is 0, and the access address is 0x40, 2 bytes were read with value of 0x6000 and checksum of 0x00.
After a series of trial-and-error, a successful write has been made with write value of 0x01F4 and checksum of 0x0A.
I tried to re-read the same place, the value i got is 0x60F4 with a new checksum of 0xF4.

3.
I tried to write value to the next register. As example.
The written data class value is 0x02, the datablock is 0, and the access address is 0x42, 2 bytes were written.
Continued from previous situation, the checksum is 0xF4.
I tried to write 0x0000 with new checksum of 0x0B.
A NACK situation occurred.

4.
To further explore the scenario, I tried to read value from various data class, the read value from offset 0 register is always 0x60.

5.
To further explore the scenario, I tried to write value in offset other than 0 from various data class, none of those was successful.

6.
The read value from DM code and Default design cap is correct. Despite the default value is not zero, the checksum i read was zero.

 

I think the inability to access the datablock hinder the functionalities of the components. I would love to make this battery gauge work.

Sorry about the messy information. I am happy to provide more data to resolve the confusion.

Thank you.