EveryCircuit
Contact
Reviews
Home
jason9
modified 4 years ago

Switching buck converter for driving LED array

5
3
448
04:25:04
The relay serves no IRL purpose and is only there to prevent EC from finding an incorrect steady state solution via DC analysis and starting with that. It serves the same role as starting switches in other circuits with this issue, but in the case of this circuit that doesn’t work either as it says “Cannot find solution” after a couple seconds if you don’t throw the switch quick enough, so a relay does the job nicely by starting open and instantly closing. This circuit was inspired by the LED driver I found in a real lightbulb (see http://everycircuit.com/circuit/5060621189775360 ) but upon close examination of the data sheet for the BP9916E chip I found that it switches on when the inductor stops conducting and switches off when the inductor reaches the current limit so the LED would flash very rapidly. Now, this isn’t really an issue given how fast the circuit operates, but I still liked the idea of having a steady constant current instead of a rapidly flashing imitation of constant current, so I made this circuit. It does operate at a fairly high frequency and probably has some pretty big switching losses as a result (especially if you have some more realistic MOSFET capacitances) but that can be fixed with a bigger inductor, although that has it’s own issues.
published 4 years ago
PrathikP
4 years ago
Why are you using a BJT in the current feedback path instead of directly sensing it like this? https://everycircuit.com/circuit/5009203532660736
jason9
4 years ago
That works too. I suppose my only concern is if the OP-amp doesn’t have rail-to-rail inputs, but given the right choice of OP-amp that shouldn’t be an issue. I was roughly basing this off of the existing LED driver but with the goal of having a more constant current. Since the existing driver had a 600mV threshold I figured a BJT would be convenient and then I just had to set the Schmidt trigger to some simple values in the output range of the BJT (0-15V) so I chose 5V and 10V. Feeding the voltage from the current sense resistor directly to the Schmidt trigger should in theory work just as well, plus it’s more flexible, so that’s probably a better design choice than what I did.
jason9
4 years ago
You also put in a MOSFET driver instead of just letting the resistors do the job like I did which is why mine switches a little slowly, so overall your design is better than mine.

EveryCircuit is an easy to use, highly interactive circuit simulator and schematic capture tool. Real-time circuit simulation, interactivity, and dynamic visualization make it a must have application for professionals and academia. EveryCircuit user community has collaboratively created the largest searchable library of circuit designs. EveryCircuit app runs online in popular browsers and on mobile phones and tablets, enabling you to capture design ideas and learn electronics on the go.

Copyright © 2026 by MuseMaze, Inc.     Terms of use     Privacy policy