I need a constant current of 10uA through a variable resistor in the 100k values. I need to inject the current into that resistor and I need the resistor to be connected to Ground such that I can measure the voltage across it with a microcontroller(writing this I figured I could just read the voltages in both points and substract them, but oh well). So how do I do this with discrete components? I heard that current mirrors don't work with discrete components. I don't know if using an operational amplifier and a sense resistor, I would be able to source/sink such a small current. Is a current limiting circuit better? I don't really need to inject the current, I just need constant 10uA.

What's a reliable, stable and fairly exact 10uA current source/sink that I can build with discrete components and without any IC's as I don't want to wait for themto ship to me?

Edit: I'm working with supply voltages in the range 5v-12v

Edit 2: 1% accuracy is just fine. Heck, even 5% accuracy is fine, anything below 10% is fine. My load is a 220k resistor at it's maximum (it's actually a 100k thermistor, but that's as high as it will get). And my supply would be 5V, so in order to get 10uA through it, I would need to supply about 2.2V, so no problem there.

  • 2
    \$\begingroup\$ Define "fairly accurate". 10%? 1%? \$\endgroup\$ – Spehro Pefhany Jan 16 '15 at 18:22
  • 1
    \$\begingroup\$ Can you put some numbers on your requirements? What's the maximum voltage you might need to apply to your load to get 10 uA through it? And just how accurate do you need it to be? 5%, 1% or 10 ppm specs might give very different answers. \$\endgroup\$ – The Photon Jan 16 '15 at 18:22
  • 1
    \$\begingroup\$ Do you have any voltage reference IC's? I use figure 1 here. ti.com/lit/an/sbva001/sbva001.pdf \$\endgroup\$ – George Herold Jan 16 '15 at 18:25
  • \$\begingroup\$ Ok, sorry. 1% accuracy is just fine. Heck, even 5% accuracy is fine, anything below 10% is fine. My load is a 220k resistor at it's maximum (it's actually a 100k thermistor, but that's as high as it will get). And my supply would be 5V, so in order to get 10uA through it, I would need to supply about 2.2V, so no problem there. \$\endgroup\$ – Calin Jan 16 '15 at 18:30
  • \$\begingroup\$ Goerge, might that fit in my 1-10% accuracy limit if I use a zener diode as the voltage reference? \$\endgroup\$ – Calin Jan 16 '15 at 18:34

There are many ways to do this. Since you didn't specify accuracy or compliance range, this will do:

Let's say you want to keep about 2 V on R1, which would make it around 200 kΩ. That would make the zener diode about 2.6 V. This will have some temperature dependence due to the B-E drop being part of the reference voltage. But, with only 4 cheap and small parts it's simplicity, size, and cost is very good. Size R2 to keep just enough current thru the zener for it to regulate its volage well. 1 mA works well enough with most zeners, but see the datasheet.

A more complicated but more accurate circuit is:

The opamp actively regulates the voltage across R1 to match the zener voltage. With 5.6 V across R1, 10 µA will always flow thru it. This same current is also the load current, which is how the load current is regulated.

Now that you've said 12 V is available, we can use that to get some idea of compliance range. Q1 can be just about any low voltage P-channel MOSFET. It's on resistance will be so low compared to 560 kΩ as to be irrelevant. This current source can therefore drive the output up to the supply minus the current sense resistor voltage, or 12 V - 5.6 V = 6.4 V.

  • \$\begingroup\$ The op-amp circuit might work in my 1-10% compliance range. Thanks, I'll try it out! \$\endgroup\$ – Calin Jan 16 '15 at 18:53
  • \$\begingroup\$ @Calin: That makes no sense. Compliance range of a current source has units of EMF, usually expressed in volts. \$\endgroup\$ – Olin Lathrop Jan 16 '15 at 19:04
  • \$\begingroup\$ Ok, I though compliance range was the accuracy, how far of from 10uA I can get. I meant 10uA +- 10%. The allowed error. \$\endgroup\$ – Calin Jan 16 '15 at 19:09
  • 1
    \$\begingroup\$ @Calin: 10 uA +-10% specifies accuracy. Compliance range is the output voltage range over which the current source can regulate the current within the specified accuracy limits. \$\endgroup\$ – Olin Lathrop Jan 16 '15 at 19:16
  • \$\begingroup\$ Another incredibly helpful answer from @OlinLathrop, which makes this site so worth while! \$\endgroup\$ – macduff Jan 16 '15 at 22:34

Something like this will give you a fairly constant current. It's only (as in not quite as) stable as your 12V supply, but it has quite good compliance & output resistance and reasonable temperature stability for normal room temperature type changes (maybe +/- a couple % for +/- 10°C change). Ideally, put the BJTs face-to-face with a touch of thermal grease between them and shrink wrap around them.

One can do much better with an op-amp and a proper reference, but this will work and meets your stated requirement of using only discrete components and no ICs.


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ Hey, you can make a jfet current source too. I've never done it. And I don't know if it would work at these lowish currents? \$\endgroup\$ – George Herold Jan 16 '15 at 19:11
  • \$\begingroup\$ Sure, just a JFET and a suitably high-value resistor. I don't think it would be nearly as good as the above performance-wise (output resistance especially). \$\endgroup\$ – Spehro Pefhany Jan 16 '15 at 19:13

A very basic current limiter is something like the image below. Replace Vbattery with your load. R2 is made to be Vemitter / 10uA.

The two diodes can either be two diodes or a zener diode with a value of (VR2 + Vbe) where Vbe is approximately 0.7 volts. R1 controls the operating point of the diodes or the zener.

For example:
If you wanted VR2 to be 0.2V. Then you set R2 to 0.2V / 10uA = 20k

Vb ~= 0.2V + 0.7V = 0.9V Find a diode that when driven with a specific current operates at 0.9V. Then use R1 to approximately drive it to that current.

enter image description here

  • \$\begingroup\$ I'm worried about Vbe being aproximatively 0.7 volts, and the voltage drop on the diodes being aproximatively 0.6-0.7 volts as well. How will that affect my final precision? Will it be less than 10% ? If I measure the voltages on the diodes and the BE junction as the circuit is running, would these values change with temperature? Or would I be able to use these measured, exact values, to calculate R2? \$\endgroup\$ – Calin Jan 16 '15 at 18:51
  • \$\begingroup\$ Vbe is dependent upon the threshold voltage of the transistor which varies transistor to transistor. The same thing goes for diode voltages. You would have to adjust the resistors to match the transistor/diode variation. Once you've trimmed it up, it will give a you an under 10% accuracy once built. Whether it will over temperature is another thing entirely. That depends on the diodes and transistors you use as well as the temperature swing you intend to place on them. \$\endgroup\$ – horta Jan 16 '15 at 18:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.