100nF

Constant current source calculator

Three ways to hold a current steady whatever the load does: an op amp driving a transistor over a low-side sense resistor, an LM317 with one resistor, and the improved Howland current pump. For each, the resistor values, the current they actually give, the power in the sense resistor and the pass device, and the compliance voltage: how much voltage the load can have before the source runs out of room. The defaults are TI's own designs, SBOA325's 0–10 V to 0–1 A sink with its 100 mΩ sense resistor and SBOA436's ±25 mA Howland pump, and the page's tests hold the calculation to their printed values.

V_I 10.0 VR149.9 kΩR2499 Ω+−V_CE 3.23 VP 3.20 WR_LOAD33.0 ΩV_LOAD 36.0 VI_O 990 mAR5 100 mΩV_S 99.0 mVload supply 36.0 Vload can reach 34.9 Vload 32.7 VV_CE min 1.00 V + sense 99.0 mVspare 2.23 V
Fig 1 — 10.0 V full scale divided by 49.9 kΩ and 499 Ω to 99.0 mV, which the op amp holds across R5 = 100 mΩ: 990 mA. Of the 36.0 V load supply the load takes 32.7 V and the transistor 3.23 V, 3.20 W. Compensation parts are not drawn.
Sense resistor R5 = V_S / I_O · its power at full scale
100 mΩ · 100 mW
Divider, exact: R1 (top) · R2 = V_S / I_I (bottom)
49.5 kΩ · 500 Ω
Divider in E96: R1 · R2
49.9 kΩ · 499 Ω
Full-scale current with the E96 divider, I_O = R2 V_I / (R5 (R1 + R2))
990.1 mA (−0.99 %)
Input current at full scale, V_I / (R1 + R2)
198 µA
Load voltage I_O × R_LOAD
32.7 V
Across the transistor · its dissipation (derived)
3.23 V · 3.20 W
Compliance: the most load voltage, V_LOAD − V_S − V_CE(min) · largest load
34.9 V · 35.3 Ω

The transistor dissipates 3.20 W at full scale: everything the load does not use is burnt in it. A lower load supply, or a load that uses more of it, reduces that; the heat sink calculator sizes the rest.

How this is calculated

Standard: TI SBOA325, V-I converter with BJT (p. 2); TI SBOA326, V-I converter with a Darlington (pp. 1–4); TI LM317 datasheet SLVS044Z (§7.3.3, §7.4.2, §8.3.3, §8.3.7); TI SBOA436, Improved Howland current pump (pp. 2–4); TI SBOA437A, Analysis of Improved Howland Current Pump Configurations (Eq 1–4, pp. 2–5)

