Buck-Boost coil current limiting

Thread Starter

CoolBeer

Joined Mar 29, 2010
40
So I'm working on a buck-boost supply that will be controlled from an MCU(AVR) as a battery charger(Lead Acid at first to work out the kinks before LiPo, they can be tempremental).

In this regard I'm starting to think about current sensing/limiting, I can easy enough measure the current going into the battery, but avoiding inductor saturation that way is probably somewhat hard.

I am thinking in the direction of putting a sense resistor just after the inductor and using that to cut the PWM short for the the remaining period. This seems to work fine in simulation, it is somewhat complex though and I wonder if I'm really overengineering something here or barking up the wrong tree(as in it may be different methods that are simpler).

The circuit as it stands now in the simulator is a buck-boost stuck in boost mode(the buck switch is constantly on other than when it engages in over current).

The current sense resistor is measured, voltage amplified, compared with the current maximum(REF1), that goes into a latch which latches on until the next pwm pulse, which resets the latch and on we go.

Circuit as it stands now:


-
Kolbjorn
 

crutschow

Joined Mar 14, 2008
34,452
Yes, adding current limiting to a descrete design is somewhat complex. IC SMPC chips usually have current-limit built in as part of the circuitry. That's why ICs are simpler to use for building SMPCs as compared to using discrete parts.
 

djb

Joined May 17, 2008
31
I guess using an arduino would be much easier for custom designs.

Current sense can be done by reading the voltage drop on 1ohm resistor , so you need to read 2 points on the resistor by voltage dividers to get below 5V, so your microcontroller can read. the difference will be the voltage on resistor V=I*R => I=V/R
You will do this with variable in your microcontroller code.
 
Last edited:

pmd34

Joined Feb 22, 2014
527
I guess trying to change something mid pulse is maybe not necessary and could also produce lots of noise spikes and switching problems. The total energy in each pulse is not so great, so can you not simply acknowledge that an over current pulse has occured (force an interrupt in your microcontroller), and then change your PWM timing for the next pulse?
To help reduce component count, and loss in your current sense resistor you could also look at using a current sense amplifier such as an INA180. They are very handy things to have!

One nice "hybrid" way of doing switching regulation is to actually use a standard IC, but "hi-jack" the feed back pin - instead of using it in a conventional way, you can supply it from an external comparator, which compares your output voltage with a reference voltage supplied by your microcontroller (DAC pin or filtered PWM). This way you can vary the voltage and also override things if need be. (Although you have to check the workings of the IC to make sure it is not doing anything more complicated than comparing the feedback voltage!).
 
Top