Hello,
I'm having trouble reading accurate voltages and currents for the BQ34Z110. I use the procedure below to read a voltage:
- Calibrate the BQ34Z110 through the bq eval software. (Coulomb counter, voltage, board offset, and pack current)
- Disconnect the BQ34Z110 from the EV2400 (but keeping the battery and load connected) and connect the BQ34Z110 to the I2C master (in my case, an Arduino Mega)
- Read data flash to ensure the boards are connected properly (I read data flash subclass 112 to compare the security data)
- If that all checks out, send 0x0021 to address 0x00/0x01 (0x21 -> 0x00, 0x00 -> 0x01) to enable Impedance Track algorithm
- Then I write 0x08 then 0x09 to the bus, and wait for a little bit.
- Then read 2 bytes form the bus and concatenate/print them to the console.
I consistently print out 12032 mV with no load drawing, when the board and the battery are reading around 12220 mV. With a .5 - 1A current drawing, the print out fluctuates a lot before settling around 200mV offset from the measured board/battery voltages. Same goes for instantaneous and average currents.
When I try to read the current through the bq eval software, it is very accurate. Why is there so much discrepancy between the bq GUI and the I2C interface?