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.

  • Hello,

    Ok, thanks for the clarification. Yes you are correct 3.9V is not a valid value, but something lower than the 4V you already got previously with 4.2V setting could be checked to confirm the control works as expected. 

    Did you check the VBUS voltage level in this condition?

  • Hi,

    I checked the VBUS voltage in this condition, and it is 5.0 V.

  • Ok, VBUS level sounds good then. So the VBUS voltage itself is not limiting the achieved termination voltage. Just to confirm, the VBUS is at 5V during charging?

    Checking the event registers would reveal if the charger has generated some error what causes the charging to stop.

    Reducing charging current could be also something to try, just to see will it effect the termination voltage.

    Do you have nPM1300-EK to try to replicate the setup?

  • Hi,

    During charging, the VBUS voltage is around 4.9 V, and after charging completes it rises back to 5.0 V.

    I also read the BCHGERRREASON register but did not see any errors reported.

    I tried reducing the charging current to 500 mA, but it didn’t affect the termination voltage.

    When I set the VBUS current limit to the default 10%, the charging stops around 4.13 V.

    So far, charging seems to stop normally without any error indication, but the termination happens earlier than the expected 4.2 V.

    Yes, I do have the nPM1300-EK .

Reply
  • Hi,

    During charging, the VBUS voltage is around 4.9 V, and after charging completes it rises back to 5.0 V.

    I also read the BCHGERRREASON register but did not see any errors reported.

    I tried reducing the charging current to 500 mA, but it didn’t affect the termination voltage.

    When I set the VBUS current limit to the default 10%, the charging stops around 4.13 V.

    So far, charging seems to stop normally without any error indication, but the termination happens earlier than the expected 4.2 V.

    Yes, I do have the nPM1300-EK .

Children
  • Hello, 

    Ok thanks for the information.

    It would be good if you can try to replicate the setup on EK using the same 5V power adapter. Just to make sure there is nothing wrong with the connection or the adapter. Have you measured the 5V adapter output voltage with oscilloscope to see how stable it is? 

  • I have tested  using the nPM1300 EK and configured the charger using the nRF Connect for Desktop –   nPM PowerUP application with the following parameters:

    • Charging current: 800 mA

    • Termination voltage: 4.2 V

    • Trickle/Fast charging threshold: 2.9 V

    • Charging termination: 10% (default)

    I also tested both configurations — with and without a 10 kΩ NTC thermistor .

    The setup was powered using a 5 V adapter. During charging, the VBUS voltage is around 4.9 V, and after charging completes, it stabilizes at 5.0 V. The battery used is a Li-ion (3.7 V nominal, 950 mAh).

    In both cases, the charging still completes around 4.13 V, instead of reaching the expected 4.2 V termination voltage.

  • Hello,

    In nPM PowerUP what does the battery status show? Does it go to constant voltage mode and what is the indicated battery voltage?

    This is with nPM1300-EK and nPM PowerUP with the same settings you mentioned. Once the 4.2V is reached, the charger enters constant voltage mode and the charging current slowly drops from the set 800mA (in this case it has dropped to 550mA).

    Thanks.

  • Hello,

    Here are the screenshots from nPM PowerUP showing the battery status during and after charging with the nPM1300-EK.


    • During charging, the battery voltage gradually rises until it reaches 4.2 V, and the charger enters constant voltage (CV) mode.
    • In CV mode, the charging current slowly decreases from the set 800 mA (in this case, it dropped to around 73 mA) as the battery approaches full charge.

    • Battery charging completed (V = 4.10 V, I = 0 mA, Fuel Gauge = 93.2%)
  • Hello,

    Ok this sounds normal to me. Battery voltage will be lower when charging has ended compared to when you charge it with 73mA (which is roughly the set 10% termination current). The higher the charging current the bigger difference you would see. 

    The fuel gauge accuracy and value depend on the selected battery model and how well it matches with the used battery. 

Related