Io=R2R5 (R1+R2) Vi,R5=VSIo,max,R2=VSIi,maxI_o = \frac{R_2}{R_5\,(R_1 + R_2)}\,V_i, \qquad R_5 = \frac{V_{S}}{I_{o,max}}, \qquad R_2 = \frac{V_{S}}{I_{i,max}}
SBOA325 p. 2: the transfer function of the op-amp sink, R1 the top of the input divider and R2 its bottom; the sense resistor from the full-scale sense voltage (100 mV at 1 A gives 100 mΩ), and R2 from the input current limit (100 mV at 200 µA gives 500 Ω). SBOA326 p. 2 prints the same transfer function.
VS=PR5,maxIo,maxV_{S} = \frac{P_{R5,max}}{I_{o,max}}
SBOA326 p. 2: the sense voltage from the power the sense resistor may dissipate at full scale, 0.25 W at 5 A giving 50 mV.
VLOAD,max=Vsupply−VS−VCE(min),PT=(Vsupply−IoRLOAD−VS) IoV_{LOAD,max} = V_{supply} - V_{S} - V_{CE(min)}, \qquad P_T = (V_{supply} - I_o R_{LOAD} - V_{S})\,I_o
The op-amp sink's compliance and transistor dissipation, from Kirchhoff's voltage law round the output loop (derived; SBOA325 and SBOA326 state the aim, not the equation). V_CE(min) is an input from the transistor's datasheet.
I=1.25 VR1+IADJ,PR1>(1.25 V)2R1,VI>VLOAD+4.25 VI = \frac{1.25\ \text{V}}{R_1} + I_{ADJ}, \qquad P_{R1} > \frac{(1.25\ \text{V})^2}{R_1}, \qquad V_I > V_{LOAD} + 4.25\ \text{V}
LM317 §7.3.3 (p. 13): "a single resistor whose resistance value is 1.25V / IO and a power rating greater than (1.25V)² / R"; §8.3.7 (p. 20): "Make sure VI is greater than VBAT + 4.25V. (1.25V [VREF] + 3V [headroom])". The ADJUST current, 50 µA typical and 100 µA maximum (§6.6), joins the resistor current at the load; that term is from the schematic, not printed in the current-source sections. Figure 8-8 (p. 18) writes the current as 1.2/R1.
Iload=G (Vp−Vn)Rs,G=R2R1,R2R1=R4+RsR3I_{load} = \frac{G\,(V_p - V_n)}{R_s}, \qquad G = \frac{R_2}{R_1}, \qquad \frac{R_2}{R_1} = \frac{R_4 + R_s}{R_3}
SBOA437A Equations 1 and 2 (p. 2), and SBOA436 p. 3: the improved Howland pump. With the buffer of SBOA437A Design 2, Equations 3 and 4 (p. 4): the same current with R1 = R3 and R2 = R4.
U1_Vout=Vtermination+Iload Rload+Vshunt,Vout_Min<U1_Vout<Vout_MaxU1\_V_{out} = V_{termination} + I_{load}\,R_{load} + V_{shunt}, \qquad V_{out\_Min} < U1\_V_{out} < V_{out\_Max}
SBOA436 p. 3: the op amp output the pump needs, which must stay inside the op amp's output swing at that current. The compliance is the swing limit less the shunt voltage.
Zout=Rs (R3+R4)R4+Rs−R3R2/R1Z_{out} = \frac{R_s\,(R_3 + R_4)}{R_4 + R_s - R_3 R_2 / R_1}
The Howland pump's output impedance with an ideal op amp, derived from the node equations; with the buffer the denominator is R4 − R3 R2/R1. With R1 = R3 and R4 = R2 it is R3 + R4, the value SBOA437A gives (p. 3); with the balance of Equation 2 the denominator is zero and the impedance infinite, and then resistor tolerance sets it.

Assumptions

What sets the current: a known voltage across a known resistor

Every circuit on this page makes a current the same way. It holds a voltage it knows across a resistor it knows, and the current through that resistor is the ratio. What differs is what does the holding and where the rest of the supply goes. In the op-amp sink, an op amp drives a transistor until the voltage across a low-side sense resistor equals a scaled copy of the control input. In the LM317, the regulator's own 1.25 V reference sits across one resistor. In the Howland pump, a difference amplifier holds a set fraction of the input across a shunt in series with the load. In each, the load's own voltage does not appear in the equation for the current, which is the point.

It only stays out of the equation while there is room for it. The supply has to cover the load's voltage, the sensing resistor's drop and whatever the transistor, regulator or op amp needs to stay in control. The largest load voltage that leaves all of that in place is the compliance voltage, and it is the second number to get right after the current. The bar under each schematic in the calculator is that budget: the load's share from the left, the circuit's fixed drops from the right, and the spare in between. In the op-amp sink and the LM317 the spare is not free: it is dropped across the transistor or the regulator and turned into heat.

The op-amp and transistor current sink

TI's SBOA325 describes the circuit in one sentence: "This low-side voltage-to-current (V-I) converter delivers a well-regulated current to a load which can be connected to a voltage greater than the op amp supply voltage" (p. 1). The op amp compares the control voltage, scaled down by a resistor divider R1 and R2, with the voltage across the sense resistor R5 in the transistor's emitter, and drives the base until they match. The transfer function is on page 2: Io = R2 / (R5 × (R1 + R2)) × Vi. The load sits in the collector, above the transistor, and can return to a supply of its own; SBOA325 runs the op amp from 15 V and the load from 36 V.

