How would you design a simple switching constant current source - Page 1
Forum section: electronics / beginners

author: Gluon
author_rank: Newbie
timestamp: December 05, 2014, 07:00:10 am
content: I need a current source to supply 10amp to a 0.3ohm load from a 12 volt battery. Obviously the losses in a linear regulator would be huge. Noise and ripple is not important.I have come up with a good way to do it. I figure the best way it with a buck topology? I found the lm5085 which looks like it can be configured to do the job as it has current limiting, else i will have to add a transistor and a few resistors to change current feedback to voltage feedback like is done in the attached circuit (which is only 1A capable)Can anyone give me some hints, what is the best way to go about this? Could anyone suggest me which buck controller to use? I'm looking for simple, robust, few components, with an operating range of 6-30v or better, just means the circuit will be more robust.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: December 05, 2014, 07:33:07 am
content: Eww.. yes it'll be better than a linear regulator, but man will it get hot still...Lemme see... I've drawn a few, like this for example,http://seventransistorlabs.com/Images/LED_Light2.pngbut it's literally just the same thing; the current sense is 0.7V, but that's fine efficiency-wise because it's high voltage (80-100V on the LED strings).I like to do this from time to time,http://seventransistorlabs.com/Images/Discrete_Tube_Supply.pngnamely, saving efficiency by using a higher gain / lower voltage current sense circuit. But this is a flyback supply, so it requires a transformer at least. This of course is a voltage regulated supply, but that could just be strapped to a constant peak current setting instead, and the output will likewise be const... well... independent of supply variations, but not something you'd call constant current. More like constant power. That would be fine for powering LEDs or heater wires, but maybe not whatever you're working with.Oddly, I've drawn a few buck circuits along similar lines as these, but not built or refined them. I never seem to have a need for buck converters...What's the nature of the load? Obviously(?) it's not literally a 0.3 ohm resistor, or it wouldn't matter how you apply power to it (constant voltage or current).Tim

author: Gluon
author_rank: Newbie
timestamp: December 05, 2014, 08:02:30 am
content: I see what you mean. The load is an ignition coil, 4mh 0.3ohm inductor basically. Need the full 12 volts to charge the coil up quick but with a limited current (voltage drops) so the coil burn up. It would draw 500 watts from a 12v battery, so ya i want to limit the power to 100w.Can't use the coil as the inductor. Need somewhat clean power. Don't want to complexity of discrete, but if it was refined it would no doubt work very nice.

author: Gluon
author_rank: Newbie
timestamp: December 05, 2014, 09:05:38 am
content: I think your right a non-synchronous regulator is going to dissipate quite a bit of heat. I like your plan. I will look for other controller ics but all i see have an 800mv threshold.An induction type ignition coil fires when the current is broken. You are thinking about capacitive discharge that sends a pulse to fire the coil. This big coil i have is rated at 100 watts heat dissipation. The only style points coils were 3ohms connected directly to the battery so they dissipate about 50 watts. New electronic ignitions know when to charge to the coil so its ready to fire at the appropriate position, so little or no power is wasted to saturation/resistive losses. I can't do that though, that requires a reluctor wheel and digital control. I have mechanical advance and coil pickups to break a mosfet instead of points. What i am doing is basically making a GM HEI ignition module. That module has a linear regulator in it though.

author: Marco
author_rank: Super Contributor
timestamp: December 05, 2014, 09:08:27 am
content: You can use a generic switching regulator with support for external transistors (MC34063?) but you'll probably need an extra opamp to amplify the shunt voltage since the reference voltage is so high (the MC34063 also has a second reference voltage for Ipk limiting, but it has a pretty big range in the datasheet so not sure how well regulated that is over temperature/etc).LED drivers generally come with much lower reference voltages.

author: Kremmen
author_rank: Super Contributor
timestamp: December 05, 2014, 10:21:07 am
content: Quote from: Gluon on December 05, 2014, 07:00:10 amTake a look at Supertex HV9910B constant current LED driver chip. It will drive an external MOSFET, tolerates supply voltages up to hundreds of volts and has a simple current sensing using a low side resistor. I have applied it with excellent success.http://www.supertex.com/pdf/datasheets/HV9910B.pdf

