Maker Pro
Maker Pro

Low current source

W

Walter Harley

What is a good design for a current source on the order of 50nA, preferably
adjustable via a control voltage or variable resistor?

In the classic two-transistor circuit shown below, to get 50nA R1 needs to
be on the order of 10M, a bit awkward if I want a trimpot rather than a
fixed resistor. To get accuracy over varying supply voltage, R2 needs to be
at least 10 times R1; 100M resistors are available, but not in my junkbox.

___
I -> ------------ ---o---|___|--o-- V-
\ ^ | R1 |
--- | |
| | |
___ | --- |
V+ ---|___|-----o---/ v---------'
R2


A JFET with resistor from gate to source needs an even higher resistance to
go as low as 50nA, because Vgs >> Vbe; and because of the manufacturing
spread it is hard to predict the resistance needed. And JFET current
sources aren't as "stiff" as the BJT circuit.


I -> ------+ +---------o---- V-
--- |
^ |
| ___ |
'---|___|--'
R1


A Howland current source, using an opamp, also seems awkward; you can use
lower value resistors by using a lower control voltage, but if you go too
low you run into Vos. Opamps with very low Vos tend to either have
relatively high Ib, or relatively high cost.

All of those approaches share the same underlying problem: they try to
generate a current by putting a relatively large voltage (on the order of
1V) across a resistor.

Is there a better way, using standard readily-available components, to make
a current source in this range? Maybe a dividing current mirror, or
something based explicitly on the exponential nature of the Ic vs. Vbe
relationship (e.g., a log converter)?

Thanks,
-Walter
 
T

Tilmann Reh

Walter said:
What is a good design for a current source on the order of 50nA, preferably
adjustable via a control voltage or variable resistor?
...
A Howland current source, using an opamp, also seems awkward; you can use
lower value resistors by using a lower control voltage, but if you go too
low you run into Vos. Opamps with very low Vos tend to either have
relatively high Ib, or relatively high cost.