The design runs in two steps. The first fixes the sense voltage at full scale, and SBOA325 is explicit about the direction to push it: "The sense resistor should be sized as small as possible to maximize the load compliance voltage and reduce power dissipation." It settles on 100 mV: "Limiting the voltage drop to 100mV limits the power dissipated in the sense resistor to 100mW at full-scale output" (p. 2). The second step sizes the divider so that the full-scale input lands exactly on that 100 mV, with the divider's total resistance set by how much current the control source may supply. The divider is there, design note 1 says, "to limit the maximum voltage at the non-inverting input, Vin+, and sense resistor, R5, at full-scale", and note 2 adds that for an op amp without rail-to-rail inputs it may also be what keeps the input inside the common-mode range.

The rest of the circuit is support. "Using a high-gain BJT reduces the output current requirement for the op amp" (note 4), and SBOA326 replaces the single transistor with a Darlington pair for 5 A for the same reason: "The output Darlington pair allows for higher current gain than when using a single, discrete transistor." SBOA325's R3, R4 and C1 are compensation, not part of the DC design: "R3 isolates the input capacitance of the bipolar junction transistor (BJT), R4 provides a DC feedback path directly at the current-setting resistor (R5), and C1 provides a high-frequency feedback path that bypasses the BJT" (note 5). The calculator does not size them, and the figure leaves them out.

Worked example: SBOA325, 0–10 V to 0–1 A

SBOA325's design goals (p. 1) are an input of 0 V to 10 V, at most 200 µA drawn from it, an output of 0 A to 1 A, and a 36 V load supply. These are the calculator's defaults.

step 1   R5 = 100 mV / 1 A                          = 100 mΩ
         P(R5) = 100 mV × 1 A                       = 100 mW
step 2   R2 = 100 mV / 200 µA                       = 500 Ω
         R1 = 500 Ω × (10 V / 100 mV − 1)           = 49.5 kΩ
check    Io = 500 / (0.1 × (49.5k + 500)) × 10 V    = 1.00 A
fitted   Io = 500 / (0.1 × (49.3k + 500)) × 10 V    = 1.004 A
         with R2 = 499 Ω                            = 1.002 A
         input current 10 V / (49.3k + 500)         = 200.8 µA

SBOA325 prints each step: "R5 = … = 100mΩ", "R2 = … = 500Ω ∼ 499Ω (Standard value)" and "R1= 49.5kΩ ~ 49.3kΩ (Standard value)". Two details in the fitted values are worth knowing. The schematic on page 1 is drawn with R2 = 500 Ω, not the 499 Ω the text rounds to, and with 49.3 kΩ above it the full-scale current is 1.004 A; with 499 Ω it is 1.002 A. Either way the divider draws 200.8 µA at 10 V, a little over the 200 µA goal, because 49.3 kΩ is below the exact 49.5 kΩ. And 49.3 kΩ is an E192 value. The E96 series has 48.7 kΩ and 49.9 kΩ on either side of it, and the best E96 pair for this divider is 499 Ω under 49.9 kΩ, a ratio of exactly 1/101, which puts full scale at 990.1 mA, −0.99 %. In E24 the best is 510 Ω under 51.0 kΩ, the same ratio. The calculator rounds to E24 or E96 and shows the full-scale error that leaves; the choice is between accepting it, trimming it out, or buying the E192 part SBOA325 did.

The load in SBOA325's schematic is 40 mΩ, nearly a short. At 1 A it takes 40.0 mV, and the transistor is left with 35.9 V across it and 35.9 W to dissipate. SBOA325 discusses the sense resistor's dissipation and not the transistor's, but the number follows from the supply and the current, and it is the one that decides the heat sink. The calculator warns whenever the transistor has more than a watt to get rid of.

Compliance and dissipation: how the load uses the supply

With the supply fixed, the load voltage and the transistor's voltage add up to the same total, less the sense drop. A load that uses more of the supply leaves less for the transistor to burn, up to the point where the transistor has nothing left to regulate with. The table is SBOA325's sink at 1 A on its 36 V load supply, with the transistor assumed to need 1 V. That minimum is not from SBOA325: it depends on the part and the current, and comes from the transistor's saturation voltage on its own datasheet.

