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.


Part Number: BQ27621-G1
Other Parts Discussed in Thread: EV2400, BQSTUDIO

Hi TI Team,

We are using BQ-27621-G1 and we have encountered few problems and need your guidance on how to correct them.

1. Our I2C function to send data is somethinkg like I2CMasterTransmit (I2CHandle, RegAdd, DataBuffer, NumberOfBytesToSend);
So with this for control status we are using write funciton like this

DataBuffer[3] = {1,0,0}
I2CMasterTransmit (I2CHandle, 0x00, &DataBuffer, 3);

Is this correct? We assume, for control status we need to write to 0x0001 register of BQ27621. So we write the register address as 0, next buffer is filled with 1. So this combines to form 0x0001 and then we write 0x0000 (next 2 bytes to select control status).

2. Also with above control status call we always get 0x294/ 0x284. Seems the BQ27621 is always unsealed. We tried issueing seal command also by issueing
SealBuffer[3] = {1,0,0}
I2CMasterTransmit (I2CHandle, 0x00, &SealBuffer, 3);
But even after this we get the control status as 0x294.
Also last nibble 4 is worrying for us as it is part of reserved bit.

3. How exactly are we send the control sub commands(eg ChemId(0x0008) through the I2C? Suppose we want to know ChemId, and we are sending the commands in the following way
ChemIDBuffer[3] = {1,0,8}
I2CMasterTransmit (I2CHandle, 0x00, &ChemIDBuffer, 3);
I2CMasterReciev (I2CHandle, 0x00, &DataToRead, 2);
we get wrong value. We get 0x621 which is device ID

Also suprisingly if we change this to
ChemIDBuffer[3] = {8,0}
I2CMasterTransmit (I2CHandle, 0x00, &ChemIDBuffer, 2);
I2CMasterReciev (I2CHandle, 0x00, &DataToRead, 2);
Then we get correct ChemID i.e. 0x1202

4.when we attempted to change the value of design capacity to 150mAh,we were successful for the first time. And after that power cycle,the design capacity value changed to default value.and attempts to change the value using the same code(the one that we used for the first time which gave us correct value) is not working. What is the correct flow diagram for setting the design capacity as we have 2 possibilities
a. In SLUUAD4C.pdf - Page 12 - provides a flow diagram steps and mentions about register 0x43 and 0x44 to update
b. In SLUUAP5A.pdf - Page 8 - shows the flow diagram which says to update the design capacity in 0x4A and 0x4C
Which one is correct.

Please help us to solve these issues.

  • Hello Rahul,

    It is very hard for us to debug code because we do not know how the different drivers are structured. You should compare logic analyzer captures of the commands with the TI toolchain (bqStudio and EV2400) to make sure you are sending the same sequence.


    Wyatt Keller