I have a first draft design for a self-oscillating switching current regulator. It appears to work in simulation, but I would like to know if there are any concerns about this design that might show up in reality that are not immediately apparent in simulation.

First a bit of background.

I am creating a light display using 10, 50W RGB COB lights. The COB lights are common anode, and while each color is limited to 700 mA current, the voltage drops differ from color to color.

My initial thought was to use a current limiting circuit for each cathode, something like so:


simulate this circuit – Schematic created using CircuitLab

Note that CircuitLab models of the LEDs and of the Darlington transistor (TIP122) are, in my humble opinion, not very accurate. Nor will my real circuit use the TIP122 (but it will use a Darlington with base to emitter resistors) nor will it use the type or number of LEDs shown in the schematic. The schematic is meant for approximation purposes only.

Because the voltage drops across the three colors are different, and the anodes are common, the voltage drops across the current limiting circuits will vary by about 6 volts. While power is freely available for the circuit, heat removal is a concern. So it occurred to me to use switching to reduce heat generation.

I made the following re-arrangements to the standard buck converter topology so that I could use it for my common anode loads:


simulate this circuit

I have omitted the traditional output capacitor from my converter circuit, because it appears to be unnecessary for driving an LED. The V-I characteristics of an LED seem to "hold up" the output voltage appropriately.

At this stage I began a search for an appropriate DC-DC converter IC. Note the low side switching, similar to a boost converter. Since I would like the output to be specified current rather than a specified voltage, it occurred to me to use a current control loop converter, with the voltage control loop "disabled", perhaps by supplying the feedback pin with a fixed voltage, if that would work. (I may ask whether that will work in a separate question. However, here I am concerned with a different solution. It occurred to me that if I used a foldback current limiter, the interaction between the foldback and the inductor may cause oscillations. A bit of "experimentation" using a simulator, resulted in the following circuit, which simulates as a self-oscillating switching current regulator.


simulate this circuit

enter image description here enter image description here

My question is this. Although my circuit simulates as a self-oscillating switching current limiter, are there particular "gotchas" to look out for that don't readily show themselves in simulation of this sort of circuit, but which do show themselves in practice?

  • \$\begingroup\$ But the switching still doesn't solve the balancing of the two strings of LEDs. (Probably I misunderstood something) \$\endgroup\$
    – tobalt
    Apr 16, 2023 at 15:28
  • \$\begingroup\$ @tobalt I think the intent is to represent the COB module, which may have series-parallel arrangement but either uses matched dies, or enough of them that you don't care at nominal current (they may be unbalanced at low current, but that's also not a thermal runaway concern). \$\endgroup\$ Apr 16, 2023 at 15:37
  • \$\begingroup\$ @tobalt Yes, Tim Williams is right. The array of LEDs in the schematic represents only 1 anode/cathode pair in the COB light. I needed to use a parallel string in the schematic to get the current to where I wanted, but that is just to make the simulation work. There will be one "circuit" for each cathode. 3 per RGB COB light. \$\endgroup\$ Apr 16, 2023 at 16:09
  • \$\begingroup\$ If you use a more powerful and model-orientated simulator you might get a clearer result that's more reliable. I don't mean spend any money of course; just use micro-cap or ltspice. \$\endgroup\$
    – Andy aka
    Apr 16, 2023 at 17:31

1 Answer 1


