For a single Li-Ion battery cell charging process, one needs to do a CCCV cycle, in which first the li ion cell is charged using a constant current (of rating 1C normally), and when a specified voltage (4.2V) is reached, the battery is charged in a CV constant voltage cycle where the battery of the voltage is kept constant until the charging current falls to a specified value (normally 0.1C).

If i am charging my battery cell using a buck converter (a buck converter taking a PWM input from a micro-controller which is continuously monitoring battery's currnet, voltage and temperature), and i have designed a current controller for my buck converter to charge the battery, i will force some amount of current into the battery cell during the CC cycle by varying the duty cycle of the PWM (the amount of current would be increased and decreased by varying increasing and decreasing the duty cycle of my PWM respectively). When the battery cell Voltage reaches 4.2V, i have to now apply CV cycle to continue the charging process.

My question is regarding this Constant Voltage cycle. And the question is that would i apply the constant voltage cycle the same way i was applying the CC cycle? except now i would consider the battery voltage to be controlled, and against it i would be decreasing my PWM duty cycle in a way that the this voltage remains constant, and as a result of decreasing my PWM cycle my charging current would be continuously decreasing until it reaches a pont where i stop the charging. Am i right ? I mean to ask if the current control method would be enough for both the CC and CV method ? Which means ultimately in the CV cycle also, i would be controlling the current by decreasing it continuously, in such a way that my battery cell voltage doesnt go above 4.2V, am i right about it ?

I hope i made myself clear about my confusion.

Your helpful suggestions would be appreciated.


  • 1
    \$\begingroup\$ Do you have some sort of over-voltage protection? I just imagined your software failing, PWM is still on and the battery explodes (literally). \$\endgroup\$
    – Arsenal
    Oct 8, 2015 at 15:15
  • 1
    \$\begingroup\$ Proposed method is fine as long as you do what you say. See answer below for more comment. As @Arsenal says - be sure your software never allows bad results worsst case. If batteries are valuable a separate hardware emergency overvoltage detector / alarm / shutdown is easy and cheap and may be worth doing. \$\endgroup\$
    – Russell McMahon
    Oct 9, 2015 at 9:00

1 Answer 1


Your method is correct, but your description of the CV part of it is somewhat unusual. CC uses constant I - how you achieve it is essentially irrelevant. CV mode uses constant V, how you achieve it is essentially irrelevant (BUT do NOT exceed V max (usually 4.2V) on the PWM peaks!).

You may implement CV control to maintain a constant voltage by controlling buck PWM duty cycle and you can regard that as controlling current if you wish - as long as the voltage is contant. ie if you wanted yoiu could have decsribed the CC part of the cycle as voltage control with voltage being altered to produce the desired current. That's a potentially [ :-) ] valid viewpoint but ideally you should focus on what your algorithm is doing - not the underlying mechanaism.

So - during CC mode you maintain constant current - the battery :does not care" how you do this. During CV mode you maintain the voltage - the battery again 'does not care' how you do this.

Reducing CC to C/10 (0.1 of CC rate) is reasonably aggressive and will give you a very well charged cell but a substantial reduction in cell cycle-life. If you do not need every last mAh of storage capacity it is better to charge to say C/4 or even C/2 rate. Capacity per cycle reduces by maybe 5% to 10% (maybe less) but cycle life will improve usefully.


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.