author: T3sl4co1l
author_rank: Super Contributor
timestamp: December 05, 2014, 12:22:52 pm
content: Quote from: Gluon on December 05, 2014, 08:02:30 amAh, well the usual deal is either capacitive discharge (the coil doesn't take much or any time to charge, and acts both as an inductor storing energy, and a transformer stepping up both the applied pulse and the subsequent flyback), or just straight up dumb resistive current limit (so it stays on for a while, and who cares about power because there's an alternator capable of more than enough amps).The other part of it is, you need to turn it off relatively quickly. Or so I assume. That doesn't affect the power source, but you might as well do both at the same time by simply turning on the switch a milisecond ahead of time or whatever, then switching it off.Is this actually for ignition, or just to make pretty sparks, or..?Tim

author: GK
author_rank: Super Contributor
timestamp: December 05, 2014, 01:27:29 pm
content: This isn't a difficult problem. Use a fixed duration edge-triggered monostable to provide the switching signal for the primary. The fixed monostable time duration is simply set so that the primary current ramps up to the desired maximum value before the forward primary current is switched off and the spark gap fires. The monostable is edge-triggered so that the forward primary current can never be permanently turned on.EDIT: just noticed the above has been suggested already.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: December 06, 2014, 12:25:38 am
content: Quote from: GK on December 05, 2014, 01:27:29 pmYeah, and to be more precise -- you can use a monostable with a duration long enough to guarantee 'full charge' (still using an outboard current limiting resistor, but it's pulsed, not burning DC this time) even at minimum supply voltage. Or you can use a peak current detector, such as the basic UC3842 circuit, so the inductor charges to the same current every time (the downside being, if the supply is too weak to deliver that first gulp of peak current, it will just stay latched on forever). A combination of both would be safest (you can add an R+C to the UC3842 circuit to provide monostable action).Tim

author: Marco
author_rank: Super Contributor
timestamp: December 06, 2014, 07:02:09 am
content: He has no advance warning of when to trigger AFAICS.

author: GK
author_rank: Super Contributor
timestamp: December 06, 2014, 10:37:27 am
content: A fixed pulse width above a specific RPM is the basis of dwell extension and how commercial and OEM electronic ignition modules maintain maximum spark energy at high revs.The old fashioned way was to trigger a monostable when the points close and OR the monostable output with the points signal to make the switching signal for the coil. That way below the RPM at which the dwell time (the duration that the points are closed) is equal to the monostable time the ignition coil primary is switched as standard, but above that RPM the primary "ON" time is determined by the fixed duration of the monostable. This "dwell extension" prevents a decrease in spark energy with increasing RPM as the dwell time would otherwise continue to decrease, preventing the coil primary current reaching its maximum value prior to each "discharge" event.This, however, causes a progressive retardation to the ignition timing above the RPM threshold at which the monostable takes over, as the spark no longer fires the moment the points open, but a short duration after. That may or may not be an issue, depending on a number of variables.A homemade HEI ignition module delivering a triggered and fixed (optimal) primary coil switching duration throughout the entire RPM range could be made to work quite easily. You'd just have to compensate for the timing difference at idle by re-adjusting the dizzy position. Compensations at high RPM can be made by tweaking the mechanical advance. I don't know to what extent the latter would be necessary on a typical OEM engine as I haven't sat down and worked out the numbers (or measured the optimal dwell time for an ignition coil for at least 10 years, let alone remembered what it was).

author: max_torque
author_rank: Super Contributor
timestamp: December 06, 2014, 12:30:41 pm
content: Any good reason you want to re-invent the wheel? There are plenty of off-the-shelf automotive coil drivers with closed loop current limitation / saturation detection / dwell time compensation already available in mass production that bring a level of reliability that you would be hard pressed to match??

author: Babak7
author_rank: Newbie
timestamp: September 03, 2022, 06:19:15 pm
content: Maxim has a chip, which is a buck followed by a current sense, that sets the output voltage of the system in order to have the desired current .The chip is MAX1640/MAX1641I used it to drive my DC drill, after I changed the battery from NI-Cd to Li-ion. The internal resistance of the Li-Ion batteries are much smaller than Ni-Cd. Using the same voltage as Ni-Cd, the Li-Ion causes the Drill to smoke. Therefore, you need to control the current whit out wasting too much energy in the regulator.The datasheet says that the chip is 95% efficient.Of course, you have to choose the correct size transistors and inductor that could handle the current you want.