Why BQ28Z610 function Current() returns 0 mA

Fixing 0 mA Current Readings
on the BQ28Z610 Device

Custom driver for the BQ28Z610 device was connected directly via I2C. It is possible to obtain non-zero values from functions Voltage(), Temperature() and other. Charging and Discharging are allowed, current flow can be seen on the ammeter, but functions "0x0C/0D Current()" and "0x14/15 AverageCurrent()" always return [0x00, 0x00].

You may try increase actual current up to 1 A.

You may try to call function "12.2.15 AltManufacturerAccess() 0x0021 Gauging" to turn on the gauging of the current.

If nothing else helps, you should check your hardware circuit and test the sense resistor (Rsense). To do this, pass some current through it and measure the voltage across it in millivolt fractions.

For example, Rsence = 2m0 (2 milliohms). So current 1 A will produce 2 mV on it: "1 A * 2 mO = 2 mV".

To exclude the software component of the test, you need to:

  1. Disconnect load and charger.
  2. Take constant current source, at least 1 A, bigger - better.
  3. Take some load. You may use adjustable load to control the current.
  4. Take millivoltmeter, which can show fractions of the millivolt, or just microvoltmeter.
  5. Connect "current source +" and + of the load.
  6. Connect "load -" to the "B-" terminal.
  7. Connect "current source -" to the "P-" terminal (charger/load negative connection).
  8. Read voltage on the sense resistor on the test pins: "TB-" and "TP-" - it should correspond to the current.
  9. Change current and read voltage again - it should be changed as well.
  10. Reverce polarity of the current source - voltage on the Rsence resistor should become negative as well.
BQ28Z610 Rsense Test circuit independent
Test circuit independent

BQ28Z610 Rsense  Test schema independent
Test schema independent

If the voltage is 0, then check your main circuit and try to clean it a little bit and remove any stickers - perhaps during production, sense resistor connections were shorted.

If the voltage is correct then build another test circuit:

  1. Connect the battery to the BAT terminals.
  2. Temporarily short terminals BAT+ and PACK+ to activate the microchip.
  3. Connect the load to the PACK terminals.
  4. Read voltage on the sense resistor - it should correspond to the current.
  5. Change current and read voltage again - it should be changed as well.
Test circuit via BQ28Z610
Test circuit via BQ28Z610

Test schema via BQ28Z610
Test schema via BQ28Z610

If the voltage is 0 this time then the problem is in the microchip, the possibly it's a software issue, maybe it shorts the sense resistor by some configuration - but it was not my case, so I cannot confirm or deny if such a case possible.

Was used microchip BQ28Z610 at the battery pack from "JBL Xtreme 2", with the Device Name from the Data Flash: "ID1019-A-M26-28z610". 

Resources

Як влаштовано електронний годинник "Электроника ТК-01"

Зовнішній вигляд годинника

Електронний годинник (пост-) радянського виробництва "Электроника ТК-01" без блоку живлення, але з трьома дротами для підключення. В цій статті я розкажу як він працює та як до нього правильно подавати живлення.

Электроника ТК-01

Як українською буде ...

Російсько-український словник сталих виразів

І. О. Вирган, М. М. Пилинська
1959

Why BQ28Z610 function Current() returns 0 mA

Fixing 0 mA Current Readings on the BQ28Z610 Device Custom driver for the BQ28Z610 device was connected directly via I2C. It is p...