I'm planning to power some high power colored LEDs with a buck converter, using a microcontroller to control the switching to maintain a constant current. I'm also considering a simpler, switched capacitor converter.

It seems unlike a step up DC-DC converter, a step down converter has a fail deadly mode of being stuck in the on state. So, what can I do to protect my LEDs in case that happens?

The obvious answer would be a fuse, but is that the best way? What do laptop power supplies do?

Update: My input voltage will be 3.7 - 5V, and will have multiple output voltages: 2.3V for red LEDs, 3.8V for green LEDs, and 3.5V for blue LEDs, and all with a current of 1 amp per LED.


The simple fact is that a failure to short on the power switching element (the usual failure mode of semiconductors) or a failure of the control circuitry can effectively put full input voltage on the load. These are single-point failures and will probably result in destruction of the load.

You could use an electronic overcurrent/overvoltage controller such as the LTC4361:

enter image description here

This chip isn't particularly cheap (about $3.50), but it will work with either a P-channel or N-channel MOSFET (internal boost for the N-channel, obviously). It can provide overvoltage protection up to 85V and overcurrent protection limited by the MOSFET. The sense resistor drops only 50mV so it's pretty low-loss.

This kind of circuit works by breaking the connection between power supply and expensive load.

The other (perhaps more) popular approach is to use a fuse (or polyfuse) and a crowbar circuit to short the output so the load (LEDs in your case) are not damaged while the fuse has enough I^2T to do its thing and open up the circuit. An SCR is often used as the crowbar power switching element.

  • \$\begingroup\$ "[use] a polyfuse" - I've never heard of these, but yeah, it seems to be the simplest and safest solution. My power supply is an ATX power supply with the under voltage/over current protection removed (so I can drive RC car motors without tripping), so I don't think a crowbar circuit is going to win against that. \$\endgroup\$ – Yale Zhang Jun 11 '14 at 8:38
  • \$\begingroup\$ @YaleZhang With a crowbar, the fuse has to open under the maximum fault current, and polyfuses are not known for having high interrupting capacity. \$\endgroup\$ – Spehro Pefhany Jun 11 '14 at 10:58

I've seen a couple options that aren't mentioned here.

1) Resettable fuses. Like an automatically-resetting circuit breaker. I don't have much design experience with these, but if you can spec one correctly they may address your problem for LEDs. Be sure you learn enough to know how to spec them correctly, though. The response time may be insufficient to protect your LEDs.

2) SEPIC converter instead of buck. It requires more parts, but if the switch shorts, the path to the load is open. More failsafe. There are other topologies as well.


Two things:

1) You should never use digital control for a dc/dc controller (i.e. using a microcontroller's PWM and ADC in a control loop)

2) DC/DC converters are generally inherently so safe that it is not worth the time, effort and parts to add failsafe protection

To part 1: a dc/dc converter can be proven to be stable over a sense and duty cycle range when dealing with (close to) analytical control loops, e.g. linear feedback, opamps, passive compensation networks feeding into a PWM generator. You can say it's stable because it has a definite frequency response: bode diagram, nyquist diagram. With purely digital control you lose this kind of behaviour, because you need to implement it into software. To make a purely digital dc/dc controller you need to:

  • Sense the feedback voltage (e.g. for LEDs: voltage over a current sense resistor)
  • Combine this with information about earlier states and do some matrix multiplication to simulate a digital compensation filter -> this is now the output of your 'digital error amplifier'
  • Feed this into the PWM generator and make sure it changes periods glitch-free

The amount of time it takes a reasonable-cost microcontroller to process this information - heck, even the time to do one SAR ADC cycle - severely limits the bandwidth and propagation delay of this kind of a control loop. For example, on an Atmel XMEGA with 2MSPS ADC, you would have a propagation delay of 3.5µs for the ADC (7 ADC cycles) and you would need to do at least n^2 multiplications for an n-element filter, with 4 elements being the absolute minimum to be able to implement a decent filter. Multiplications take 2 CPU cycles, so at 32MHz that's about 1µs calculation time. 4.5µs propagation delay means your minimum duty cycle times frequency should be more than about 5-10x the propagation delay to minimize phase effects. i.e. 23-45µs. Even if you were certain that your converter would always be running at optimal duty cycle for this control scheme (~50%), you would still be limited to about 10kHz PWM frequency. And this all is the absolute best case for such an application.

