Created by
Created February 22, 2014
Last modified February 23, 2014
Tags No tags.


Constant Current LED driver using a PNP transistor stabilized by an Op-Amp.


Using a PNP transistor and an Op-Amp to drive an LED at a constant constant current. The values are set to drive an LED at around 20ma. The Sawtooth generator simulates the range of possible LED forward voltages, based on the typical and max specifications found in LED data sheets for low power LEDs. For example, most IR LEDs run at a forward voltage of 1.0V to 1.2V. Red LEDs can be anywhere from 1.7V to a little more than 2V. A Blue or White LED can go as high as 4V according to most White LED data sheets (though I have never seen that in practice, except on LEDs that have been heat stressed).

This is a very stable circuit -- or at least it's as stable as the 1.2 volt reference, which, in this case is a simulation of a precision voltage reference. If exact current control is not required, the reference can be a zener, an LED or even a forward biased diode, such as the 1N4148. In each case, if the reference voltage is other than 1.2V, the value of R2 will need to be adjusted using the following simple formula (to compensate for the hFE of Q1 use the formula near the bottom of this description):

R2 = Vref/20ma where Vref is the voltage across whatever takes the place of D1.

This formula can be generalized for any current value:

R2 = Vref/I where I is the current to be sourced.

The circuit works by differencing the voltages at two points: 1. At the node between V3 (the reference voltage) and R1 (biases V3 -- though not needed for the simulation but included to depict the typical real-world requirement). 2. The voltage at the emitter of Q1 [Q1.E]. The Op-Amp [OA1] takes the difference of these two voltages and multiplies that by it's open-loop gain and presents the result as a voltage on it's output. If the Q1.E voltage is higher than the V3 voltage, then the OA1 output will drive down, towards ground. This will start to turn Q1 on which will allow more current to flow through R2 raising the voltage across it. This will cause the Q1.E voltage to lower, and thus come closer to matching the V3 voltage. This continues until the two voltages are equal (at least to within the input offset voltage of the op-amp). The opposite occurs if the Q1.E voltage rises.

Basically, the op-amp regulates the voltage across R2 to maintain equality with V3. Because the voltage across R3 remains constant, the current flowing through R3 remains constant. But, because a portion of the current flows from the emitter of Q1 to it's base, the current at Q1's collector is slightly less than the current in R3 by a factor of Q1's hFE (or beta). So, if Q1 has an hFE of 100, the nominal current at the Collector of Q1 will be:

Ic = Ie - Ie/ß = Ie(1 - 1/ß) = V3/R2(1 - 1/ß) = 1.2/60(1 - 1/100) = 19.8 - where ß is the hFE of Q1

The following formula for R2 compensates for that:

R2 = V3/(Ic + Ic/ß)

Now, determining the hFE is tricky, because this value not only varies (considerably) with Ic, it's also also influenced by Vce and by temperature and varies from device to device. The On-Semi datasheet for the 2N3906 lists the hFE as 100 to 300 for Ic = 10ma and 60 min for Ic = 50ma. So, the value 100 is probably a safe bet for Ic = 20ma.

So, for 20ma and hFE=100, R2 needs to be:

1.2/(20 + 20/100) = 59.4Ω

If you run the Time Domain simulation you will see that the current stays almost perfectly constant over the full 1V to 4V range.

BTW: this circuit has a fairly high parts count and is probably impractical in most applications. The CL520 IC (by Supertex) performs far better and has a parts count of 1 (or two, if you include the bypass cap). It's also very inexpensive, can source as well as sink current, has a dropout voltage of 1V and has a voltage range of 4.75 to 90V!


No comments yet. Be the first!

Leave a Comment

Please sign in or create an account to comment.

Revision History

Only the circuit's creator can access stored revision history.