What about using a CMOS chopper opamp (like good ol' TC7650, or TC913)
as inverting (floating) current source?

Using an input voltage of 50 mV with an input resistor of 1M, you get
50 nA in the feedback path.
The TC913, for example, is specified with max 15µV Vos and an input bias
current of max 120 pA at 25°C - both should be sufficient.
 
W

Winfield Hill

Tilmann Reh wrote...
What about using a CMOS chopper opamp (like good ol' TC7650, or
TC913) as inverting (floating) current source?

A noisy leaky-input opamp that illustrates Walter's last comment.
Using an input voltage of 50 mV with an input resistor of 1M, you
get 50 nA in the feedback path.

All this dancing around and purchasing specialized parts, just to
help Walter avoid purchasing some high-value resistors, sheesh!
The TC913, for example, is specified with max 15µV Vos and an input
bias current of max 120 pA at 25°C - both should be sufficient.

Whew, 120pA, that's massive! 15uV is nice, but what a price to pay.

But I think opamps are a good way to go; Here's my entry, which has
two opamps. One is wired as a difference amplifier, and if one uses
an INA105 he'll get the required four precision resistors all ready
to go. My circuit uses one of NSC's LMC6061 low-offset CMOS series
of opamps, which are limited to 16V supply total, hence the unusual
supply voltages, but no problem, just whip out some of those three-
terminal regulators.

.. Win's Programmable Current Source
..
.. +25V
.. __|_ __ INA105
.. V -->----|+| \/ |
.. Prg | | >--+-------------,
.. ,--|-|__/\ |
.. | | \ +13V Rprg
.. GND -3V | _| |
.. | / +|--10k--+----O -->
.. Monitor ---<-----+-+-< | current
.. | \_-|--,
.. LMC6061 |____|___| I = Vprg / Rprg
.. | 0 to 10V compliance
.. -3V

If Rprg is 100M, an easy-to-get value, a 0 to 10V control voltage will
result in a 0 to 100nA output current. You can use a range switch to
select values of Rprg. With appropriate resistors, the circuit can
work from 0.1pA to 10mA. And, as a valuable circuit bonus, you get a
monitor output to observe the voltage across the device under test.
 
W

Winfield Hill

Walter Harley wrote...
What is a good design for a current source on the order of 50nA,
preferably adjustable via a control voltage or variable resistor?

In the classic two-transistor circuit shown below, to get 50nA R1 needs
to be on the order of 10M, a bit awkward if I want a trimpot rather than
a fixed resistor. To get accuracy over varying supply voltage, R2 needs
to be at least 10 times R1; 100M resistors are available, but not in my
junkbox.

___
I -> ------------ ---o---|___|--o-- V-
\ ^ | R1 |
--- | |
| | |
___ | --- |
V+ ---|___|-----o---/ v---------'
R2

You shouldn't hesitate to get some high-value resistors in your junkbox,
in my opinion, but it's certainly possible to create very small currents
without their use, if you wish. The trick is to take advantage of the
Ebers-Moll formula, which tells you that (at room temperature) for every
58mV you reduce the base-emitter voltage the collector current will drop
by 10x. If you take two matched PNP transistors (Analog Devices MAT03),
wire one as a diode and bias it at 5uA, to get an Ebers-Moll reference
voltage, and operate the second transistor's base from the first, minus
116mV, it'll put out 50nA for you. Piece of cake! If you use a say 20k
trimpot in place of the 13k resistor, you can adjust the output current
from 5nA to 5uA. The circuit draws 14uA from a fresh 9V battery.

.. 50nA current source without high-value resistors
..
.. 9V --+--- 13k ---+--- 1.0M ---,
.. | | |
.. e e gnd
.. b --+-- b
.. c | c MAT03
.. | | |
.. +-----' '----------O -->
.. | 50nA
.. 1.8M
.. |
.. gnd

Now, tell us why you need 50nA. What're ya goin' to do with it?
 
T

Tilmann Reh

Winfield said:
A noisy leaky-input opamp that illustrates Walter's last comment.

Please excuse me, but he did not mention *anything* except for the
current itself. These types were just examples, there surely are better
suited devices around meanwhile.
All this dancing around and purchasing specialized parts, just to
help Walter avoid purchasing some high-value resistors, sheesh!

I think both chips are far more common and less specialized than the
MAT03 you suggested for the BJT current source... :)
At least I can get them here very easy and cheap, even in really small
quantities.
Whew, 120pA, that's massive! 15uV is nice, but what a price to pay.

Note that this was the maximum specification. And there are better ones
around, meanwhile. Besides, if it it was 120 pA, that's only 0.24% of
the sourced current - and we still don't know anything about Walter's
requirements.
. Win's Programmable Current Source
[...]
If Rprg is 100M, an easy-to-get value, [...]

At least here a 100M resistor is much harder to get than the opamps I
mentioned... Especially if you don't accept 20% tolerance and horrible TC.

I think due to the many missing details in the OP, we simply took
different approaches - I took the simple, very cheap one, since Walter
complained about expensive parts, while you took the precise one.

As you already requested, Walter should provide some more details now...
 
W

Winfield Hill

Ken Smith wrote...
[....]
What's the 10K for ?
. Win's Programmable Current Source
.
. +25V
. __|_ __ INA105
. V -->----|+| \/ |
. Prg | | >--+-------------,
. ,--|-|__/\ |
. | | \ +13V Rprg
. GND -3V | _| |
. | / +|--10k--+----O -->
. Monitor ---<-----+-+-< | current
. | \_-|--,
. LMC6061 |____|___| I = Vprg / Rprg
. | 0 to 10V compliance
. -3V

The LMC6000 series of CMOS opamps do have amazing low-leakage
input-protection diodes, but they're small and vulnerable.
The 10k resistor limits input current during over-voltage, to
help protect the protection diodes.
 
F

Frank Miles

What is a good design for a current source on the order of 50nA, preferably
adjustable via a control voltage or variable resistor?

[snip]

If the current source can be relatively sloppy, but should be adjustable,
and must be _cheap_, you could use the base of the transistor as the output.
Vary the emitter resistor or the emitter resistor's supply voltage as the
control.

