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.

BQ28Z610: Current() reading is always zero (0ma)

Part Number: BQ28Z610

Could anyone explain why Current() is always 0ma?

I connect to the chip directly via I2C, I can read Voltage(), Temperature() and other data. Charging and Discharging are allowed, I can see current flow on the ammeter, but "0x0C/0D Current()" and "0x14/15 AverageCurrent()" always return [0x00, 0x00]. I just don't understand what's wrong, what should I check or setup.

  • I tried load and charging current till 5 A.

  • I also tried to send "12.2.15 AltManufacturerAccess() 0x0021 Gauging".

  • Finally I solved it, therefore I leave here my steps.

    Spoiler: I'm not sure if it was a program issue.

    First of all, if you have "Current() = 0" then you should check your sense resistor (Rsense). To do it - pass some current through it and read the voltage on it in millivolt fractions.

    In my case Rsence = 2m0 (2 milliohms). So current 1 A will produce 2mV on it: "1 A * 2 mO = 2 mV".

    To avoid damaging the electronics while testing, 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 +" to the + of the load.
    6. Connect "load -" to "pack -" (charger/load negative connection).
    7. Connect "current source -" to "bat-".
    8. Read voltage on the sense resistor - it should correspond to the current.
    9. Change current and read voltage again - it should be changed as well.

    If the voltage is 0, then check your main circuit and try to clean it a little bit - perhaps during production, 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.

    If the voltage is 0 this time then the problem is in the microchip, the possibly it's a software issue - but it was not my case.

    So, as I said, I don't know if it was software issue or maybe helps that I scratched and cleaned the circuit a little bit.

    Now, both functions "Current()" and "AverageCurrent()" returns correct non-zero values.

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

  • Hi Brandon,

    We are glad you got it working, thank you for sharing your process!

    Regards,

    Anthony Baldino