• I need a microcontroller adjustable high voltage (300V) constant current.
  • Source: High voltage boost converter.
  • Load: Gas discharge lamp (20mA max). Can only be switch from high side.
  • There is no digital constant current IC at that voltage.
  • There is no (affordable) op-amp at that voltage.
  • Linear regulator can operate at constant current mode, and there is (only) one linear regulator that can operate at 300V:LR8
  • Digital potentiometer can be used to adjust current.


  • The adjusting resistor is in series with the load. The load current is too much (20mA max) for a digital potentiometer.

enter image description here

  • I found a constant current topology in the LM350 datasheet: 2 linear regulators without having R_set in series to the load.

enter image description here

  • I don't quite understand how this works, but I assume the lower linear regulator serves as constant current reference.

Could someone please explain how this works and how to calculate output current ?


Following advice from @SimonFitch. A DAC-controlled current sensing opamp seems to be a better choice.

![enter image description here

As suggested, this circuit uses current feedback to drive a MOSFET, a bit like current mode SMPS. The comparator is protected by opto-isolated gate driver.

  • \$\begingroup\$ Does one side of the load have to be grounded? In any case, I would suggest separating a discrete pass element from the control circuit. \$\endgroup\$ Oct 24, 2021 at 4:46
  • \$\begingroup\$ @7E10FC9A There are a couple of ways to go that come to mind. One is to surround a low-voltage opamp with BJTs that can withstand the voltages involved. I have a circuit I've been using that would be appropriate here. Another is to do as Spehro may be hinting towards: a ground-return control circuit that operates an opto-isolated pass element system. You can find something akin to what I'm talking about in The Art of Electronics, 2nd edition, though it isn't quite the same application it has the basics of a conceptual approach. \$\endgroup\$
    – jonk
    Oct 24, 2021 at 5:12
  • 1
    \$\begingroup\$ @7E10FC9A That said, gas discharge lamps are complicated beasts. Ignoring radiation transport, excited and metastable states, and atomic interactions, and assuming spatially averaged densities and using global rate equations, they require 2 spatial and 1 time dimension PDE coupled with 6D ODEs to apprehend. And that's just to get to first base. At least during the starting phase, I'm not sure how they'd respond to active current control. Probably far faster than the active circuit, itself. You may have an interesting project. :) \$\endgroup\$
    – jonk
    Oct 24, 2021 at 5:40
  • \$\begingroup\$ with a "negative" characteristic ... and a minimum voltage "arcing" ... \$\endgroup\$
    – Antonio51
    Oct 24, 2021 at 9:04
  • \$\begingroup\$ Note that in update picture, the op amp is not protected against "voltage" coming from source of the MOSFET ... Insert at least "one" resistor in the feedback. \$\endgroup\$
    – Antonio51
    Oct 25, 2021 at 10:09

2 Answers 2


You're right about the LM117 being a 10mA constant current sink, and analysis is not too difficult:


simulate this circuit – Schematic created using CircuitLab

Those 10mA flow through VR1, to drop 1.5V across it. The wiper simply taps off some fraction between 0 and 1 of that potential difference. I'll call that fraction w, so that the voltage between nodes B and C is:

$$ V_{BC} = 1.5w $$

The voltage between nodes C and A is the voltage across R1:

$$ V_{CA} = I_1 R_1 $$

The voltage between nodes B and A is the regulator's reference voltage:

$$ V_{BA} = 1.2V $$

Applying KVL to the loop BCA:

$$ \begin{aligned} V_{BC} + V_{CA} &= V_{BA} \\ \\ 1.5w + I_1 R_1 &= 1.2 \end{aligned} $$

KCL at node C:

$$ I_1 = I_{OUT} + 10mA $$

Putting those two equations together, and rearranging to find \$I_{OUT}\$:

$$ 1.5w + R_1(I_{OUT} + 10mA) = 1.2 $$

$$ \begin{aligned} I_{OUT} &= \frac{1.2 - 10mA \times R_1 - 1.5w}{R1} \\ \\ &= \frac{1.2}{R_1} - 10^{-2} - \frac{1.5w}{R1} \\ \\ &\approx \frac{1.2}{R_1} - \frac{1.5}{R_1}w \\ \\ \end{aligned} $$

Plugging in values of \$w=0\$ and \$w=1\$, with \$R_1 = 300m\Omega\$, we find maximum \$I_{OUT(MAX}\$ and minimum \$I_{OUT(MIN}\$:

$$ \begin{aligned} I_{OUT(MAX)} &= 4A I_{OUT(MIN)} &= -1A \end{aligned} $$

Obviously, the regulator cannot sink current, so in reality the minimum is probably more like a few milliamps.

4A is different from the stated maximum of 3A, and I believe this is due to two things. Firstly the regulator will likely cap its own output current to less than 4A, and secondly the regulator has an output resistance, effectively in series with R1. If you use a value for R1 of 400mΩ, which represents 300mΩ plus 100mΩ of output resistance, the actual maximum output current works out to be exactly 3A.

Anyway, with that out of the way, you still have a major hurdle, even if you did manage to get the above circuit working with the LR8. Digital potentiometers are restricted in terms of both current and voltage. I do not know of any such devices that can operate with signals that fall outside of their own power supply potentials.

Sure, you've now got only 10mA flowing through the resistor chain, and the potential difference between the ends of the chain is only 1.5V, but the absolute potential at either end can be anywhere from 0 to 300V. That means your control circuitry has to operate with a ground near the output potential of the regulator, which can vary wildly with respect to the +300V source and its own ground. This may or may not be practical, and it's certainly inconvenient.

An alternative is to build your own programmable current sink, which in theory is quite simple:


simulate this circuit

I take no responsibility for what happens if you build this, I won't guarantee anything when the source is 300V. If anything causes those transistors to fail, that opamp, and whatever's supplying \$V_{IN}\$ is toast. Ideally you'd need some kind of protection between the opamp output and Q1's base, maybe a TVS and fuse, but I haven't provided any protection here. I've chosen a couple of transistors capable of handling that voltage, but that's all.

This is a low-side current sink, programmed by supplying a voltage at IN. 1V there will produce 100mA through \$R_{LOAD}\$, with the component values shown. It works by using negative feedback to provide a very precise copy of the potential at IN across R2, thereby producing a precisely controllable current though that resistor. The transistors ensure that all that current is drawn in via the load, from the 300V source.

All you need now is a DAC output or filtered PWM voltage from a microcontroller to provide \$V_{IN}\$.

Q2 will have to be on a heatsink if you need more than about 3mA. At 100mA Q2 could dissipate up to 30W, requiring really substantial heatsinking. You may even need to use several transistors in parallel, each with appropriate emitter resistors to mitigate matching issues:


simulate this circuit

I strongly suggest you keep an eye on the comments for this answer, because there may be some sage advice about why this circuit is a good or bad idea, and what's wrong with it. Treat this as an exercise in how you might approach the problem given that a digital potentiometer is not likely to work as you would like.

  • \$\begingroup\$ Same idea as @Simon Fitch with a added possibility of driving high voltage on/off (changing pulse generator) and use of high voltage MOSFET IRF840 or similar. i.stack.imgur.com/fWx69.png 10mA/V of V10. \$\endgroup\$
    – Antonio51
    Oct 24, 2021 at 11:49
  • \$\begingroup\$ You are right about digital pot, they are very fragile and likely to fry even with protections. However DAC is even more fragile, but as long as the opamp did not fry, I think it would be safe. So I think it would be better to replace Q1 with mosfet driver IC, Q2 with SiCFET, and replace opamp with instrumentation amp. Is my suggestion sensible ? \$\endgroup\$
    – 7E10FC9A
    Oct 24, 2021 at 13:04
  • \$\begingroup\$ There are some problems, yes. You'd be better served in your current sink circuit by leaving the Q2 collector well enough alone. Just put in a +5V pull-up for the Q2 base and pull that down with Q1, that way your control circuit doesn't have to deal with the highly variable collector voltage that would go up to 200V at 1mA output. You should also use a MOSFET instead of a transistor, the bias current added to ouput makes things more complicated. Finally, at 1mA the sense voltage over 10R is all of 10mV, LM358 has +/-3mV input bias voltage so you'd be better served with e.g. 100R. \$\endgroup\$
    – Barleyman
    Oct 25, 2021 at 13:52
  • \$\begingroup\$ @Barleyman, thanks, all good points. My thoughts were: R2=10Ω to obtain a couple of hundred milliamps, at 2V. A MOSFET for Q2 would likely necessitate more than 5V supply for the opamp, unless I drop R2 a lot, as you suggest. I stuck with BJTs to allow OP to use a single 5V supply. As it stands, I do believe Q2 can be at a fixed +5V, instead of the high potential it would have in its current darlington role. \$\endgroup\$ Oct 25, 2021 at 17:20
  • \$\begingroup\$ @SimonFitch Well, yes, I didn't consider the MOSFET gate threshold voltage vs voltage rise on R2. Looking at my old design on a variable HV generator output current limiter, I used 3x1M resistors as a pull-up for the MOSFET gate with a zener diode to the FET Source to limit the Vgs voltage to non-cooking levels. Then just have a BJT pull-down on that gate which can be easily controlled by the LM358. 3M may be exaggerating a bit but you do need 1206 resistors for the voltage withstand ability and at least two of them for 300V. NB, opamp feedback with a FET and a BJT may oscillate. \$\endgroup\$
    – Barleyman
    Oct 25, 2021 at 18:02

You say your load is 20mA maximum, so worst-case (shorted load) power dissipation in the regulator is 6W. Maybe you could do something like this:


simulate this circuit – Schematic created using CircuitLab

The UF3C120400K3S is a silicon-carbide cascode JFET-MOSFET combination that has relatively low input capacitance and good SOA (Safe Operating Area). It's a bit exotic, but they're available at present and they're not too expensive. If you increase the load current by much more than 2:1 you may want to use an op-amp tolerant of high output capacitance.

You may also want to add Rser (say 2K passive fusible power resistor) and increase V1 to maybe 350V to provide a bit of insurance in case the load ionization cascading is too fast for the active current sink to back off fast enough, or in case M1 fails.

In actual practice you'd also want to add a low-capacitance TVS and some series resistance to the inverting input of the op-amp, because high transient voltage can occur there if the load suddenly drops in resistance.

  • \$\begingroup\$ Thanks ! Will the opamp be able to drive the gate ? They can typically source a lot less current than a gate driver. Also is there an advantage to use comparator or instrumentation amp instead of GP opamp ? \$\endgroup\$
    – 7E10FC9A
    Oct 25, 2021 at 11:53
  • \$\begingroup\$ Gate current is negligible as you can see if you read the datasheet which I linked. The concern is only gate capacitance when the gate is driven dynamically. \$\endgroup\$ Oct 25, 2021 at 11:55

Your Answer

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

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