EEVblog Electronics Community Forum

Electronics => Projects, Designs, and Technical Stuff => Topic started by: DarkPrince on September 05, 2013, 04:44:13 pm

Title: [DESIGN] NiMh charging IC (Buck or Linear)
Post by: DarkPrince on September 05, 2013, 04:44:13 pm
Hello everyone,

So I am not sure if my classes are consuming the majority of my energy or I am truly stumped on this one but I have a question in regards to circuits to regulate power into an NiMh battery pack.

Objective:
Embed a charge controller into a design I am implementing. The pack configuration is 4S1P and I hope to charge it at around 1 amp (nothing crazy yet not too slow). Charge termination is a bit objective... timeout is necessary for safety, but also would like T, dT/dt, and maybe dV/dt charge termination. I prefer an input voltage of 12v nominal allowing most standard 12v SMPS packs.

Progression:
I have roamed around Digikey for a while for some charge controllers for these batteries and have found some interesting characteristics but not completely satisfied with any of them yet. A lot of them have V-plato/T termination. From my reading dT/dt is good to have additionally especially when fast charging. Still digging through various places for an ideal candidate but hope some have a "good word" for some devices.

Linear wouldn't quite work if I do on-board charging. The design is mobile and size is important. Although not completely issued I am trying to avoid any heatsinks.

For switch-mode designs it'd probably have to be buck but run in CC mode. Granted SMPS' are current-based systems by nature many ICs don't focus on this. Some don't even have current feedback. I have looked at some PWM controllers but nothing yet to catch my eye. Microchip has a few app. notes I still need to look at about their dedicated PWM ICs.

I am currently investigating using the microcontroller from the project as the charge controller. I've already selected some pins for V, I, and T sense. Only the final issue is that I don't have a negative rail so the design either has to: A) not use op-amps, B) use rail-to-rail and accept the error due to no true rail-to-rail operation. I have a setup which works rather well for some configurations (Rshunt = 1Ohm, Iout = 200mA) where the shunt has enough voltage drop to detect well (internal 1.1V reference in the MCU). So far I've attempted to bump this up to 1A but the feedback loop is oscillating (what do you expect from a breadboard?). Also the 1-ohm resistor would be dissipating 1W of heat at 1A... possible if I couple it to the ground-plane enough but don't want to get much higher than that.

Microcontroller: ATmega168 (can change)
* still need to experiment with embedded comparator for peak-current sensing, but not sure yet of the application.

Question(s):
I know this is quite the open-ended question but I been digging for a while. Although I am not done with the MCU-based SMPS I still wanted to post this in hopes to get some other's engineering feedback. Do you guys have a suggestion on an approach I haven't thought of yet? Should I continue on my journey? Maybe i'll make a prototype PCB for the MCU based SMPS with proper high-current paths and see if it is stable.

Very last course of action is to just make the charger off-board but how the project is, convience would be appreciated (plug in and forget until morning).

Random note, the project consists of an compass IC (LSM303), and 12 PWM outptus (soft) driving tiny motors.
Title: Re: [DESIGN] NiMh charging IC (Buck or Linear)
Post by: ConKbot on September 05, 2013, 04:59:01 pm
Just a quick note on charge current, either trickle charge (C/10 for beefy nicds and beefy nimh, or C/20 for high capacity, more frail nimh cells)  or go for at least C/2 when you're charging the cell to make sure you get a well defined peak for your termination.  Charging at C/2 is a lot nicer to your cells then missing a termination at C/4 and baking the cells until the temperature limit kicks in ;) 

IIRC dT/dt is the 'best' as its the change in temp which causes the dV for dV/dt
Title: Re: [DESIGN] NiMh charging IC (Buck or Linear)
Post by: DarkPrince on September 05, 2013, 07:42:30 pm
Just a quick note on charge current, either trickle charge (C/10 for beefy nicds and beefy nimh, or C/20 for high capacity, more frail nimh cells)  or go for at least C/2 when you're charging the cell to make sure you get a well defined peak for your termination.  Charging at C/2 is a lot nicer to your cells then missing a termination at C/4 and baking the cells until the temperature limit kicks in ;) 

IIRC dT/dt is the 'best' as its the change in temp which causes the dV for dV/dt

You stated exactly what's on my mind but I didn't contextualize it. Official (marked) capacity of the batteries are 2.1 Amp*Hours thus my desired charge current of 1 amp, giving nearly C/2. In regards to the dV/dt, yes and not only does the charge rate matter (induced heating causing voltage drop), NiMh doesn't suffer from the voltage drop nearly as much as NiCd. These two aspects give me the desire to focus on properly operating dT/dt termination. Though I'd want as many as possible termination methods operational.

Looking for a robust IC which handles a lot of this seems minimal. Seems a lot of charge controllers do one maybe two detection methods. Though I had looked at the BQ2003 from TI which is a switch-mode NiCd/NiMh charge controller. A fantastic one at that, which I would not be surprised if it's internal clock operated some sort of microcode executor. One, the price tag of $6 seems daunting. Two is, they state the controller can handle up to a 4-cell series pack yet specify the maximum input voltage as 5.5 volts. That'd leave 1.375 volts / cell which is premature of a full cell. I don't get that. Also the datasheet has a lot to be desired (is this due to it being from Benchmarq Products branch of TI?).

I'll keep dabbling with the MCU approach this weekend. Maybe I'll experiment with the idea of switching to an MCU with an internal gain on the ADC... yet I doubt these are magic and have perfect rail-to-rail characteristics either. I should dig that up in the datasheet.