Before we dive into what constant current sources are, we should start with explaining what a constant voltage source is.
Constant voltage sources are more common, because we use them all the time in the form of batteries or power supplies. Important for a constant voltage source is that the internal resistance of the voltage source is as small as possible. The smaller the internal resistance, the smaller the voltage drop over this internal resistance when we draw current from the constant voltage source. The smaller the internal resistance, the smaller the variation of the output voltage with varying current.
Let’s do some calculations to prove this behavior:
Vsrc is the voltage that powers the constant voltage source.
Rint is the internal resistance of the voltage source.
Iout1 is the first current we draw from the voltage source through Rint.
Vout1 is the output voltage as a result of drawing Iout1 from the voltage source.
Iout2 is the second current we draw from the voltage source through Rint.
Vout2 is the output voltage as a result of drawing Iout2 from the voltage source.
DeltaVout = Vout1 - Vout2 and shows us the output voltage variation as a result of the current variation, that is fixed (Iout2 - Iout1 = 0.999A).
See the figure below for the constant voltage source diagram:
Now we will test the output voltage Vout of the constant voltage source each time with a lower internal resistance Rint, while change the current Iout from 1mA to 1A (f.e. by changing the Rload resistance R2). We measure Vout for both the test currents. Vsrc is kept at 10V for each test.
The effect of lowering the internal resistance will become clear if we look at the output voltage variation (DeltaVout) caused by a change in output current (Iout).
Below is the table with the measurements:
Note: By drawing the 2 different currents, we simulate a change in load resistance at the output of the voltage source.
Vsrc Rint Iout1 Iout2 Vout1 Vout2 DeltaVout(=Vout1-Vout2)
10V 100 Ohm 1mA 1A 9.9V 0V 9.9V
10V 10 Ohm 1mA 1A 9.99V 0V 9.99V
10V 1 Ohm 1mA 1A 9.999V 9V 0.999V
10V 0.1 Ohm 1mA 1A 9.9999V 9.9V 0.0999V
10V 0.01 Ohm 1mA 1A 9.99999V 9.99V 0.00999V
10V 0.001 Ohm 1mA 1A 9.999999V 9.999V 0.000999V
We clearly see that the output voltage variation gets smaller and smaller when we decrease the internal resistance (Rint). So the lower the internal resistance, the less the output voltage will change with changing loads, so the closer the constant voltage source gets to an ideal constant voltage source. An ideal constant voltage source gives the same output voltage (DeltaV = 0), regardless of the amount of current you draw from it, thus regardless of load variations.
A battery is a good example of a constant voltage source.
When you wonder why the battery output voltage drops when we draw current from the battery, this is due to the internal resistance of the battery. This internal resistance becomes bigger and bigger as the battery is discharging till the point where the voltage becomes too low.
A regulated power supply is a constant voltage source. The internal resistance of a power supply needs to be as low as possible to have good load regulation, meaning that the output voltage does not change with changing loads.
A voltage regulator is a constant voltage source. It also needs a very low internal resistance, so the output voltage does not change with changing loads.
Now let’s see what the difference between a constant voltage source and a constant current source is. While a constant voltage source is characterized by a very low internal resistance, a constant current source is characterized by a very high internal resistance.
So, the opposite of a constant voltage source ! Why is that ?
Where a constant voltage source should output the same voltage regardless of changes in load resistance (thus current), a constant current source should output the same current regardless of changes in the voltage that drives the current.
To be able to output the same current regardless of the source voltage, we need a very high internal resistance. The higher the internal resistance, the smaller the current variation will be when changing the source voltage.
Let’s do some calculations again to prove this behavior:
Rint is the internal resistance of the current source.
Vsrc1 is the first voltage that we use to power the current source.
Iout1 is the current through Rint as a result of Vsrc1.
Vsrc2 is the second voltage that we use to power the current source.
Iout2 is the current through Rint as a result of Vsrc2.
DeltaIout = Iout1 - Iout2 and shows us the output current variation as a result of the source voltage variation, that is fixed (Vsrc2-Vsrc1 = 99V)
See the figure below for the constant current source diagram:
Now we will test the constant current source each time with a higher internal resistance Rint, while we change the source voltage Vsrc from 1V to 100V. We connect a fixed load resistance R2 of 0.1 Ohm to the output of the current source. We measure the output current Iout for both test source voltages (Vsrc).
The effect of increasing the internal resistance will become clear if we look at the output current variation (DeltaIout) caused by a change in source voltage (Vsrc).
Below is the table with the measurements:
Note: We keep Rload constant at 0.1 Ohm.
Rint Vsrc1 Vsrc2 Iout1 Iout2 DeltaI(=Iout1-Iout2)
100 Ohm 1V 100V 9.99mA 999mA 989mA
1k Ohm 1V 100V 999.9uA 99.99mA 98.9mA
10k Ohm 1V 100V 100uA 10mA 9.9mA
100k Ohm 1V 100V 10uA 1mA 990uA
1M Ohm 1V 100V 1uA 100uA 99uA
We clearly see that the output current variation decreases when we increase the internal resistance of the constant current source. So the higher the internal resistance, the closer the constant current source gets to an ideal constant current source. An ideal constant current source gives the same output current (DeltaIout = 0), regardless of source voltage variations.
So a good current source outputs the same current even when the supply voltage is varying.
Note:
When the load resistance is very high, the current through this load resistor will cause a high voltage drop. When the voltage over the load resistance becomes higher than the source voltage that is driving the current source, the current source will not be able to push the constant current through this high load resistance. So a prerequisite with using a current source is to use a load resistance that is low enough so it will consume all the current that the current source is capable of delivering.
4-20mA current loops use a current source that can be switched between 2 values. Using current sources to transmit data using 2 current levels (4 and 20mA) over long wires has the benefit of being insensitive to noise (EMI) that is picked up by the long wires. You can see it this way: the noise is added up to the source voltage but does not affect the current of the current source.
Current sources provide a way to sink or source a current with minimal dependency on the power supply voltage. This benefit of current sources is used a lot in OPAMPs, comparators, voltage regulators, audio amplifiers.
In transistor amplifiers, a current source can generate a lot more gain than a resistor can do (in f.e. a common emitter amplifier) without the problems associated with high resistor values: extra noise, extra capacitance.
The internal circuitry of OPAMPs, comparators, voltage regulators, audio amplifiers contain current sources to achieve high gains, high common mode rejection ratios, high power supply rejection ratios etc...
Ramp and triangle wave generators often use one or more current sources, because when you charge a capacitor with a constant current, the voltage over the capacitor will increase linearly.
And there is more that I didn't think of, but you see that constant current sources are not just beasts that only exist in theory books.
Next we will show some different types of constant current sources built with transistors, OPAMP, and voltage regulators that are converted into current sources:
Figure 1 above shows a bootstrapping constant current sink.
The voltage over Rset is kept constant by transistor Q1. Suppose the current through Rset would increase. Then the base-emitter voltage of Q1 increases, because the voltage over Rset increases, and Q1 will conduct more, pulling its emitter "higher" (closer to the positive power supply) by adding extra current through R2. When the voltage over R2 increases, this means the voltage over Rset must decrease and the current through Rset decreases. So the increase in current is compensated by Q1.
Figure 2 above shows a current source that uses the forward voltage of a LED as a voltage reference to sink a constant current.
A LED will partially compensate for the negative temperature coefficient of the base-emitter voltage (-2mV/degree C). The LED can be replaced with a zener diode. Zener diodes with a breakdown voltage > 5.6V have a positive temperature coefficient that will partially compensate for the negative temperature coefficient of the transistor Vbe. Rset is used to set the desired current at the output. The transistor will try to keep the current through Rset constant, because Rset causes negative feedback towards the base-emitter voltage of the transistor. Suppose the current through Rset increases. Because the voltage over the LED is constant, the base-emitter voltage of the transistor will decrease, so Q1 will conduct less. When Q1 conducts less, the current through Rset will decrease. So the increase in current is compensated by Q1.
Figure 3 above shows a cascode current sink using diodes D2 and D3 to create a voltage reference for Q2.
The desired output current is set with Rset. An extra transistor Q1 is added to increase the stability of the current source, because Q1 forms an additional regulation element in the current source. The configuration is a so-called cascode formed by Q1 and Q2. Suppose the current through Rset increases. Then Q2 will conduct less, so it will draw less base current through D1, so the voltage over D1 will increase and Q1 will conduct more. So this way Q2 compensates the changes in current through Q1 and Q1 compensates the changes in current through Rset. So we got a double regulating effect that increases the stability of the current source.
Figure 4 above shows a stable constant current sink with 2 transistors that is found a lot in all kinds of circuits. Q2 can be replaced with an N-MOSFET
Rset sets the desired output current. Rbias provides base current for Q2 and Q1 controls how much base current goes into the base of Q2. So Q1 controls the conduction of Q2. And the conduction of Q1 is determined by the current through Rset. Suppose the current through Rset increases. The voltage over Rset increases and Q1 will conduct more. When Q1 conducts more, this means that the base of Q2 is "pulled" closer to ground, so the base-emitter voltage of Q2 decreases. This means that Q2 conducts less and the current through Rset will decrease. This way, the initial increase of current through Rset is compensated.
Figure 1 above shows a bootstrapping current source that sources a constant current. Its operation is equal to the one in figure 1 of the constant current sinks.
Figure 2 above shows a constant current source with 2 NPN transistors that works exactly like the current source in figure 4 of the constant current sinks.
Figure 3 above shows a constant current source with 2 PNP transistors, where the current through Rset controls the conduction of Q2 and Q2 controls the conduction of Q1, that receives base's current via Rbias.
In the circuit above, a zener diode is used as a voltage reference for a constant current source built around OPAMP U1A. Q1 buffers the OPAMP output so more current can be delivered. The OPAMP is using negative feedback, since the OPAMP output is fed back to the inverting input. When the output voltage increases, the voltage on the inverting input increases. This means that the OPAMP will try to make the voltage difference between its inputs equal to 0, meaning that V1 = V2. The zener diode receives current via R1 and causes a voltage drop of 4V7 between V3 and V1. Since the OPAMP makes V1 = V2, this has the same effect as if the zener diode is connected parallel to R2. So over R2, we also find the 4V7 voltage drop. This causes a current of 4V7 / R2 = 4V7/4K7 = 1 mA through R2. When we neglect the current flowing into the OPAMP input as with an ideal OPAMP, ILoad will be the same as the current through R2, thus also 1 mA. This way, the zener voltage and R2 determine the current Iload = Vzener / R2.
Note:
The zener diode can be replaced with bandgap voltage reference diodes such as the LT1004, that will drop a voltage from 1,245V or 2V5 depending on the chosen type. The bandgap voltage reference diodes have excellent accuracy and temperature characteristics.
In the left circuit above, a voltage regulator U2 (LM7805) is "bootstrapped" by an OPAMP U1A to generate a constant voltage over R2. The OPAMP U1A is connected as a voltage follower, so the voltage on the inverting input and output will be the same as the voltage on the non-inverting input (when we neglect the offset voltage of the OPAMP). Thus, V1 will be equal to V2, and we know that V3 will always be 5V higher than V1, because U2 is a 5V regulator. So the voltage over R2 will be V3 - V2 = V3 - V1 = 5V. This means that the current through R2, which is also the current through RLoad (when we neglect the input bias current of the OPAMP), is equal to 5V/5K = 1 mA.
In the right circuit above, ILoad can be adjusted with P1 between 0 and (Vregulator / R2).
Note: U2 can be any adjustable voltage regulator, such as the LM317, REF02, REF102 ...
Note: When RLoad is very small, the non-inverting input of the OPAMP operates very close to ground. Most general purpose single supply OPAMPs will not be able to function properly that close to ground. To solve this, one or more diodes shall be connected between RLoad and ground, so the voltage at the non-inverting input of the OPAMP is lifted further away from ground level.
Note: In the left circuit, the OPAMP can be left out completely and V2 can be connected to V1 with a wire to get a simple version of a constant current source.
In the circuit above, a TL431 temperature compensated adjustable shunt regulator is used to construct a constant current sink in combination with a NPN transistor. For the TL431 to be able to function properly, a current of minimal 1 mA should flow through it. In the circuit, this current is determined by R1 = 6K8. Transistor Q1 is used to close the loop of the regulator circuit, so there is a proportional relation between V1 and V2. When voltage V1 raises, voltage V2 will raise proportionally and when voltage V1 sinks, voltage V2 will sink proportionally. The regulator will try to maintain a voltage of 2V5 at its sense pin (V2) by regulating V1 up or down until it "feels" 2V5 at the sense pin. So when V2 would raise above 2V5, the regulator will bring V1 down until V2 = 2V5 again, so the "balance" is restored. You could say that, when V2 would become higher than 2V5, the impedance of the TL431 regulator decreases, so it steals current away from the base of Q1, causing Q1 to conduct less and V2 to sink down to 2V5 again. When V2 would become lower than 2V5, the impedance of the TL431 regulator increases and more current is allowed to enter the base of Q1, causing Q1 to conduct more and V2 to raise up to 2V5 again.
V1 will be V2 + Vbe of Q1 = 2V5 + 0.6 = 3.1V.
The current through U1 will be the current through R1 when we neglect the base current of Q1. The current through R1 will be (12V - V1)/ 2K2 = (12V - 3.1V)/ 2K2 = 8.9V/2K2 =about 4 mA.
Suppose RSense = 250E, then ILoad would be V2/250E = 2V5 / 250E = 10 mA.
Note: When choosing an RSense and thus an ILoad, care should be taken that the power rating of the transistor Q1 is not exceeded.
In the circuit above, 2 complementary transistors and 2 zener diodes are used to form a constant current source. In fact, it are 2 current sources connected on top of each other. The first current source is created by Q1, R1 and D1. The second current source is formed by Q2, R2 and D2. The collector of Q1 sources a constant current through zener diode D2. The collector of Q2 sinks a constant current through D1. The current sourced by the collector of Q1 is equal to I1 if we neglect the base current for Q1.
I1 = (voltage over R1 / R1) = (voltage over D1 - Vbe of Q1) / R1 = (5V6 - 0V7) = 4V9 / 1K = 4.9 mA,
I2 = (voltage over R2 / R2) = (voltage over D2 - Vbe of Q2) / R1 = (5V6 - 0V7) = 4V9 / 1K = 4.9 mA
Iconst = I1 + I2 = 4.9 mA + 4.9 mA = 9.8 mA.
Note: The supply voltage for this circuit needs to be rather high because we have 2 voltage drops of 5V6 in series, caused by the 2 zener diodes. So we lose at least 2 x 5V6 = 11.2V. To give the constant current source enough headroom voltage to work with, the supply voltage needs to be high enough for the circuit to work properly.
Note: Zener diodes with a zener voltage above ca. 5V have a positive temperature coefficient, meaning that the zener voltage increases with temperature. Zener diodes with a zener voltage under 5V have a negative temperature coefficient, meaning that the zener voltage with decrease with rising temperature. The base-emitter junction of the transistor has a negative temperature coefficient, meaning that the current increases with temperature. The 5V6 zener diode has a very low positive temperature coefficient.
Note: The zener diodes can be replaced with bandgap voltage reference diodes such as the LT1004, that will drop a voltage from 1,245V or 2V5 depending on the chosen type. The bandgap voltage reference diodes have excellent accuracy and temperature characteristics.
The constant current sinks above sink a constant current that is directly proportional to the input voltage Vin. All 3 circuits function in the same way. The only difference is the control element.
Figure 1 above shows a constant current sink using a darlington configuration to allow a higher output current Iout without loading the OPAMP output too much.
Figure 2 above shows a constant current sink using an N-FET to drive the output transistor, so the OPAMP output sees a very high impedance and is not loaded by the output transistor Q2.
Figure 3 above shows a constant current sink using an N-MOSFET to control the output current Iout. The OPAMP output is not loaded and there is no significant difference in current through the source and drain of the FET. The only disadvantage is that the OPAMP always needs to overcome the gate-source threshold voltage of the N-MOSFET, so this circuit does not work with low supply voltages.
Note: The formulas are not 100% correct. F.e. in figure 1, the OPAMP will try to make the voltage over Rset equal to the input voltage Vin, so it regulates the emitter current of the transistor Q2 (via Q1), while the constant output current is taken from the collector. But the emitter current is different from the collector current, because it also contains the base current of Q2 : Iemitter = Icollector + Ibase, so the collector current (= Iout) is slightly less than the emitter current = Vin / Rset.
Note: When using OPAMPs, then pay attention to the fact that the output of an OPAMP of most general purpose OPAMPs can not reach the positive or negative power supply voltage, unless you use rail-to-rail OPAMPs.
Especially when using very low values of Rset, so the voltage over Rset is very low, so the OPAMP output has to come close to the power supply rail, the limited output swing of the OPAMP can become a problem.
The constant current sources above source a constant current that is directly proportional to the input voltage Vin. All 3 circuits function in the same way. The only difference is the control element.
The description of the circuits is the same as the description of the equivalent/corresponding voltage controlled current sink in the previous section.
The Howland current source is a bidirectional current source that can be controlled with a differential voltage. In other words, the current source can sink or source current through the load.
How does it work :
Check the right figure above, where we apply a positive voltage of 2V to the positive input and put the negative input to ground. We see that the output of the OPAMP is connected to a resistive divider formed by R3 and Rload.
(R3 + Rload) / Rload = 3. This means that the voltage on node 3 (V3) is 3x the voltage at node 4 (V4).
Because the OPAMP has negative feedback, it will do its best to make V1 equal to V2.
Because R4 is equal to R5, V2 will be 1/2 * V3.
So V1 = V4 * (3 / 2) = V4 * 1.5.
Now it should be possible to find out what the voltage V1 is :
2V - V1 = (V1 - V4) and we know that V1 = (V4 * 1.5), so :
2V - V1 = V1 - (V1 / 1.5), so
2V = V1 - (V1 / 1.5) + V1 = 2 * V1 / 1.5, so
V1 = 1.5V.
V4 = V1 / 1.5 = 1V
V3 = V4 * 3 = 3V
What we see is that the voltage over R3 is the input voltage when R2/R1 = R4/R5.
So the current through R3 is directly controlled by the input voltage.
The current through the load differs from the current through R3, because the current through R2 has to be added to or subtracted from it.
When we want to compensate this difference, we can decrease R2 (or increase R1), so (R2 + R3) / R1 = R4 / R5.
That way the current through the load is equal to the input voltage / Rload.