LoadLoad voltageAcross the transistorTransistor powerIn compliance
40.0 mΩ40.0 mV35.9 V35.9 Wyes
5.00 Ω5.00 V30.9 V30.9 Wyes
10.0 Ω10.0 V25.9 V25.9 Wyes
20.0 Ω20.0 V15.9 V15.9 Wyes
30.0 Ω30.0 V5.90 V5.90 Wyes
34.9 Ω34.9 V1.00 V1.00 Wyes
40.0 Ω40.0 V−4.10 V—no, short by 5.10 V

The compliance voltage is 36 V less the 100 mV sense drop and the 1 V minimum, 34.9 V, which at 1 A is a load of 34.9 Ω. Beyond it the transistor saturates, and the current is set by the supply and the load, not the input: into 40 Ω it falls to about 873 mA. Below it, every volt the load does not use is dissipated in the transistor, which is why the load supply should be only as high as the largest load needs. A 5 Ω load on 36 V costs the transistor 30.9 W; on a 12 V supply the same load and current cost 6.90 W. SBOA326 note 3 states the other half of the same budget: "Smaller values of R4 and R5 lead to an increased load compliance voltage and a reduction in power dissipated in the full-scale, output state."

Worked example: SBOA326's Darlington sink at 5 A

SBOA326 builds the same circuit for 0 A to 5 A with a Darlington pair, and starts the design from the sense resistor's power instead of its voltage: 0.25 W at 5 A (design goals, p. 1). Enter it in the calculator as 10 V, 5 A, 50 mV and 200 µA, with a 36 V supply.

step 1   Vsense = 0.25 W / 5 A                      = 50.0 mV
step 2   R5 = 50 mV / 5 A                           = 10.0 mΩ
step 3   bottom = 50 mV / 200 µA                    = 250 Ω
         top from 250 Ω                             = 49.8 kΩ
         top from the rounded 249 Ω                 = 49.6 kΩ
check    Io = 249 / (0.01 × (49.9k + 249)) × 10 V   = 4.965 A

The note's step 3 prints "R1 = VsenseMax / IiMax = 50mV / 200µA = 250Ω ≈ 249Ω (Standard Value)" and then "R2 = 49.6kΩ ≈ 49.9kΩ". The names are the other way round from the schematic and the transfer function on the same page, where R2 is the 249 Ω at the bottom of the divider and R1 the 49.9 kΩ above it; the values are right, and the calculator uses the transfer function's naming. The printed 49.6 kΩ is the top resistor worked from the already rounded 249 Ω, 49.6 kΩ; from the exact 250 Ω it would be 49.8 kΩ. Both round to the same 49.9 kΩ.

SBOA326's DC simulation (p. 3) is a useful check on how far the ideal transfer function is from a real op amp:

ViSimulated (p. 3)Transfer functionDifference
0.50 V259.0 mA248.3 mA10.7 mA
5.00 V2.493 A2.483 A10.4 mA
10.00 V4.976 A4.965 A10.8 mA

The simulation sits 10.4 mA to 10.8 mA above the transfer function at every input, a constant offset rather than a gain error. Across the 10 mΩ sense resistor, 10.6 mA is 106 µV, which is the size of the op amp's input offset: SBOA326 lists its OPA2991 at 125 µV (p. 5). That is the price of a small sense voltage. At 50 mV full scale, 125 µV is 0.25 % of full scale and2.5 % at a tenth of it. SBOA326 note 5 names another DC error: "The input bias current will flow through R3, which will cause a DC error."

Its compliance simulation (p. 4) sweeps the load: the current holds at 5.00 A up to R4 = 7.1 Ω, where the collector has fallen to Vo = 1.05 V, and falls beyond. With 1.05 V at the collector, 50 mV of it across the sense resistor, the calculator's straight-line limit is 6.99 Ω, within 1.5 % of the marker, which is placed by eye on a knee. The Darlington's minimum is therefore about 1.0 V: the op amp drives two base-emitter junctions in series, and note 6 asks for an op amp "whose linear output voltage swing includes at least 2 ✕ Vbe+Vsense".

LM317 constant current source

