Embedded HandbookApps
All sections › XIX. The analog path: op-amps and related parts
STM32F103, STM32F407, STM32G431 · level intermediate · 9 min read
Open in the interactive handbook

164. Real op-amp parameters: input bias current, supply noise, rail-to-rail

Section 56 covered the essentials: offset voltage, bandwidth, slew rate. This section covers what sits a few lines lower in the documentation and what people remember once the board is already assembled: input bias current and its compensation, supply noise, which is barely rejected at high frequencies, the offset step of a rail-to-rail input, and an output that is "rail-to-rail" only without a load. At the end everything comes together in one error budget for the channel — in ADC codes.

All numbers below come from an ngspice model with explicitly set parameters of a typical low-cost part: input bias current 100 nA, power supply rejection 100 dB rolling off from 10 Hz, a 1 mV offset jump when the input pairs switch over at 2.2 V, and an output that gets within 10 mV of the rail plus another 50 mV for every milliampere of load (50 Ω in series). A specific part has its own figures, but the behaviour is like this.

Terms used in the documentation

Term Meaning
input bias current (Ib) current flowing into the inputs
input offset current (Ios) difference between the two input currents
bias current compensation balancing the resistances seen by both inputs
power supply rejection ratio (PSRR) how well supply noise is suppressed
supply decoupling / RC filter filtering the amplifier supply
rail-to-rail input input range from one rail to the other
input pair crossover handover between the two input pairs
output voltage swing how close the output gets to the rails
output current current the output can source or sink
input offset voltage drift (TCVos) change of offset voltage with temperature
error budget all error sources of a channel added up
worst case / root sum square (RSS) straight sum / square root of the sum of squares
typical / maximum value usual value / guaranteed limit
test conditions conditions under which a parameter is measured

164.1 Input bias current and the compensating resistor

Current flows into the inputs of an amplifier with a bipolar input — say 100 nA. A non-inverting ×11 (Rf 100 kΩ, Rg 10 kΩ) around the midpoint of 1.65 V:

Source resistance at "+" Output error
0 Ω +10.00 mV
100 kΩ −99.99 mV
9.1 kΩ ≈ Rf ∥ Rg −0.01 mV

With zero source resistance the error comes from the current of the inverting input flowing through Rf: 100 nA · 100 kΩ = 10 mV. With a 100 kΩ source the "+" current makes a voltage drop across it, and this drop is amplified 11 times. If the resistance at "+" is made equal to Rf ∥ Rg — here 9.09 kΩ, a 9.1 kΩ is used — the two drops subtract, and the error falls 1000 times: from 10 mV to hundredths of a millivolt.

Input bias current compensation: the resistance at the non-inverting input equals Rf ∥ Rg

Compensation does not remove the input offset current. Equal currents subtract, but the difference does not. Say 110 nA flows into "+" and 90 nA into "−": the same circuit with 9.1 kΩ gives −2.01 mV — that is the 20 nA difference across Rf. The documentation lists it on a separate line, and for a compensated circuit the calculation uses this value, not the input bias current itself.

FET input. The input bias current is a few picoamperes at 25 °C, but that is mostly leakage of the input protection diodes, and it doubles roughly every 10 °C: 1 pA at 25 °C becomes 64 pA at 85 °C. On a 10 MΩ source that is already 0.64 mV — for sensors with a high internal resistance the "at 25 °C" line guarantees nothing.

One more consequence of a single supply: the experiment is set up around the midpoint of 1.65 V, because with a 0 V reference the input bias current would pull the input below ground, and the output would hit the rail.


164.2 Supply noise and frequency

Power supply rejection is huge at low frequency, but it falls by 20 dB per decade. For the follower in the model, this much reaches the output:

Ripple frequency At the output
100 Hz −76.4 dB
1 kHz −56.5 dB
10 kHz −36.5 dB
100 kHz −16.5 dB

The numbers are 3.5 dB higher than rejection alone gives (−80 dB at 100 Hz): in the model the noise also passes through the output stage, which is referred to the supply midpoint — that adds another half of the first path. Real amplifiers can behave this way too, so trust the rejection graph in the documentation, not a single figure.

A switching regulator works right in the hundreds of kilohertz: its 50 mV ripple at 100 kHz reaches the amplifier output as 7.5 mV — several codes of a 12-bit ADC.

Supply filter. A 10 Ω resistor and a 10 µF capacitor in front of the amplifier supply pin — a corner at 1.59 kHz. At 100 kHz it adds another 36 dB: the follower gets −52.5 dB, and the same 50 mV becomes 0.12 mV. The drop across 10 Ω at a supply current of 1 mA is 10 mV, which does not bother the amplifier; a 100 nF ceramic capacitor is still placed right at the pin — the filter works at kilohertz, the ceramic at megahertz.

RC filter for the analog amplifier supply: 10 Ω and 10 µF after a switching regulator

