A transimpedance amplifier that oscillates because a capacitor is missing
A photodiode with 100 pF junction capacitance feeds a transimpedance amplifier built around an op-amp with 10 MHz gain–bandwidth product, 5 pF input capacitance and ±15 V rails. The feedback resistor is Rf = 1 MΩ and no feedback capacitor was fitted, because the designer wanted maximum bandwidth. The photodiode is socketed and connected by 20 cm of cable. At maximum illumination the photocurrent is 10 µA, so the DC output is nominally 10 V, and the intended signal band is DC to 100 kHz. On the bench the output shows a sustained oscillation at about 115 kHz, roughly 400 mV peak-to-peak, superimposed on the expected DC level; it disappears when the photodiode is removed. The layout has the feedback resistor 15 mm from the inverting input and a ground plane under the amplifier.
1. Derive the frequency at which the loop loses its phase margin and show that it matches the observed 115 kHz oscillation. Decide whether the cable or the missing feedback capacitor is the root cause.
Read the worked answer
The loop. The photodiode and input capacitance appear directly at the summing node, so the feedback factor is
β(s) = 1 / (1 + s·Rf·C_tot)
with C_tot = 100 pF (photodiode) + 5 pF (op-amp) + roughly 20 pF of cable and stray = 125 pF.
The noise gain 1/β has a zero (a flat-then-rising response) at
f_p = 1/(2π·Rf·C_tot) = 1/(2π × 1e6 × 125e-12) = 1.27 kHz.
Above f_p the noise gain rises at 20 dB/decade and meets the op-amp's open-loop roll-off (10 MHz) where
1/β = f_u/f ⇒ f = √(f_p·f_u) = √(1.27 kHz × 10 MHz) ≈ 113 kHz.
At that frequency the loop gain is unity with the noise gain still rising at 20 dB/decade, and the op-amp's own pole adds another 90°. Total loop phase is essentially 180°: phase margin ≈ 0. Any perturbation rings at the crossover frequency, which is exactly the ~115 kHz observed. The 400 mV amplitude is set by the op-amp's nonlinearity, not by the linear loop.
Root cause. The cable contributes about 20 pF out of 125 pF - roughly 16% of C_tot, and it shifts f by only 10% (113 kHz to 123 kHz). Removing it does not cure anything; the designer is chasing the wrong variable. The missing Cf leaves the loop with a zero in the noise gain that nothing compensates, and that is the defect.
2. Select a feedback capacitor that restores stability while keeping the 100 kHz signal band, and state the resulting phase margin, bandwidth and DC error budget.
Read the worked answer
Design equation. For a maximally flat (Q ≈ 0.7) closed loop,
Cf ≈ √( C_tot / (2π·Rf·f_u) ) = √( 125e-12 / (2π × 1e6 × 1e7) ) = √(1.99e-24) ≈ 1.4 pF.
Choose 1.5 pF (a 1.5 pF C0G/NP0 part, plus the 0.3–0.5 pF of unavoidable stray across a 15 mm layout).
Resulting performance.
- Feedback pole: 1/(2π × 1e6 × 1.5e-12) = 106 kHz, which sits just below the 113 kHz crossover - the zero now bends the noise gain down before it reaches f_u, restoring roughly 45–60° of phase margin.
- Closed-loop −3 dB bandwidth: ≈ 100–110 kHz. This just meets the 100 kHz requirement, with no room for layout strays. Verify on a step response: slight overshoot, no sustained ringing.
- Slew check: a 10 V output at 100 kHz needs 2π × 1e5 × 5 V = 3.1 V/µs, well inside the 20 V/µs rating, so the op-amp is not the limit.
- DC error: Rf tolerance and the op-amp's input bias current across 1 MΩ dominate. 1 µA of bias current is 1 V of offset at the output, so an FET-input or low-bias part is mandatory.
Judgement. 1.5 pF is a tight, layout-sensitive design. If the bandwidth spec were negotiable, 2.2 pF would give ~72 kHz and a far more forgiving Q; if it is not, the more robust route is to reduce Rf and add a second gain stage.
3. A colleague proposes simply fitting Cf = 10 pF 'to be safe'. Evaluate that proposal quantitatively, and give the alternative that preserves bandwidth.
Read the worked answer
What Cf = 10 pF does.
The feedback network now dominates: the closed-loop −3 dB point is approximately
f_−3dB ≈ 1/(2π·Rf·Cf) = 1/(2π × 1e6 × 10e-12) = 15.9 kHz.
The loop is heavily over-damped (Q well below 0.5), so it will be exceptionally stable and very slow. The 100 kHz signal band is lost by a factor of six: fast photodiode pulses will be integrated into broad humps, and any modulation above 16 kHz is simply gone. The oscillation disappears for the wrong reason - the loop gain is rolled off before it can ring.
Bandwidth-preserving alternatives:
- Reduce Rf and add gain later. With Rf = 100 kΩ and the same 125 pF node capacitance, f_p rises to 12.7 kHz, crossover to √(12.7 kHz × 10 MHz) ≈ 356 kHz, and the optimum Cf becomes ≈ 4.5 pF. The transimpedance drops from 1 V/µA to 0.1 V/µA; a following ×10 stage restores the level. The cost is noise: the Johnson noise of 1 MΩ is about 129 nV/√Hz, of 100 kΩ about 41 nV/√Hz, so this is actually a noise improvement as long as the second stage does not add more than its share - the input-referred current noise rises as √(4kT/Rf), which is the real trade.
- Faster op-amp. Doubling f_u to 20 MHz raises the optimum Cf only as 1/√f_u and pushes the achievable bandwidth up, at the cost of more gain peaking sensitivity.
The right answer is (1): pick Cf for Q ≈ 0.7 at the bandwidth you actually need, and never choose Cf 'for safety' without computing the pole it creates.