Some general thoughts:

  • You're making a foldback current limiter (negative output resistance), with a reactive load which therefore oscillates; the saturation and clamp diode then furnish square(ish) load voltage, and triangular current, as is desired.

  • Note it only oscillates at such amplitude and frequency as the load impedance dictates. This may be a bad sign: say in case of load short circuit, it goes linear and cooks off.

  • Suppose the static curves are as below:

    foldback current limit output characteristic

    For case (a) or (b), as long as the load resistance (so, inductor Q more or less?) is higher than the negative resistance (magnitude), their parallel combination will still be negative and oscillation will grow; but some quiescent current will be drawn while V is near zero (V is load voltage). In other words, it doesn't switch off, it keeps "simmering"; even though the output waveforms may appear nice and square.

    For case (c), it reaches cutoff, but: since current is zero there, there's nothing to start it up in the first place, and it can stay latched off. Now, with LEDs, R5's current draw will certainly be enough to drop a modest fraction of Vf, and the V-axis intercept can simply be placed below that voltage for it to start. But notice this depends on supply and load voltages, so it may not work well over a wide range -- say for a dimmable or 90-250VAC design.

  • Speaking of dimming, if adjustment is ever desired, note it can't be forced into DCM; actually, I suppose it's forced BCM, give or take exceptions. (Your waveforms appear to be in the (a) to (b) regime, which is again effectively BCM but we're forcing extra idle current through it, making it sort of a faked CCM I guess? Heh.)

  • The low-side current sense, of course doesn't equal load current. How much these differ, varies with voltage ratio and current setpoint (particularly if we can move between DCM and CCM). If supply and load voltages are consistent, taking this as a fixed ratio can be reasonable enough, but again, it depends.

  • It might be nice to have frequency constrained to a narrower bound (for EMI purposes?), or thermal protection, or OV or UV or other tweaks.

  • Speaking of frequency, the TIP122 Darlington isn't doing you any favors on switching speed. (I imagine its choice was just a starting point, and indeed, we can refine things quite a bit from there!). R5 can be "boosted" with some parallel capacitance, and the Darlington can be decomposed into its parts and tweaked for faster operation (especially turn-off; a complementary emitter follower, into an R||C base drive network, would do nicely I think). You probably want to target somewhere in the 100s kHz to get component cost (inductors and capacitors) reasonably low, and maybe board area as well.

  • A MOSFET may be desirable for efficiency, of course the additional drive voltage usually requires another transistor or two. And Rds(on) < R3 isn't doing very much, so a current sense amp (see below) might start to get very attractive.

  • On a different note, discrete designs do have one advantage: more or less due to the small number of transistors, loop gain (or gain-bandwidth, and in a more general nonlinear sort of sense) is rather low; node capacitances may also be relatively high (you can't buy arbitrarily small transistors; especially MOSFETs don't go very small). This tends to limit harmonic generation, so that you might not have much beyond even 20MHz, let alone 200 (and 2N3904's fT is only around 300MHz). (Counterpoint: if you're doing work at line voltages, modern SJ MOS can be so fast they generate harmonics in the 300MHz range anyway(!).)

Might as well share some of my old discrete designs for additional ideas, or motivation:

Discrete HV converter

Discrete deadbug voltage multiplier

Source: my website, https://www.seventransistorlabs.com/Images/Deadbug_Sch.png

This uses a tapped boost inductor and voltage doubler to obtain a significant boost ratio (10x here) at low current. The low power level makes jellybean transistors practical (hence the 2N4401 for output). Operation is in fact active current limited, not hard saturating, due to the charge pump nature of the doubler; IIRC, the '4401 normally saturates to a couple volts, depending on voltage setting of course. It still remains latched on for the duration of the on-pulse. (Cute symmetry, this is kind of the inverse of the OP example which remains conducting during the off-pulse.) As with the OP example, feedback and therefore timing is drawn from the output ('4401 collector), in this case by capacitive divider. The 1n + 100pF also double as timing capacitance, where after an on-pulse, the circuit remains off until the '3906 is biased on. Thus the TL431, via the current sourcing '3904 + 47k (okay yeah, you can tell these circuits are old, I didn't put designators on 'em.. sorry about that), varies frequency to regulate output voltage.

Since feedback is taken from the output, operation depends on supply and load voltage; the output (flyback) voltage, after the capacitor divider, must not exceed E-B breakdown, otherwise the '3906 recharges itself during the off-pulse and the circuit runs at full throttle(!!).

Discrete Tube Supply

Discrete vacuum tube power supply

Source: my website, https://www.seventransistorlabs.com/Images/Discrete_Tube_Supply.png

This is a more elaborated version of the above, where the left-side transistors form a mono/astable multivibrator. The top-left PNP, with mid-left NPN, form the frequency-modulated control as in the earlier one; but here, positive feedback is closed on an auxiliary inverter (bottom-left NPN), triggered by the gate drive signal -- behavior is therefore independent from the load. The center-bottom NPN provides the traditional current sense turn-off function, but the PNP diff pair reduces threshold voltage (~100mV is needed, instead of Vbe), and increases gain (and therefore speed!). The threshold is also adjustable, so this circuit varies not just frequency but peak current as well, with respect to the control voltage (from TL431).

Note that this circuit is quite unstable, in the sense of ability to break into oscillation. I think the most marginal condition would be, if the control voltage is such that the top-left PNP is just barely biased into conduction, putting more than Vgs(th) on the 4.7k pulldown and therefore cooking the MOSFET, while not running at enough dV/dt to generate feedback through the 33pF, or 220 and 470pF, capacitor paths. It would be a narrow condition; just a little bit more and the MOSFET draws peak current, activating the diff pair and closing the 33pF positive feedback path, kicking it into oscillation.

Diversion: stable instability

Ideally we would have static stability (so the operating point always returns to a linear condition with high loop gain) and dynamic instability (so the operating point, plus internal noise, always kicks into a stable limit cycle). The simplest example being the op-amp multivibrator (with resistors wired for DC positive feedback, and an RC wired for delayed negative feedback): the inputs are guaranteed to cross polarities, and thus the output amplifies the difference -- and flips state cleanly and repetitively.

