How to make a constant current source

I don't understand current sources! Batteries are voltage sources, but how does one actually implement a current source?

Here's a current source circuit that uses an op-amp: -

enter image description here

This type of current source relies on Vset being applied to the non-inverting input of the op-amp. Due to the op-amp having a massive open-loop gain, the inverting input can be reasonably thought to be at the same voltage as the non-inverting input. The op-amp achieves this with negative feedback - its output drives a transistor until the voltage across Rset equals Vin. Hence current out of collector is: -

I = \$\dfrac{Vset}{Rset}\$

There are many more types of current source that produce similar results BUT the load resistance has to be within a limited range. Zero ohms is OK but trying to push 1mA through a 10k resistor on a 5V supply won't work.

On your picture, Iref can come from anywhere - an external signal or a resistor connected to a power supply - the I ref current is easily calculated because M1 acts as a low impedance with a volt drop across it - it's better to look at the equivalent BJT circuit because the volt drop is clearly "0.7V" when base is tied to collector.


The implementation of this current mirror relies on the fact that VDD is constant, the resistor has a known value and VGS will have constant working point that you can retrieve from the datasheet (or by experimentation).

Knowing VDD and VGS are constant, you can calculate the current in the left branch with Ohm's law. Then if both transistors are closely matched, the currents in both branches will be identical. Notice that whatever you do in the right branch, there is no way it can influence the current in the left branch.


At some point if you want to have a current source that is fixed in uA, you need a primary voltage or current source. The mirror (as its name implies) just reflects a known current (maybe higher or lower if you parallel transistors (change transistor geometry) or introduce one or more emitter resistors, so then more like a magnifying mirror).

In an IC (and outside) you can servo all kinds of different current sources off a single reference current using weighted mirrors and such like, but you still need that current. Some ICs bring that node out to a pin, and you connect a resistor to Vcc or whatever so all the current mirrors in the chip are scaled by that current (which is more-or-less stable if Vcc >> 0.6V).

A voltage reference and a resistor is a kind of reference current (though note that the voltage of a current mirror input is not zero and changes at about -2mV/°C, so it won't be stable with temperature changes unless the voltage reference you use has a matching characteristic).

One way to get a voltage reference is to make a band-gap reference, which is naturally about 1.25V, but can be amplified to whatever voltage you like.

One IC that's worth studying is the TI (nee Burr-Brown) REF200, which has a representative schematic supplied on the datasheet. It has two two-terminal current 100uA +/- 0.5% source/sinks and a precision current mirror (full Wilson current mirror with emitter degeneration resistors). Also see AB165 , which covers a wide range of current sources.

IMPLEMENTATION AND APPLICATIONS OF CURRENT SOURCES AND CURRENT RECEIVERS

enter image description here