Battery Stops Charging at 4.0 V (Expected 4.2 V Termination, 20% Termination Current)

Hello Nordic team,

I’m using the Mikroe nPM1300 PMIC Click Board (based on the Nordic nPM1300 PMIC) with an ESP32 over I²C to charge a Li-ion battery.

Setup details:

  • Battery: 3.7 V nominal, 950 mAh Li-ion

  • Configured charge current: 800 mA

  • Termination voltage: 4.20 V

  • Termination current: 20% of charge current (~160 mA)

  • VBUS current limit: 1500 mA (set manually via I²C)

  • NTC monitoring: Disabled

  • Power source: 5 V adapter connected to VBUS

Issue:
The battery stops charging around 4.0 V, even though the termination voltage is set to 4.2 V. Once the battery voltage reaches ~4.0 V, the charging current drops close to zero, and charging does not continue to 4.2 V.

Questions:

  1. Could any internal safety or thermal mechanism cause early termination near 4.0 V?

  2. Does disabling NTC monitoring affect charging accuracy or limit the termination voltage?

  3. Are there specific status bits or event registers I can read to determine why charging stops early?

  4. Could voltage drops on VBUS or board-level limitation cause this behavior?

  5. Are there additional parameters (such as recharge threshold or termination comparator accuracy) that could affect this?

Any guidance on ensuring proper full-charge behavior up to 4.2 V would be appreciated.

Thank you,

Parents
  • Hello,

    When the charging stops, does it go to 0mA immediately or just slowly go down? Charging will slow down anyway when the VTERM is reached and charger goes to constant voltage mode. How is the VBAT measured in your case? With the ADC or with some measurement equipment? How about the charging current? If you have current meter in series with the battery there is also some voltage drop across the meter itself that has to be considered as well.

    1. I cannot think limit that could affect this

    2. No, it will just effect the thermal regulation and JEITA temperature ranges for charging current. 

    3. You can check errors for the charger in the CHARGERERRREASON register. You can check EVENTSBCHARGER1SET register for the charger status events. There are also other event registers you could check, but these are the first ones to check. Note the event registers are latched and you need to clear them if you want to see does it trigger again.

    4. Yes it can be that VBUS is too low, good to check that in this condition. VBUS must be at least 150mV higher than VBAT to be able to charge.

    5. Termination voltage has 1% tolerance, so this is not caused by 1% difference. And for the recharge to activate the battery would first be charged to full anyway.

    You could try to set the termination voltage to 3.9V for example to see does it then stop at 3.9V. This is to see is the control for the BCHGVTERM correct and is there something else in the system limiting the voltage (for example VBUS voltage).

  • Hello,
    Thanks for the troubleshooting hints.

    1. Charging current when it stops
      →Charging Current Stops when It goes to 0 mA immediately (i.e., the charger reports 0 mA once charging finishes).

    2. How VBAT is measured
      VBAT is measured using the ADC.

    3. Termination voltage testing / BCHGVTERM
      → I wanted to try setting termination to 3.9 V to test whether the charger would stop at 3.9 V, but the BCHGVTERM register options in the datasheet don’t allow 3.9 V. I set BCHGVTERM to 4.00 V instead, and charging stops at 4.00 V — so the regulator is following the BCHGVTERM setting as expected.

Reply
  • Hello,
    Thanks for the troubleshooting hints.

    1. Charging current when it stops
      →Charging Current Stops when It goes to 0 mA immediately (i.e., the charger reports 0 mA once charging finishes).

    2. How VBAT is measured
      VBAT is measured using the ADC.

    3. Termination voltage testing / BCHGVTERM
      → I wanted to try setting termination to 3.9 V to test whether the charger would stop at 3.9 V, but the BCHGVTERM register options in the datasheet don’t allow 3.9 V. I set BCHGVTERM to 4.00 V instead, and charging stops at 4.00 V — so the regulator is following the BCHGVTERM setting as expected.

Children
Related