No claims made for accuracy or long-term stability.

-frank
--
 
J

Jim Thompson

What is a good design for a current source on the order of 50nA, preferably
adjustable via a control voltage or variable resistor?

[snip]

If the current source can be relatively sloppy, but should be adjustable,
and must be _cheap_, you could use the base of the transistor as the output.
Vary the emitter resistor or the emitter resistor's supply voltage as the
control.

No claims made for accuracy or long-term stability.

-frank

No claims, period ;-)

...Jim Thompson
 
W

Walter Harley

Winfield Hill said:
[...]
You shouldn't hesitate to get some high-value resistors in your junkbox,
in my opinion, but it's certainly possible to create very small currents
without their use, if you wish. The trick is to take advantage of the
Ebers-Moll formula, which tells you that (at room temperature) for every
58mV you reduce the base-emitter voltage the collector current will drop
by 10x. If you take two matched PNP transistors (Analog Devices MAT03),
wire one as a diode and bias it at 5uA, to get an Ebers-Moll reference
voltage, and operate the second transistor's base from the first, minus
116mV, it'll put out 50nA for you. Piece of cake! If you use a say 20k
trimpot in place of the 13k resistor, you can adjust the output current
from 5nA to 5uA. The circuit draws 14uA from a fresh 9V battery.

. 50nA current source without high-value resistors
.
. 9V --+--- 13k ---+--- 1.0M ---,
. | | |
. e e gnd
. b --+-- b
. c | c MAT03
. | | |
. +-----' '----------O -->
. | 50nA
. 1.8M
. |
. gnd

Thanks, Win. I like both your solutions, but this is the one that seems
simplest. (Tilmann, your post hasn't shown up on my news server yet, so I
can't respond to it yet.)

This circuit is sensitive to the power supply voltage, but that is probably
okay for my purposes. If I was worried about it, I could replace the 1.8M
and 1.0M resistors with current sources. I'd then have three different ways
to program the current: linearly with the "1.8M" current source, and
exponentially with the 13k resistor or the "1.0M" current source.

I did flirt with the circuit you show in fig 2.52 of AoE, the Wilson current
mirror with emitter resistor on the load side of the matched pair. But in
that circuit, the programming transistor's base current flows into the load,
so it's not good for high divisors. And then I went to bed :)

Now, tell us why you need 50nA. What're ya goin' to do with it?

It's probably not a good technique for my present problem, it's just
something that I came across while I was solving a problem, and I didn't
know a good answer so I figured I'd ask.

The problem that triggered the question is that I need a linear voltage ramp
from 0 to about 1V and back down, over an adjustable period from 0.1s to 5s,
with the ascent and descent rates separately adjustable. So, my first
thought was to switch a capacitor between two current sources (with voltage
clamps). I don't like the idea of using electrolytics for timing. 50nA
into a 0.47uF cap charges 1V in about 10 seconds.

Since I can have +/-15V supplies, even using a current source at all is
probably overkill; a high-valued resistor to the supply would give a
reasonably linear charge, between 0V and 1V. But that would still leave me
the problem of finding a 300M trimpot :)

A "modern" approach would be to use a microcontroller and a DAC; 8-bit
resolution is fine for what I need. I bought the equipment to start fooling
around with microcontrollers a couple years ago, and loaned it all to a
friend... Probably time to get it back.

FWIW, the reason for the ramp is to control a stereo audio VCA chip. In the
end what this is all about is making a device that fades an audio signal
down, and then back up, in response to a logic signal; it's for a little
community radio station that runs on autopilot overnight. So yet another
approach would be to use a digital potentiometer. But those have the
problem of "zipper noise" when used as faders.

Thanks,
-walter
 
T

Tilmann Reh

Walter said:
[...]
The problem that triggered the question is that I need a linear voltage ramp
from 0 to about 1V and back down, over an adjustable period from 0.1s to 5s,
with the ascent and descent rates separately adjustable.

I think the easiest solution to this problem is using a simple
integrator (opamp with capacitor in the feedback).

