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