The LM317 is a current source with one resistor. The datasheet puts it early: "By connecting a fixed resistor between the adjustment pin and output, the LM317 is also able to be used as a precision current regulator" (p. 2). The regulator holds its reference between OUTPUT and ADJUST, so with a resistor between the two and the load hung from ADJUST, the resistor's current is fixed and all of it goes through the load. Section 7.3.3 gives the design rule: "For current regulation applications, use a single resistor whose resistance value is 1.25V / IO and a power rating greater than (1.25V)² / R" (p. 13).

The datasheet is not consistent about the constant. Figure 8-8, the Precision Current-Limiter Circuit of §8.3.3, labels its output Ilimit = 1.2/R1 (p. 18), where §7.3.3 uses 1.25 V. The reference is 1.25 V typical and 1.2 V to 1.3 V over the line, load and power range of §6.6, so 1.2 V is its minimum, and the two readings are 4.2 % apart. §8.3.7's battery charger shows the same split in one line: it is titled 50 mA and uses 24 Ω, which is 1.2 V / 50 mA exactly, and its text reads "ICHG = 1.25V ÷ 24 Ω", which is 52.1 mA. The calculator sizes R1 from 1.25 V, gives Figure 8-8's value beside it, and reports the spread the whole 1.2 V to 1.3 V range allows.

Two terms are easy to miss. The ADJUST pin's own current, 50 µA typical and 100 µA maximum, leaves the pin and joins the resistor's current at the load, so the load gets both; §7.1 calls it "an error term". It is 0.1 % of a 50 mA source and 0.5 % of a 10 mA one. And the regulator's overhead is large: §8.3.7 asks for an input "greater than VBAT + 4.25V. (1.25V [VREF] + 3V [headroom])" (p. 20). Where the op-amp sink above spends 100 mV on sensing, the LM317 spends 1.25 V, plus its 3 V of headroom.

Current1.25 V / INearest E24Load current with IADJ(1.25 V)² / R1
10 mA125 Ω130 Ω9.67 mA (below 10 mA minimum load)12.0 mW
20 mA62.5 Ω62.0 Ω20.2 mA25.2 mW
50 mA25.0 Ω24.0 Ω52.1 mA65.1 mW
100 mA12.5 Ω13.0 Ω96.2 mA120 mW
350 mA3.57 Ω3.60 Ω347 mA434 mW
700 mA1.79 Ω1.80 Ω694 mA868 mW
1000 mA1.25 Ω1.30 Ω962 mA1.20 W
1500 mA833 mΩ820 mΩ1.52 A1.91 W

The calculator's LM317 defaults are the datasheet's 50 mA, which E24 rounds to the same 24 Ω, from a 12 V input into a 6 V load; both voltages are assumptions. That leaves the regulator 4.75 V, enough, and a compliance of 7.75 V: any load up to that voltage gets 52.1 mA. Below about 10 mA the LM317 is outside its own specification. It needs a minimum load current to regulate, 3.5 mA typical and 10 mA maximum at 40 V across it (§6.6), and §7.4.3 is plain about the consequence: "Make sure the load or feedback consumes this minimum current for regulation or the output is potentially too high." The site's LM317 calculator has the same current mode alongside the voltage modes; this page adds the compliance and the comparison with the other two circuits.

An LED string is the commonest load for a constant current source, and all three circuits drive it the same way: enter the string's forward voltage at the set current, from the LED datasheet, as the load voltage (or divide it by the current for a load resistance). What this page computes about it is only whether the source has room for that voltage; the forward voltage itself, and the series-resistor alternative, are the LED resistor calculator's.

The improved Howland current pump

Neither of the first two circuits can push current both ways, and both need the load floating above them or returned to a supply. The Howland pump drives a grounded load in either direction. SBOA436 (p. 1): "The “Improved” Howland current pump is a circuit that uses a difference amplifier to impose a voltage across a shunt resistor (Rs), creating a voltage-controlled bipolar (source or sink) current source capable of driving a wide range of load resistance."