For separate adjustability of the slopes, use analog switches that
either connect the input to different positive/negative voltages, or use
one analog switch to reduce the input resistance for the shorter ramp,
or use different positive/negative voltage amplitudes of the driving
square wave.
FWIW, the reason for the ramp is to control a stereo audio VCA chip. In the
end what this is all about is making a device that fades an audio signal
down, and then back up, in response to a logic signal; it's for a little
community radio station that runs on autopilot overnight. So yet another
approach would be to use a digital potentiometer. But those have the
problem of "zipper noise" when used as faders.

You'd better written this in the OP already...
You really don't need an explicit current source. :)
 
J

Jim Thompson

Walter said:
[...]
The problem that triggered the question is that I need a linear voltage ramp
from 0 to about 1V and back down, over an adjustable period from 0.1s to 5s,
with the ascent and descent rates separately adjustable.

I think the easiest solution to this problem is using a simple
integrator (opamp with capacitor in the feedback).

For separate adjustability of the slopes, use analog switches that
either connect the input to different positive/negative voltages, or use
one analog switch to reduce the input resistance for the shorter ramp,
or use different positive/negative voltage amplitudes of the driving
square wave.
FWIW, the reason for the ramp is to control a stereo audio VCA chip. In the
end what this is all about is making a device that fades an audio signal
down, and then back up, in response to a logic signal; it's for a little
community radio station that runs on autopilot overnight. So yet another
approach would be to use a digital potentiometer. But those have the
problem of "zipper noise" when used as faders.

You'd better written this in the OP already...
You really don't need an explicit current source. :)

The JVC radio I'm listening to has a motor-driven pot.

...Jim Thompson
 
W

Walter Harley

Tilmann Reh said:
I think the easiest solution to this problem is using a simple
integrator (opamp with capacitor in the feedback).

Thanks. Yes, that would be another good way to make a voltage ramp. I
would have to think a little about how to clamp the voltages at the desired
end points, without introducing leakage across the capacitor.

You'd better written this in the OP already...
You really don't need an explicit current source. :)

I asked how to make an adjustable low-current current source without using
high-value resistors, because that was what I wanted to learn. It is true
that it does not happen to be especially relevant to the task at hand; but
it was an interesting (to me) question nonetheless.
 
W

Winfield Hill

Walter Harley wrote...
Winfield Hill wrote ...
[...]
You shouldn't hesitate to get some high-value resistors in your junkbox,
in my opinion, but it's certainly possible to create very small currents
without their use, if you wish. The trick is to take advantage of the
Ebers-Moll formula, which tells you that (at room temperature) for every
58mV you reduce the base-emitter voltage the collector current will drop
by 10x. If you take two matched PNP transistors (Analog Devices MAT03),
wire one as a diode and bias it at 5uA, to get an Ebers-Moll reference
voltage, and operate the second transistor's base from the first, minus
116mV, it'll put out 50nA for you. Piece of cake! If you use a say 20k
trimpot in place of the 13k resistor, you can adjust the output current
from 5nA to 5uA. The circuit draws 14uA from a fresh 9V battery.

. 50nA current source without high-value resistors
.
. 9V --+--- 13k ---+--- 1.0M ---,
. | | |
. e e gnd
. b --+-- b
. c | c MAT03
. | | |
. +-----' '----------O -->
. | 50nA
. 1.8M
. |
. gnd

Thanks, Win. I like both your solutions, but this is the one that seems
simplest. ... This circuit is sensitive to the power supply voltage,
but that is probably okay for my purposes. ...

For increasing and decreasing audio volume with voltage-controlled
gain, sure, you don't need precision. Neither do you need matched
IC transistors, just select two matched discrete parts (testing at
low currents to avoid thermal effects). If you need a little more
accuracy you can stabilize the voltages with a 2.5V reference, and
if you want you can add a third non-critical PNP to eliminate Early
effect errors by operating the matched transistors at similar Vce.

The output of such a circuit is PTAT. That is, assuming the top two
BJTs are at the same ambient temperature, the resulting current is
proportional-to-absolute-temperature, or about +0.3%/C, as you can
see by playing with the Ebers-Moll equations. If that was an issue,
you could use a PTC resistor for R1. I doubt you need any of this.