You will need a proper control loop and for any kind of decent switching regulator that will need to have an GBW of a couple of MHz, propagation delays of no more than a few ns (which can often be compensated with feedforward capacitors if you're really eager). This is not attainable with a purely digital design, and I would advise against even trying to do this with a microcontroller. DSPs and FPGAs can be used, as well as a few microcontrollers with built-in power management peripherals. For your application, I would advise to use an integrated buck LED driver or a linear LED driver. Switched capacitor is not going to work here - it will have worse flicker performance and worse efficiency than linear.

Now to part 2: If designed correctly (which usually just means: you read the datasheet thoroughly), the chance of failure of a buck converter under normal operating conditions is slim to none. The control loops are generally well-compensated and tightly coupled so there is no chance of any event (pulses, EMI, etc.) causing an overcurrent event.

However, the keyword here is 'under normal operating conditions'. The best way to shield yourself against problems is to make sure you maintain these conditions. Use a reverse bias diode and (resettable) fuse to protect against accidental reverse connections, use an MOV or TVS and bulk input capacitor to protect against insertion voltage spikes caused by the inductance of the power wires. Use differential and common mode LC filters to decouple the board from excessive noise on the power line. Depending on how hazardous your particular power source is you may choose to leave out all or part of these protections. Using them all is complete belt&braces; not necessary for 99.9% of applications but if you're feeling exceptionally paranoid feel free to put them all in.

  • \$\begingroup\$ It sounds like you're asking a noob to design a Porsche. I've got lot's of microcontroller experience, but barely any knowledge about control loops. I'm just trying to make something simple that works, but thanks for letting me know the optimal methods. Comments: \$\endgroup\$ – Yale Zhang Jun 10 '14 at 11:36
  • \$\begingroup\$ 1. Why would I want MHz of bandwidth? - both the output and input are 0 Hz! I think that's only desirable if you want extremely low voltage ripple while at the same time, using the smallest capacitor and inductor. I'm not sure how important voltage ripple is for LED lighting. I know 0.1V can mean a 200mA difference, but an average current of 1.0A is good enough as long as there's no flicker. And also, I can use a 1000uF filter capacitor without issue. Or maybe even 10k uF. Sorry, if this brute force design makes you cringe. Also, most high end PC power supplies use digital control. \$\endgroup\$ – Yale Zhang Jun 10 '14 at 11:36
  • \$\begingroup\$ 2. How could a switched capacitor be less efficient than a linear regulator? Is it because of high ESR? But the hardware would be so simple: 1 capacitor, 1 MOSFET, 1 uController. And I can vary my output voltage, unlike most fixed voltage (relative to input) charge pumps, thanks to feedback. I'm sorry if I disappoint you more, but the uController I'm planning to use is an LPC810M, which doesn't even have an ADC, but an analog comparator. I can set the voltage reference to any 1/32 fraction of the supply voltage. So the comparison will be pretty crude. It can do multiplies in 1 cycle though. \$\endgroup\$ – Yale Zhang Jun 10 '14 at 11:37
  • 4
    \$\begingroup\$ I call BS on your "part 1". I don't know where this is coming from, but it's all based on false premises and faulty logic. First of all, even a converter driven with a fixed duty cycle will be "stable", it just won't regulate with respect to input voltage changes. The whole point of the control loop is to provide the regulation with respect to input voltage and output current changes. In this particular case, LEDs are not dynamic loads, so we're mainly concerned about input voltage. It's actually quite easy to do this with pretty much any microcontroller. \$\endgroup\$ – Dave Tweed Jun 10 '14 at 11:38
  • 1
    \$\begingroup\$ @DaveTweed Seconded. Digitally controlled power is not a theoretical impossibility, it's effectively implemented already in hundreds of thousands (if not millions) of units already out there in the world, and can be easily implemented with a micro with good ADC and PWM resolutions. Furthermore, reasonable protection against a single-point failure for a step-down converter should be part of any rational design (just ask those people who do safety certifications for a living) and a series-pass element short is certainly a valid test condition. \$\endgroup\$ – Adam Lawrence Jun 10 '14 at 13:27

Wait, wait, wait.

Are you, as it seems, going to produce a set of voltages which you will then apply directly to the LEDs? Even without converter failures, this is great way to destroy LEDs.

I ask this because the voltages which you specify are standard LED voltages with no provision for current limiting.

If this is true, you need to look into current sources, not voltage converters.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.