I am in need of a way to charge a 3.7V li-ion cell (probably an 18650 type) from a 4.5V - 20V input. That's not a problem, there are plenty of (switching) battery chargers around with that kind of operating range.

However, my difficulty now comes from the second requirement. The widget must be able to operate while charging drawing on average 250mA with 500mA peak load when the motors are operating.

Whilst in principle it sounds like all I need to do is draw current from the battery, this would interfere with the charging process, because the current measured would be different to what the battery is actually drawing. When in the constant-current stage (~90% of the charging process time) the current changing suddenly would alter the charge voltage. This probably wouldn't be too healthy for the battery. It's also likely to interfere with the C/10 cut-off.

What would be the best way to solve this problem?

I thought about using two ICs. One to charge the battery and a buck converter to run the electronics at ~4.5V, but this takes up space, and increases the cost of the widget, so I'd rather do it another way.

  • \$\begingroup\$ Laptops have this same problem. They always end up with some drift in readings because of little amounts of error in how they calculate it. This is why many will discharge the battery and then charge it back up every now and then to get a new calibration. \$\endgroup\$
    – Kellenjb
    Oct 24, 2011 at 18:36

1 Answer 1


I've thought about this requirement recently.

As long as you keep the current from Vin to load partitioned away from the battery current then you should have minimal problems. ie if current went from Vin to battery and then Battery to load, the system needs to do extra work to be able to ignore Iin.

ie battery charge proper needs to be able to deal with net battery current during charging. As long as you make it possible for it to manage battery current during charging all will be well. This way (digram below) the battery-controller does not "see: what the external source is doing.

  • Iin -> Regulator -> Battery -> Battery Controller -> Load x

BUT if in goes to load directly and battery connects to load independently, then all is kept partitioned.

  • Iin -> Regulator -> Load
    Battery - battery controller - Load

In practice this may be as simple as putting the load on the Vcharge side of the battery current sense. Current sense then sees true battery current (in or out) and is "unaware" of actual load current.


If the external supply can operate the widget directly it will run without battery involvement. If not (say 100 mA charge, 300 mA load) then it will draw battery current to make up the difference.

End of constant current phase is tripped when the battery voltage reaches Vmaxchg *=(usually 4.2V/cell). This voltage may be slightly affected by available charge current but not much. [[Note: Charge % during constant current phase is usually rather less than 90%]]. So end of CC phase will not be much affected by widget running.

End of CV (constant voltage) phases occurs when Ichg drps to some % of Imax.
If external supply cannot support widget plus Ichg_current directly then Ichg wll decrease and charging may be terminated. You could either disable charge termination during widget running time or add a fake current value into the termination control circuitry to make it look like Ichg is steady when the widget runs. Easier done than thought of :-).

The subterfuge of adjusting apparent charge rate does no harm as battery will not be charging during these periods (and normal operation assumes when the widegt stops operating.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.