Microprocessor to battery charger

I'm working on making a microprocessor controlled battery charger. I need the output to be able to go from 0V to ~24VDC at around 5A. I'm wanting to
use a switching regulator for efficiency. The best idea I have come up with so far is to use a D/A (or filtered PWM) for a reference voltage and an op-amp comparitor circuit with hysteresis. The feedback voltage would be scaled down with a voltage divider. If the output voltage was below the reference voltage, the output transistor would turn on, when the output gets above the reference voltage, the transistor is turned off. An inductor and a fast rectifier used in buck mode would be used in the output.
Any better, simpler, cheaper ideas? I have looked at switching regulators and most only go down to ~1.2V and I don't know an easy way to control them from a microprocessor. I have looked at battery charging chips from many companies but they don't even scratch the surface for what I want to be able to do with this programmable multi-chemistry charger, cycler, battery managment and maintenance system.
The end product I'm trying to come up with will charge, discharge, measure capacity, of 1-12 Cells NiCd, NimH, 1-6 cell Lead Acid or gell Cell, 1-4 Cell Li-ion or Li-Poly. It will use memory and a real time clock to determine when the battery packs should be tested or replaced (based on age/number of recharges, etc.). And, it will have at least 4 ports, each independently programmable.
Thanks!
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
RogerN wrote:

That regulators only go down to 1V say is irrelevant - just offset the regulator "ground" from the output "ground" by that amount. The output can then easily be taken to zero.
You could, as you suggest, simply link the microprocessor to a D/A and then use the output of that as the analogue voltage reference for conventional (switching or not) regulators.
Or you could use an A/D to sample the output voltage, feed that to the microprocessor and use that to generate the timing signals for a switching regulator. That allows some pretty devious designs(implemented mostly in software) to achieve things that simply aren't possible using the basically analogue approach. You can use a multi-channel A/D to sense all sorts of parameters and design for them. Controlling any number of independent outputs of different types becomes child's play. You can also have a two stage regulator system - a coarse and fine control if you like - to give you fine control over a very wide range using off the shelf components. Each stage of the regulator copes with a different one of the normally incompatible design constraints.
--
Sue


A few years ago now I designed a 0-127V 0-12A constant
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Hi, Here's an interesting programmable switching-mode current source (0 - 5 amps, 0 - 10 vdc output, 36 vdc supply): http://www.maxim-ic.com/appnotes.cfm/appnote_number/159
It uses a 12 bit input command from your micro and maintains the current at the commanded level. Your micro would just need a/d inputs for battery voltage and battery temp (if you want), 12 digital outputs, interface circuitry for the user interface, etc. There's PIC (Peripheral Interface Controller) microcontroller models that could handle all this with no sweat. PICs are designed for embedded applications that require interfacing to real world analog and digital i/o and they are all amazingly inexpensive.
Here's an example of a PIC based NiCd/NiMh home brewed charger using PWM output from the PIC to control an LM317 regulator (but only 1.5 amp load): http://www.angelfire.com/electronic/hayles/charge1.html
See the schematic (Fig.3): http://www.angelfire.com/electronic/hayles/charge1fig3.html
Maybe this gives you some ideas. There's MANY ways to implement your project. I highly suggest that, hardware considerations aside, you spend LOTS of time researching the intricacies of the recommended charge algorithms for the various battery types and sizes that you're interested in. Battery charging isn't as cut and dried as many ppl think but you probably already know that. Programming the various charge algorithms can be a lot of fun and doesn't really require a huge amount of memory if done properly (I use assembly language but there are basic and c compilers available as well). For your app. I'd use a more sophisticated controller than the one in the example above - you'll need more memory than he did and memory can present some design challenges with a PIC. The good news is, even high-end PICs are pretty cheap considering their capabilities. The one used in the example costs less than $4.00. You can also interface them to LCD displays, keypads, PCs, you name it - just takes a while to learn the interfacing and programming methods - that's all. Of course there's lots of other brands of micro out there but I'd definitely go the microController route over some microProcessor that's not designed for embedded, real world i/o control.
Cheers, Perion
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.