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.

BQ76930: Offset to the current reading

Part Number: BQ76930


Hi everyone,

I have a very interesting issue with bq76930. If the part is configured using the bq769X0 Evaluation Software the current offset is very close to zero, in fact there is no substantial error reading the current, protection levels and coulomb counter. However, in our MCU code, when configuring the AFE we use write/read sequence to be sure the correct configuration data is stored. However, this cases a constant offset in the current reading, affecting the accuracy of the coulomb counter and the protection thresholds. The voltage reading is not affected, just the current. The problem is happening like this:

1. Write into the PROTECT3 register (in our case 0x00).

2. Read the PROTECT3 register to confirm the data is stored correctly - result is the correct value is stored

3. Check the current offset - it is not zero, in fact it is quite a large voltage, equivalent to 1-1.2A. It is also different for different devices, could be positive or negative.

4. If item 2 is not executed in our code, the undesired offset is not present, everything is as it should be.

The interesting bit is that the offset is always present and it is the same for the same device if steps 1 and 2 are executed, no matter how many times. If I move the chip to another board, the offset reading stays with the chip, which means it is caused by internal bug, not external conditions. But why is it different for the different chips? We really want to keep our approach, checking that the write data is correctly stored, but it currently causes the problem with this artificial offset and it is frustrating.

Looking forward to your contributions and ideas.

Best regards

Peter Marinov

  • Hi Peter,
    The default value of the CC_CFG register 0x0B is 00, but should be set to 0x19 for best performance including offset. The Evaluation software does this for you. You will need to set register 0x0B with your MCU code or you will see an offset.
    Writing or reading from PROTECT3 does not affect the CC, if you are seeing that you may want to inspect the bus transactions and/or resulting register settings after the write to be sure 0x0B is still at 0x19.
  • Hi WM5295,

    Thank you for your suggestion, but this is exactly what we are doing. The only difference between our FW and the Eval SW is that we are reading afterwards the register and the SW does not. The bizarre thing is that you correctly suggested the PROTECT3 register should not affect the CC, but reading from it does. We spent three days until we confirmed the issue, thinking all the time it was a HW problem, but it is probably a weird bug in the AFE architecture, hence my post here if anybody else has witnessed it or it has been recorded by TI.
  • Hi Peter,
    I don't know if anyone else has seen it. It is not a known phenomena, I can't reproduce it. You can read PROTECT3 with the evaluation software.
    If you have parts which you believe are abnormal, send a few of the worst case examples back through he supply chain for analysis. Be sure to send complete description of the register values before and after with the description of the observation.