.. R1 R2
.. V+ --+---+--- 13k ---+--- 270k ---,
.. | | | |
.. | e e -2.5V
.. | b --+-- b
.. \_|_ c | c matched
.. /_\ | | | pnp pair
.. | +-----' |
.. 2.5V | | |
.. | 100k |
.. | | e cascode
.. | +-------- b pnp
.. | | c
.. | 300k '-----------O -->
.. | | 50nA
.. +---+----- -2.5V
.. |
.. '-- R_bias -- gnd
 
W

Walter Harley

Jim Thompson said:
The JVC radio I'm listening to has a motor-driven pot.

Yeah, I actually did think about that alternative; it would be appealingly
simple. I think they'd be worried about a motor-driven device, though, in
terms of long-term reliability. The device's function is to enable legal
IDs at night when no board operator is around; a worst-case failure could
equate to a lost license. Even in the best case, over time the pot will get
scratchy.

One advantage of the VCA approach is that the broadcast mixing consoles
themselves generally use VCAs. So it's familiar technology for the chief
engineer and thus easy to get approved. I can show him the section of the
console schematic that I copied the circuit from :)

But also, the motor-driven pots I've seen have a fixed rotational rate, and
aren't usually fast enough to go from zero to full on in less than a couple
of seconds.
 
J

Jim Thompson

Yeah, I actually did think about that alternative; it would be appealingly
simple. I think they'd be worried about a motor-driven device, though, in
terms of long-term reliability. The device's function is to enable legal
IDs at night when no board operator is around; a worst-case failure could
equate to a lost license. Even in the best case, over time the pot will get
scratchy.

One advantage of the VCA approach is that the broadcast mixing consoles
themselves generally use VCAs. So it's familiar technology for the chief
engineer and thus easy to get approved. I can show him the section of the
console schematic that I copied the circuit from :)

But also, the motor-driven pots I've seen have a fixed rotational rate, and
aren't usually fast enough to go from zero to full on in less than a couple
of seconds.

What are you using for a VCA, maybe from http://www.thatcorp.com/ ??

Why not just use a DAC, and vary the clock rate, to generate your
ramp?

I'm leery of using low currents in the "outside world". They're fine
on-chip, but in the "outside world" a dry fart will conduct 50nA ;-)

...Jim Thompson
 
F

Fred Bartoli

Winfield Hill said:
Walter Harley wrote...
Winfield Hill wrote ...
[...]
You shouldn't hesitate to get some high-value resistors in your junkbox,
in my opinion, but it's certainly possible to create very small currents
without their use, if you wish. The trick is to take advantage of the
Ebers-Moll formula, which tells you that (at room temperature) for every
58mV you reduce the base-emitter voltage the collector current will drop
by 10x. If you take two matched PNP transistors (Analog Devices MAT03),
wire one as a diode and bias it at 5uA, to get an Ebers-Moll reference
voltage, and operate the second transistor's base from the first, minus
116mV, it'll put out 50nA for you. Piece of cake! If you use a say 20k
trimpot in place of the 13k resistor, you can adjust the output current
from 5nA to 5uA. The circuit draws 14uA from a fresh 9V battery.

. 50nA current source without high-value resistors
.
. 9V --+--- 13k ---+--- 1.0M ---,
. | | |
. e e gnd
. b --+-- b
. c | c MAT03
. | | |
. +-----' '----------O -->
. | 50nA
. 1.8M
. |
. gnd

Thanks, Win. I like both your solutions, but this is the one that seems
simplest. ... This circuit is sensitive to the power supply voltage,
but that is probably okay for my purposes. ...

For increasing and decreasing audio volume with voltage-controlled
gain, sure, you don't need precision. Neither do you need matched
IC transistors, just select two matched discrete parts (testing at
low currents to avoid thermal effects). If you need a little more
accuracy you can stabilize the voltages with a 2.5V reference, and
if you want you can add a third non-critical PNP to eliminate Early
effect errors by operating the matched transistors at similar Vce.

