A BJT current mirror is a two-transistor circuit that forces the output collector current to precisely copy a programmed reference current, acting as a programmable, high-impedance active current source. In real circuits, this changes everything: it replaces massive, silicon-hogging bias resistors in integrated circuits with compact transistors, and in discrete audio or RF designs, it provides a stiff active load that dramatically multiplies voltage gain compared to a passive resistor. Beginners commonly confuse a current mirror with a simple constant current source (like an LM317 regulator circuit); while a mirror outputs a constant current, its defining feature is that the output is strictly slaved to a separate reference branch, scaling dynamically if the reference changes.
The Core Concept: Master and Slave Valves
To visualize the physics without getting lost in semiconductor equations, think of the reference transistor as a master valve setting the water pressure, and the output transistor as a slave valve mechanically linked to open exactly the same amount. Because both Bipolar Junction Transistors (BJTs) share the same base-emitter voltage (Vbe), and assuming they are physically identical and at the same temperature, they must pass the same collector current.
In a basic two-transistor mirror, the reference transistor (Q1) is diode-connected—its base and collector are shorted together. A resistor from the supply voltage (VCC) to Q1's collector sets the reference current (I_ref). The base-emitter junctions of Q1 and Q2 are wired in parallel. Whatever Vbe is required to push I_ref through Q1 is applied identically to Q2, forcing Q2's collector current (I_out) to match.
Worked Numeric Example: Sizing a 5mA Discrete Mirror
Let's design a basic current mirror to sink exactly 5.0 mA using standard 2N3904 NPN transistors and a 12V DC supply. Here is the step-by-step bench math, including the non-ideal base current error that textbook diagrams often ignore.
Step 1: Calculate the Reference Resistor (R_ref)
First, we need to establish the voltage drop across R_ref. A typical 2N3904 exhibits a Vbe of roughly 0.68 V at a 5mA collector current at room temperature (25°C).
- V_Rref = VCC - Vbe = 12.0 V - 0.68 V = 11.32 V
- Ideal R_ref = V_Rref / I_out = 11.32 V / 0.005 A = 2264 Ω
We select the nearest standard 1% resistor value: 2.26 kΩ (or 2.2 kΩ for a 5% E12 series, which yields ~5.14 mA).
Step 2: Account for Base Current (Beta) Error
The textbook assumes all of I_ref goes into Q1's collector. In reality, Q1 and Q2 both draw base current. If the 2N3904 has a typical DC current gain (β or hFE) of 150 at 5mA:
- I_base (per transistor) = I_c / β = 5 mA / 150 = 33.3 μA
- Total base current stolen from R_ref = 2 × 33.3 μA = 66.6 μA
This means the actual current flowing through Q1's collector is I_ref minus the base currents. The output current I_out will be slightly lower than intended—roughly a 1.3% error. For driving an LED, this is irrelevant. For biasing a precision transconductance amplifier, this error is unacceptable, which leads us to advanced topologies.
Where You Meet BJT Current Mirrors in Practice
You rarely see discrete current mirrors in basic hobbyist Arduino shields or simple power supplies, but they are the backbone of analog IC design and high-end discrete audio.
- Op-Amp Input Stages: The 'tail' of a differential pair is almost always a current mirror, providing a high-impedance DC bias that rejects common-mode noise while allowing high differential gain.
- LED Matrix Drivers: Sinking equal current across parallel LED strings without needing individual, heat-generating ballast resistors on every single column.
- Audio Amplifier Biasing: Providing a stable, temperature-compensated bias current for Class AB output stages, often configured as a Vbe-multiplier (a variation of the mirror concept).
Overcoming Non-Ideal Effects: Beta and Early Voltage
When you move from simulation to the breadboard, two physical realities degrade your mirror's accuracy. Understanding these is what separates a working circuit from a precision instrument.
The Early Effect (Finite Output Impedance)
In an ideal world, I_out remains perfectly flat regardless of the voltage across Q2's collector-emitter (Vce). In reality, as Vce increases, the effective base width shrinks (base-width modulation), causing I_out to creep upward. This is modeled by the Early Voltage (V_A), typically 50V to 100V for small-signal BJTs. This means your 'constant' current source actually has a finite output resistance (roughly V_A / I_c), limiting your amplifier's maximum voltage gain.
Thermal Mismatch and Runaway
Vbe has a negative temperature coefficient of roughly -2 mV/°C. If Q2 dissipates more power than Q1 (because it's dropping a higher Vce to drive a load), Q2 heats up. As it heats, its Vbe requirement drops, but Q1 is still forcing the same Vbe onto it. The result? Q2 draws exponentially more current, heats up further, and destroys itself. This is thermal runaway.
Topology Decision Tree: Which Mirror to Build
The basic two-transistor mirror is fine for LEDs, but fails in precision analog work. Use this decision matrix to select the right topology for your schematic.
| Topology | Output Impedance | Voltage Headroom Needed | Best Application |
|---|---|---|---|
| Basic (2-transistor) | Low (Limited by Early Effect) | Low (~0.8 V) | LED driving, non-critical biasing |
| Widlar | Medium | Low (~0.8 V) | Microamp currents, low-power IC tails |
| Wilson (3-transistor) | Very High (Cancels Beta error) | Medium (~1.5 V) | Precision biasing, high-gain active loads |
| Cascode (4-transistor) | Extremely High (Mitigates Early Effect) | High (~2.5 V+) | Ultra-high gain amplifiers, precision DACs |
The Default Pick for Discrete Precision Work
If you are designing a discrete analog front-end or repairing high-end audio gear and need a high-impedance, accurate current source without relying on laser-trimmed monolithic ICs, build a Wilson Current Mirror using a dual matched transistor like the BCM847 (SOT-23-6). The Wilson topology inherently cancels the base-current (beta) error, dropping the DC error from ~1.3% down to < 0.01%. Using a monolithic dual transistor like the BCM847 guarantees that both die are at the exact same silicon temperature and have tightly matched Vbe characteristics, entirely eliminating the thermal runaway risk inherent in using two separate TO-92 2N3904s.
FAQ: Troubleshooting and Matching
Why is my output current 15% lower than my reference current?
You are likely suffering from compliance voltage violation. The output transistor (Q2) must remain in the active region, meaning its Vce must be greater than its saturation voltage (Vce_sat, typically 0.2 V). If your load resistance is too high, the voltage at Q2's collector drops below ~0.3 V, the transistor saturates, and it can no longer act as a current source. Lower the load resistance or increase VCC.
Can I use two random transistors from the same bin?
For lighting an LED, yes. For analog signal paths, absolutely not. Discrete BJTs from the same manufacturing batch can have Vbe mismatches of 10 mV to 30 mV. Because the collector current scales exponentially with Vbe (governed by the Shockley diode equation), a mere 18 mV mismatch at room temperature will cause a 100% difference (a factor of 2) in output current. Always use monolithic dual transistors (like the BCM847 or MAT01) or manually match discrete pairs using a curve tracer.
How do I measure the output impedance on my bench?
Output impedance is the inverse of the slope of the I_out vs. Vce curve. Set up your mirror, place a multimeter in series with the output to read I_out, and use a variable power supply for the load voltage. Sweep the load voltage from 1V to 10V. If I_out changes by 10 μA over a 9 V sweep, your output impedance is ΔV / ΔI = 9 V / 10 μA = 900 kΩ. For deeper theoretical frameworks on calculating this mathematically, refer to the Analog Devices Linear Circuit Design Handbook or standard university solid-state coursework like MIT OCW 6.301.