A circuit with gain amplifies the noise too. Power supply rejection in the documentation is referred to the input — the noise adds to the offset and goes through the circuit with its gain. A non-inverting ×11 behind the same filter: at 1 kHz −37.1 dB — exactly 20.8 dB (×11) more than the follower; at 100 kHz −34.8 dB, 0.91 mV. This is less than 11 × 0.12 mV, because the bandwidth of ×11 with 1 MHz is 91 kHz, and at 100 kHz the gain is already rolling off.

How much supply ripple reaches the output: follower, follower behind a filter, ×11 behind a filter


164.3 Rail-to-rail input: the offset step

For the input to work from rail to rail, there are two input pairs inside: one works near the bottom rail, the other near the top. Somewhere around the upper third of the range operation is handed over from one to the other, and the offset voltage changes in a jump.

The model is a follower: the error is 0 mV up to 1 V, 0.50 mV right at the threshold of 2.2 V and 1.00 mV above it. For a follower this is a trifle, but a non-inverting ×50 turns the same step into 50 mV at the output — in the middle of the scale.

Follower error as the input is swept from rail to rail: a 1 mV step at the pair crossover

The cure is a choice: a part with a single input pair and an internal charge pump, or a circuit operating point that does not cross the threshold.


164.4 Rail-to-rail output under load

The "rail-to-rail" output swing in the documentation is given at a specified load. A follower pulls towards 3.3 V and towards zero, with the load returned to the midpoint of 1.65 V:

Load Top Bottom
1 MΩ 3.29 V 0.01 V
100 kΩ 3.29 V 0.01 V
10 kΩ 3.28 V 0.02 V
4.7 kΩ 3.27 V 0.03 V
1 kΩ 3.21 V 0.09 V
470 Ω 3.13 V 0.17 V

With a 1 kΩ load the top of the ADC scale loses 0.09 V — about 110 codes of a 12-bit ADC. If the output drives something low-impedance, the margin at the rails is calculated from the load current, not from the first row of the table.

Output swing of a "rail-to-rail" output with loads from 1 MΩ to 470 Ω


164.5 The channel error budget

Let us put everything into one channel: a sensor through the compensated ×11 from 164.1 into a 12-bit ADC with a 3.3 V reference, one code is 0.806 mV. We take the maximum values from the documentation: offset 1 mV, offset drift 5 µV/°C, input offset current 20 nA. The board works up to 85 °C, powered from a switching regulator with 50 mV ripple at 100 kHz through the 10 Ω / 10 µF filter from 164.2.

Source How calculated At the output Codes
offset 1 mV × 11 11.00 mV 13.7
input offset current model, 164.1 2.01 mV 2.5
offset drift 5 µV/°C × 60 °C × 11 3.30 mV 4.1
supply ripple model, 164.2 0.91 mV 1.1
sum worst case 17.22 mV 21.4
root sum square sources are independent 11.69 mV 14.5

The sum is a guarantee: this is what you get on the worst board, if all sources go the same way. The root sum square is an estimate for most boards: independent sources rarely all go the worst way at the same time.

The share matters more than the total. Three quarters of the error comes from the constant terms: offset and input offset current, 13.01 mV. A zero calibration at 25 °C removes them — measuring the output with zero signal and subtracting it in software. What remains is drift and ripple: 4.21 mV, 5.2 codes, and 3.30 mV of that is drift. From here on it pays more to look for a part with lower drift than to filter the supply even harder.

All of these are zero errors: they are the same at any signal. At full scale a gain error is added to them. The gain is set by resistors: with 1 % tolerance on each, in the worst case it is between 10.80 and 11.20, that is ±1.8 %, and with a 3 V signal at the output this is up to 55 mV — 68 codes, three times the whole table. The ADC reference errs the same way — as a percentage of full scale — and the ADC itself adds its own total error: for the F103 and F407, up to ±5 codes per the datasheet. A zero calibration removes the offset, a two-point calibration also removes the gain error; after it, drift and the ADC's own error remain.

Error budget of the ×11 channel in ADC codes: contribution of each source, sum, root sum square, after calibration

Ripple is an AC quantity: averaging many samples reduces it, as long as the sampling rate is not a multiple of the ripple frequency. Averaging does not touch the constant terms.


164.6 How to read the parameter table


164.7 Pitfalls

The error grows with sensor resistance, while the part's offset is small. The input bias current across the source resistance; make the resistance at "+" equal to Rf ∥ Rg.

The compensating resistor is in place, but the error is still millivolts. The calculation used the input bias current, but what remains is the input offset current across Rf.

The switching regulator frequency is visible at the output. Power supply rejection at hundreds of kilohertz is almost zero — a supply filter.

A jump of tens of millivolts appeared in the middle of the scale. The input pair crossover of a rail-to-rail input, amplified by the circuit.

The top ADC codes are never reached. The output swing is specified without a load or at 10 kΩ, while the circuit is loaded with a kilohm.

Zero was calibrated at room temperature, but when warm the zero moved again. Offset drift cannot be calibrated at a single point; after calibration it is the largest term in the budget.

When warm, the readings drift more than the table promises. The calculation used typical values at 25 °C.


164.8 Summary

Next: section 165 "Noise".

Open in the interactive handbook