The output of such a circuit is PTAT. That is, assuming the top two
BJTs are at the same ambient temperature, the resulting current is
proportional-to-absolute-temperature, or about +0.3%/C, as you can
see by playing with the Ebers-Moll equations. If that was an issue,
you could use a PTC resistor for R1. I doubt you need any of this.

. R1 R2
. V+ --+---+--- 13k ---+--- 270k ---,
. | | | |
. | e e -2.5V
. | b --+-- b
. \_|_ c | c matched
. /_\ | | | pnp pair
. | +-----' |
. 2.5V | | |
. | 100k |
. | | e cascode
. | +-------- b pnp
. | | c
. | 300k '-----------O -->
. | | 50nA
. +---+----- -2.5V
. |
. '-- R_bias -- gnd

This gets to be somewhat complicated for the purpose, I believe.
And if accuracy is not of great importance he could use the much simpler


calculate R for
IC about 0.5/1uA
___
+Vs-----|___|---+-----.
R | |
| .-.
| | |10M
| | |
| '-'
2N5087 |---+------> 50nA
/|
|
|
===
GND

That one has about -0.4%/C tempco, needs not matching, and can also be temp
compensated with an additional R and a PTC.
 
W

Winfield Hill

Jim Thompson wrote...
I'm leery of using low currents in the "outside world". They're fine
on-chip, but in the "outside world" a dry fart will conduct 50nA ;-)

Not really, you grossly exaggerate.
 
W

Winfield Hill

Fred Bartoli wrote...
This gets to be somewhat complicated for the purpose, I believe.
If accuracy is not of great importance he could use the much simpler

calculate R for
IC about 0.5/1uA

+Vs---- R ---+-----. {drawing edited}
| |
| 10M
2N5087 |---+------> 50nA
/|
|
|
===
GND

That one has about -0.4%/C tempco, needs not matching, and can
also be temp compensated with an additional R and a PTC.

I like that, and it's easily modified for a logic-controlled slow
rise and fall operation, which I think is what he wants:

.. calculate R for
.. IC about 0.5/1uA
..
.. +Vs -- R --+--|>|----+-----.
.. | silicon | |
.. --|<|--' | 10M
.. (Schottky) >| |
.. TTL control |---+----+----> +/- 50nA
.. /| |
.. 2n5087 | +5 +--|>|--- upper,
.. | | +--|<|--- lower
.. === \| | clamps
.. GND |---+
.. v/| |
.. 2n5089 | 5M
.. | |
.. -Vs --- R ----+-----'
 
W

Walter Harley

What are you using for a VCA, maybe from http://www.thatcorp.com/ ??

Either those, or SSM2164. THAT have large MOQ and no USA distributors, a
problem for one-off projects.

Why not just use a DAC, and vary the clock rate, to generate your
ramp?

I'm leery of using low currents in the "outside world". They're fine
on-chip, but in the "outside world" a dry fart will conduct 50nA ;-)

Well, you guys eat more Mexican food down there than we do up here in the
Northwest, I think. But I share your concern.

A uC and a DAC is a possible solution; in fact I just spent a while poking
around datasheets trying to figure appropriate components, and I just
finished coding the algorithm. There are two reasons I hesitate.

First, I want separate rates for ramp up and ramp down, so I can't just vary
the clock. I want the rates settable by trimpots. So, I need to
incorporate measuring the trimpots; usually AIUI the way that's done with
uC's is to charge a cap with a current source, compare the trimpot voltage
with the cap voltage, and count clock ticks. Sheesh, by that time, why not
just use a current source for my ramp?

Second, the disadvantage of a uC is that if it fails for whatever reason in
the field, it can't just be replaced; it has to be replaced and
reprogrammed, effectively meaning that the manufacturer - me - is on the
hook forever for replacement parts.

I could use discrete logic: two clocks with rates set by trimpot, switch
between them with a gate, feeding an 8-bit up/down counter. Have to be
careful to get the clocking right between the counter incrementing and the
DAC latching, and make sure that the power-on resets the counter to zero.

-walter
 
Top