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.

BQ27421-G1: curious SoC readings

Part Number: BQ27421-G1
Other Parts Discussed in Thread: BQ24040

I'm using the bq27421-G1A in a handheld device to supervise state of charge and state of health aqnd battery voltage of an LiPo Battery.

nominal capacity is 750mAh, maximum Voltage 4.2V

The following design parameters are used:

Design Capacity: 750

Design Energy: 2775

Terminate Voltage: 3500

Taper Rate: 1125

Yesterday I've measured battery voltage and SoC during discharge (average discharge current was approx. 150mA). I've startet at 4.157V / 97% and stopped at 3.716V / 43% yesterday evening. Today I wanted to continue the measurment. The Voltage was still at 3.714V but SoC has fallen to 18% over night (within 16 hours). The standby current of the device is below 1mA.

After discharging downto 3.6V, I've started charging again with 500mA. After 80 minutes the voltage was at 4.19V but SoC only 73% - should be almost 100% at this state.

Any Idea, what causes this curious behaviour?

BR jde

  • I'd need more data to say for sure but here are some possible reasons:

    The gauge determines SOC through discharge simulations. It uses a built-in model of a battery which must be compatible with the actual cell chemistry. The bq27421 is available with several typical cell chemistries that will be more or less accurate for a typical LiIon cell that has the same charging voltage specification as the chemistry.

    When you configure the gauge (SOFT_RESET) or when the gauge detects that the cell voltage is relaxed, it will take a voltage measurement and perform a reverse lookup using the cell model and chemistry data. This will tell the gauge how deep the cell is currently discharged and it uses this as a reference point.

    When you start to discharge, it will first calculate the full charge capacity by running a discharge simulation from the full charge point to terminate voltage using the previous average load (this is a data memory parameter that will automatically adjust over time) at the present temperature and lock this down for the duration of the discharge. It will also run another simulation from the reference point to terminate voltage - this is the remaining capacity. SOC = 100 * remaining capacity / full charge capacity.

    Then it will start coulomb counting and adjusting remaining capacity and therefore SOC. It will run remaining capacity simulations at various times during discharge to make sure it stays within the cell model (not just coulomb count) and it will update the cell impedances during these times (impedance tracking).

    So when your SOC is at 43%, the voltage of 3.716V at this time isn't really a factor for the gauge to determine the 43%. The 43% are due to initial FCC, latest RM simulation and coulomb count since last simulation. If the cell model is correct and if the simulations are correct, the cell voltage may relax to whatever the voltage for this particular depth of discharge for this chemistry may be - it will not affect SOC.

    But in your case it does. And massively so. 43% to 18% with a small current (<16mAh => 100*16/750 = 2%) is extreme. The gauge probably took an OCV measurement as the current is small, the voltage is stable and conditions were right. The new reference point using the built in chemistry lead to a RM simulation result that is vastly lower than the previous simulation + coulomb count.

    This could be due to a very incorrect chemistry, an aged cell that has a lot less capacity than a new one (=the gauge would have to "learn" chemical capacity and impedances to compensate), a big error in initial reference point (=there was a large current present when the configuration was programmed and SOFT_RESET was issued) or a low-quality simulation. It's likely a combination of all of these.

    My suggestions are:

    * check that the bq27421 variant is compatible with your battery

    * make sure that the current is close to zero and the cell is relaxed when you configure the gauge. If that isn't possible, run a full cycle with proper relax so that the gauge can "sync" to the battery

    * run a learning cycle so that the impedance tables and chemical capacity adjust to your cell

    * lower terminate voltage. 3500mV is very high and simulations may not terminate well esp. for larger currents as this shifts the simulation end point to a flat region of the cell voltage curve. Use reserve capacity if you need 0% at higher voltages.

    Also, your Taper Rate seems extremely high (C/112.5 ??). Is this a typo?

  • Thank you, Dominik.
    Here are some more details:
    * The battery is a LiCoO2 cell with 4.2V max. charge with integrated overcurrent, overcharge and overdischarge protection (protection IC S-8261ABJMD-G3JT2x)
    * The battery is new and has 3 or 4 charging cycles up to now
    * The used charging controller is a bq24040
    * The gauge is configured by a microcontroller after in circuit programming during first run. The current consumption during configuration is 50-100mA
    * We used a terminate voltage of 3.1V in some prototypes and had a similar behaviour. I thought that 3.1V is too low as the SoC value dropped very fast between 3.5V and 3.3V, therefore I raised the terminal voltage to 3.5V.
    * Taper Rate is 500 (1125 was the wrong value)
    * The battery is charged with either 100mA or 500mA, depending on the connected USB port
    * The discharge current alters between 50mA and 200mA at 10Hz with 50% duty cycle (50mA for 50ms, 200ms for 50ms, ...)

    We do not pre-charge the battery before delivering the device, so it will be delivered with 3.75V to 3.95V. The learning cycle will be done by the end-user. We just make a charging test for some seconds before delivery. So it must not occur that a fully charged battery is shown on one day and the battery is discharge on the next day (this was the case with the prototypes with 3.1V terminate voltage, SoC dropped from 100% to 12% within one day on one device).
    The SoC is signalized with an LED: green > 40%, yellow 10 to 40% and red <10%

    Which configuration would you suggest under these circumstances?
    Let me know if you need any further information.
  • It looks like there's a combination of non-ideal conditions in your scenario.

    If you use a cell that is in the flat zone of the OCV curve when you configure the gauge, the error can be enormous as a small change in voltage can translate in a huge change in depth of discharge.

    As your current during SOFT_RESET can be between 50mA - 100mA, the gauge won't be able to determine the depth of discharge reliably.
    If this is done in the flat zone, this can swing wildly.

    If there was no learning cycle, the gauge will use chemical capacity = design capacity and scale the impedance values from the built-in chemistry (which was derived from a 4200mV charging voltage LiCoO2 cell with a different capacity). It won't have measured the actual capacity and impedances of your cell but use an estimation.

    I suggest running a learning cycle on one battery and include Qmax and the Ra table in your system's configuration.

    During production, if at all possible, please use a 90% charged cell. Not a cell that is between 20% and 70% when configuring the gauge.
    If that is not possible, and you get these wild SOC swings, the end user needs to run at least one full charge where the gauge detects charge termination before reading gauging results. The massive swings indicate that the reference point was incorrect and it's not possible to establish a good reference point for a 20% to 70% charged cell that isn't relaxed.

    Please also double check the Taper Rate. C/50 for a 750mAh cell is just 15mA. So the taper current is just around 13mA?