The gain of the difference amplifier sets the voltage across the shunt: G = R2/R1, and Iload = G (Vp − Vn) / Rs (SBOA437A Equation 1, p. 2). The second half of Equation 2, R2/R1 = (R4 + Rs)/R3, is the condition that keeps the load's voltage out of the answer. R4 feeds the load voltage back to the non-inverting input, which lifts the output along with the load voltage, so that when the ratios match the current into the load does not change. Since R4 and Rs are in series on that path, R4 is trimmed by the shunt's value; SBOA436 note 5: "resistor R4 is usually set equal to R2-Rs, which slightly alters the feedback network but results in the expected Iload value."

The compliance limit is the op amp's own output. SBOA436 writes it as U1_Vout = Vtermination + (Iload × Rload) + Vshunt, which must lie inside the output swing "at a specific output current specified in the data sheet of the op amp" (p. 3). The load and the shunt share whatever the rail leaves after the swing.

Worked example: SBOA436, ±5 V to ±25 mA

SBOA436's design goals (p. 1) are ±5 V in, ±25 mA out, on ±15 V. The design is on page 4: "A design goal of ±25mA of output current from an input voltage difference of ±5V and a 500-Ω load results in a Vload value of ±12.5V assuming a Vtermination voltage of 0V. The remaining ±2.5 volts must accommodate the selected output swing-to-rail of the op amp as well as the maximum voltage across the shunt. For these reasons, a 20-Ω shunt resistor and a gain of 1/10 (V/V) was chosen." The simulated circuit uses R1 = R3 = 100 kΩ, R2 = 10 kΩ and R4 = 9.98 kΩ. These are the calculator's Howland defaults, solved node by node with an ideal op amp:

gain     G = 25 mA × 20 Ω / 5 V                     = 0.10
         R2/R1 = 10k / 100k                         = 0.10
balance  R4 = R2 − Rs = 10k − 20                    = 9.98 kΩ
load     Vload = 25 mA × 500 Ω                      = 12.5 V
nodes    V+ = 5 + (12.5 − 5) × 100k / 109.98k       = 11.819 V
         Ifeedback = (12.5 − V+) / 9.98k            = 68.19 µA
         Ishunt = Iload + Ifeedback                 = 25.068 mA
         Vshunt = Ishunt × 20 Ω                     = 501.36 mV
output   Vout = 12.5 V + Vshunt                     = 13.001 V

SBOA436's simulation (p. 4) prints Vcm = 11.819 V, Ifeedback = 68.19 µA, Ishunt = 25.068 mA, Vout = 13.001 V and Vload = 12.5 V; the node solution gives 11.819 V, 68.19 µA, 25.068 mA, 13.001 V and 12.5 V. The shunt voltage is printed as "501.354mA" beside a voltmeter; it is 501.36 mV. The one figure that differs is the load current, printed as 24.99 mA where the ideal solution is exactly 25.00 mA; the difference is within the simulated op amp's own errors. With the op amp assumed to swing within 1 V of its rails, the output has 999 mV to spare, and the largest load it can drive at 25 mA is 540 Ω.

The feedback current is the reason for the R4 trim. Of the 25.07 mA through the shunt, 68.2 µA goes back through R4 instead of into the load; reducing R4 by the shunt's 20 Ω is what makes the load's share come out at exactly 25 mA. SBOA437A works a smaller example the same way, its Figure 1-2 (p. 2): 5 V into R1 = R3 = 50 kΩ, R2 = 1 kΩ, R4 = 990 Ω and a 10 Ω shunt, which it prints as 99.2 mV, 9.92 mA through the shunt, −78.45 µA of feedback current and 10 mA in the 100 Ω load. The node solution gives 99.2 mV, 9.92 mA, −78.45 µA and 10.0 mA. Here the feedback current flows the other way, because the load voltage, 1.00 V, is below the non-inverting input's, 1.08 V.

A buffer between the load and R4 removes the feedback current altogether. SBOA437A's Design 2 (p. 4) does that, and with it the trim goes: "Note when the buffer is added, the circuit designer should no longer modify R4 by the value of Rs." Its Figure 2-2 example, 5 kΩ and 100 Ω pairs with a 10 Ω shunt, gives 100 mV, 10.0 mA and no feedback current, as printed (p. 5). The calculator's R4 return selection switches between the two.