Or consider the two-transistor multivibrator:

multivibrator, from https://electronics.stackexchange.com/questions/417017/what-is-the-purpose-of-higher-resistance-resistors-in-astable-multivibrator-circ

Notice it's not just a chain of two RTL inverters linked by coupling capacitors; but it has a linear condition where both transistors are partially on and amplifying, and thus the system is unstable and oscillates. (This is already a partial lie, actually: both transistors can be hard saturated, and loop gain drops massively. Biasing them lightly (R2 and R3 relatively large) helps with this.)

As circuits get more developed, like these, it can be hard to preserve this amplifying characteristic, and proving reliable operation becomes difficult.

All of which is to say -- I'm not sure that this circuit meets such a condition, fully; but it's at least unstable enough that it should be very difficult to move it into a stationary state.

On the more philosophical side, it's tempting to approach these sorts of circuits like a state machine: turn on transistor, start a timer; timer ends, go to next state, turn off, start a timer... But with so few transistors, we lack the gain and phase shift, or discrete states (flip-flops proper) to ensure truly digital behavior.

It's somewhat easier, I think -- in terms of creating a reliable design -- to make something that's more of an amplifier loop, plus positive feedback to force it to oscillate. We can add many layers of dynamics onto that -- ultimately we're making a chaotic (dynamic, bounded, nonlinear) system, and it may be better to approach it from this side first, and then tweak it to make functions like variable on/off pulse widths and input voltage and setpoint ranges and etc., while preserving that unstable oscillating core aspect.

Diversion over!

There is one omission in this version of the schematic, versus the as-built version, I think; instead of the 680k feedback resistor from the HV side, there should be joint regulation from both outputs. This is just because the intended (tube preamplifier) load has considerable load on the 6V output, and none on +100, during startup.

I actually have one instance of this circuit in regular use; it's been stable and reliable for the most part. Efficiency is alright. The main quirk is, depending on supply voltage (especially at the margins of its operating range), there can be weird (chaotic) limit cycles, leading to anomalous output ripple.

With respect to present context, this may be more transistors than you'd be willing to put into a discrete control, or at least past the point where you'd prefer an IC like HV9910 instead.

Discrete LED power supply

Discrete LED power supply

Source: my website, https://www.seventransistorlabs.com/Images/LED_Light2.png

This one uses a transformer, so maybe you'd already be loathe to follow such a scheme. It does have several advantages, referring to points raised earlier:

  • Continuous load current regulation
  • Relative independence from supply voltage variation
  • Good efficiency

Basic operation is again a frequency-variable multivibrator, with tweaks to reduce startup current (notice the 100k resistor into the "aux" supply (47uF and etc.), with aux winding on the buck inductor (with current limiting capacitor) and clamp zener. The 5.1V zener, and top-left emitter follower, are used to reduce current draw.

The left NPN/PNP pair can also be seen as a complementary diff pair, an unusual motif. Whereas the (same type) diff pair steers a current, this acts to activate a current when the difference exceeds 2 Vbe. Here, the 1k collector resistor limits current into the driver NPN.

The FJPF13009 acts as a gate-turn-off SCR of sorts, I suppose. Note the drive winding is phased so that a fraction of load current flows into the base, thus running it at a forced hFE(sat) = 5. This remains latched on until the core saturates (about 5us later), where magnetizing current sharply increases, rapidly clearing the B-E stored charge.

As such, overall behavior is a fixed-on-time, frequency modulated control.

This circuit is also still in regular use; some differences that didn't make it back into this schematic include: transient clamping on the driver transistor (the 60t drive primary peaks to 60V+ otherwise; whoops, didn't check that well initially!), and the buck inductor was changed from #26 (got WAY too hot) to Kool-Mu (better, but still way too hot), to gapped ferrite (an EE33 size core, though smaller would do). Operation is CCM, but the ripple is a bit high for most grades of powder cores it seems.

There's also plenty of filtering and such, not shown.

If you're looking for a simple solution in say four transistors or less, and no transformers, there is definitely some space to work with, here, but you will have a hard time getting good switching behavior over any kind of supply or load range, and you'll have a hard time implementing nice-to-haves like UV/OV, temp, etc.

Some more reading: http://www.romanblack.com/smps/smps.htm

Current mode operation is absolutely possible (and, I insist on it!), but expect to spend a Vbe at the shunt resistor, and perhaps additional idle power to monitor load current continuously (whether a high-side sense + level shift, or level shift + high side switch) if that should be a desirable feature. (Notice the last example above solves this with transformer isolation to the high-side switch.)

Tempco isn't a problem, incidentally -- it's fairly easy to make a CCS or foldback circuit for example with an NTC canceling out Vbe tempco to reasonable accuracy (< 10% I think) over a wide range (say -20 to 100°C).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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