A voltage-controlled current source (VCCS) is an active circuit that forces a specific output current through a load, where that current is strictly proportional to an input control voltage, regardless of changes in the load's resistance. In a standard resistive circuit, the load dictates the current draw via Ohm’s Law. A VCCS flips this paradigm entirely: the source dictates the current, and the voltage across the load adjusts automatically to maintain it. Think of it like a variable-displacement water pump where the control dial (voltage) sets an exact flow rate (current); if you pinch the hose (increase resistance), the pump automatically increases its pressure (compliance voltage) to keep the flow identical.
The Core Math and a Worked Numeric Example
The most common way to build a precision VCCS on the bench is using an operational amplifier (op-amp) driving a MOSFET, with a shunt resistor in the source leg for feedback. The op-amp compares your control voltage to the voltage drop across the shunt resistor and adjusts the MOSFET's gate to keep them equal.
- Set the Control Voltage ($V_{in}$): Apply a stable DC voltage to the non-inverting input of the op-amp. Let's use 0.50V from a DAC or voltage divider.
- Choose the Sense Resistor ($R_{sense}$): Select a low-value, high-wattage resistor for the MOSFET source. We will use a 0.5Ω 2W metal film resistor.
- Calculate Output Current ($I_{out}$): The op-amp forces the voltage at the inverting input to match $V_{in}$. Therefore, $I_{out} = V_{in} / R_{sense}$. In our case, $0.50V / 0.5Ω = $ 1.0 Ampere.
- Verify Compliance Voltage: If your load is a 5Ω power resistor, it will drop 5.0V at 1A. The sense resistor drops 0.5V. The MOSFET needs at least 1V across drain-to-source ($V_{DS}$) to stay in saturation. Total minimum supply voltage required: $5.0V + 0.5V + 1.0V = 6.5V$. A 12V supply gives you plenty of headroom.
If the load resistance suddenly jumps to 8Ω, the op-amp senses the current dropping. It immediately drives the MOSFET gate higher, increasing the $V_{DS}$ drop across the MOSFET to push exactly 1.0A through the new 8Ω load. For a deep dive into op-amp feedback topologies, the Analog Devices current source guide provides excellent schematics for high-side and low-side variants.
Where You Meet a Voltage-Controlled Current Source in Practice
You might not see 'VCCS' printed on a schematic often, but the topology is hiding in plain sight across several major electrical and electronic domains:
- Industrial 4-20mA Loops: Process sensors (like pressure or temperature transmitters) use a VCCS to output a current strictly proportional to the measured variable. The control voltage comes from the internal ADC, and the current source ensures the signal survives long wire runs without voltage drop errors.
- Precision LED Dimming: High-power COB LEDs change their forward voltage drastically as they heat up. A VCCS ensures the current (and thus brightness and color temperature) remains rock-solid even as the LED's thermal resistance shifts.
- Battery Charging (CC Phase): During the constant-current phase of LiFePO4 or Li-ion charging, the charger's control loop acts as a VCCS, ramping the current to a safe limit dictated by a control voltage from the BMS or microcontroller.
- Audio Transconductance Amplifiers (OTA): In analog synthesizers and vintage guitar pedals, OTAs act as voltage-controlled current sources to modulate signal amplitude dynamically.
Real-World Scenario: The Gate Capacitance Trap
Theory is clean; the workbench is not. Here is a classic failure mode when building a VCCS for a high-power load.
The Setup: You need to drive a 50W LED array for a photography lightbox. You breadboard a low-side VCCS using an LM358 op-amp, an IRLZ44N logic-level N-channel MOSFET, and a 0.1Ω sense resistor. Your microcontroller outputs a PWM-filtered DC control voltage from 0.1V to 0.5V, targeting 1A to 5A.
The Numbers: At $V_{in} = 0.3V$, you expect exactly 3.0A. Your 12V power supply is rated for 10A, and the IRLZ44N is bolted to a massive heatsink.
The Outcome: When you power it on, the LED flickers violently at a high frequency. The LM358 op-amp gets blisteringly hot within seconds, and you can hear a faint, high-pitched buzzing from the breadboard.
What Went Wrong: You forgot about parasitic capacitance. The IRLZ44N is a beefy power MOSFET with a high input capacitance ($C_{iss}$) of roughly 2200pF. In a high-gain feedback loop, this gate capacitance introduces a low-frequency pole that adds phase shift. The LM358, lacking the internal bandwidth to handle this phase margin loss, breaks into high-frequency parasitic oscillation (often in the 100kHz to 1MHz range). The op-amp is essentially short-circuiting its own output internally trying to charge and discharge that 2200pF capacitor millions of times a second.
The Fix: 1. Add a 100Ω gate stopper resistor in series between the op-amp output and the MOSFET gate to isolate the capacitive load. 2. Add a 10nF Miller compensation capacitor between the op-amp's output and its inverting input to roll off the high-frequency gain and restore phase margin. For more on stabilizing op-amps driving capacitive loads, the All About Circuits design guide breaks down the exact Bode plot math.
VCCS vs. Fixed Current Sources and Voltage Regulators
A common point of confusion on the bench is mixing up a true VCCS with fixed current limiters or standard voltage regulators. Here is how they differ in practice:
| Feature | Voltage-Controlled Current Source (VCCS) | Fixed Current Source (e.g., LM317 CC) | Voltage Regulator (LDO / Buck) |
|---|---|---|---|
| Primary Output | Current (proportional to $V_{in}$) | Current (fixed by a static resistor) | Voltage (fixed or adjustable) |
| Control Method | Dynamic external voltage (DAC, MCU) | Hardware resistor swap | Resistor divider or fixed internal bandgap |
| Load Behavior | Voltage across load varies to maintain $I$ | Voltage across load varies to maintain $I$ | Current varies based on load resistance |
| Typical Use Case | 4-20mA loops, programmable LED drivers | Dumb battery charging, simple LED limiting | Powering logic ICs, microcontrollers |
If you are using an LM317 with a resistor between the OUT and ADJ pins to power an LED, you have built a fixed current source. It is not a VCCS because you cannot dynamically change the current on the fly by feeding it a varying analog voltage from a microcontroller without adding complex external switching circuitry.
Frequently Asked Questions
Can I use a BJT instead of a MOSFET for a VCCS?
Yes, and for low-current applications (under 100mA), an NPN BJT like the 2N2222 is often better. BJTs don't suffer from the massive gate capacitance ($C_{iss}$) that causes MOSFET oscillation, meaning your op-amp loop will be inherently more stable without needing compensation capacitors. However, BJTs require continuous base current, which introduces a small gain error (the emitter current is $I_c + I_b$), whereas MOSFETs draw virtually zero steady-state gate current, making them far more accurate for precision metrology.
What happens to a VCCS if the load is disconnected (open circuit)?
The op-amp will drive the MOSFET gate to its maximum positive rail trying to force current through an infinite resistance. The voltage at the MOSFET drain will pull down to ground (in a low-side configuration), but no current will flow. While this won't immediately destroy the MOSFET, the op-amp output will be saturated hard against the positive rail. When you reconnect the load, you may experience a massive current spike (overshoot) as the op-amp recovers from saturation and the MOSFET gate capacitance discharges. Always add a clamp diode or a zener on the gate-to-source to protect the MOSFET during open-load faults.
Why does my VCCS current drop when I use long wires to the load?
You have hit the compliance voltage limit. If your power supply is 12V, and your long, thin wires have a combined resistance of 2Ω, pushing 3A through those wires drops 6V before the current even reaches the load. Add the load voltage, the sense resistor voltage, and the MOSFET $V_{DS(sat)}$, and you will easily exceed the 12V supply limit. The op-amp maxes out its gate drive, and the circuit reverts to acting like a simple, current-limited voltage source. Thicker wires or a higher supply voltage is required.