Output impedance and resistor mismatch

A perfect current source has infinite output impedance: its current does not change with the load voltage. SBOA437A (p. 3): "An ideal current source has infinite output impedance; however, the finite output impedance of this configuration is determined by the two feedback resistors in series (R3+R4)." Solving the pump's node equations gives the output impedance for any resistor values, Zout = Rs(R3 + R4) / (R4 + Rs − R3 R2/R1), and that is exactly R3 + R4 when R4 = R2 and R1 = R3: for SBOA437A's Figure 1-2 resistors without the trim, 51.0 kΩ. In that form the 10 mA source loses 0.78 % into 100 Ω; for SBOA436's design without the trim, R4 = 10 kΩ, the loss is 0.27 % into 500 Ω. SBOA437A notes the error "is more apparent when the design does not use the modified R4 resistor".

With the trim exact, the denominator is zero and the output impedance infinite, so what sets it in a real circuit is how well the resistors match. SBOA436 note 3: "Resistor mismatch will contribute gain error and degrade CMRR of the circuit." SBOA437A puts a number on the CMRR: "Discrete builds with 0.1% tolerance resistors can have a worst-case CMRR value of around 60 dB, which can be too low for precision applications" (p. 3). The table is the worst output impedance over every combination of the five resistors at the extremes of their tolerance, for SBOA436's design, and the load-current error it causes at the 12.5 V of the 500 Ω load. It is derived, not printed in either note.

ToleranceWorst Zout, R4 = R2 − RsError at 500 ΩWorst Zout, buffered
0.01 %550 kΩ0.09 %550 kΩ
0.05 %110 kΩ0.45 %110 kΩ
0.1 %54.9 kΩ0.91 %54.9 kΩ
0.5 %10.9 kΩ4.57 %10.9 kΩ
1.0 %5.43 kΩ9.20 %5.43 kΩ

With 0.1 % parts the worst output impedance is 54.9 kΩ, and the load current can be 0.91 % off at 12.5 V; the error scales with the load voltage, so it is largest at the top of the compliance range. It scales inversely with the tolerance, and it is set by the ratio of the resistors, which is why SBOA437A's integrated designs use the INA592, whose matched on-chip resistors give it "a typical CMRR value of 100 dB as well as a typical gain error of 0.01%" (p. 6). The buffer does not rescue a mismatch: it removes the feedback current, but the balance condition is still a ratio of four resistors.

Where these models stop being valid

The op amp is assumed ideal. Offset voltage is the first departure: SBOA326's simulation above sits a near-constant 11 mA above the ideal line, the size of the op amp's offset across its 10 mΩ sense resistor. SBOA437A (p. 8): "Using precision op amps with very low offset voltage (< 100 µV) considerably reduces the error the circuit contributes." The smaller the sense voltage, the more an offset matters; the calculator warns below 10 mV.

The op amp must stay linear. SBOA325 note 6: "Use the op amp in a linear operating region. Linear output swing is usually specified under the AOL test conditions in the device data sheet." In the Howland pump that is the compliance limit itself; in the sink, the op amp's output has to reach the sense voltage plus the base-emitter drop, two of them for a Darlington.

DC and resistive loads only. The compensation parts in SBOA325 and SBOA326 are what keeps the loop stable, and nothing here models them. SBOA436 note 6: "Special precautions should be taken when driving reactive loads." SBOA437A (p. 1) is more specific: "some loads can cause the circuit to become unstable due to insufficient phase margin. Only resistive loads are discussed in this article."

Resistor values in the Howland pump trade against each other. SBOA436 note 4: "Placing high-value resistors will limit the effect of this current, but will add thermal noise to the circuit. Possible bandwidth limitations and stability issues caused by large resistances and parasitic capacitances in the circuit also become more prevalent."

The LM317 has limits of its own. Below the minimum load current it may not regulate; with less than 3 V of headroom "The device potentially drops out" (§7.4.2); and its input-to-output differential is limited to 40 V (§6.3). The calculator checks all three.

Common constant current source mistakes

Further reading