Processing math: 100%

OpAmp based voltage controllable current source

19 Aug 2022 - tsp
Last update 19 Aug 2022
Reading time 7 mins

This is another article that’s basically a note to myself to keep that information around. This circuit is well known all around the Internet so there’s nothing new.

Introduction

So one often requires a voltage controllable current source - for example when one builds a power supply, drives coils for some nuclear magnetic resonance (NMR) or electron spin resonance (ESR) experiments or tries to build magneto optical traps for cold atoms - or just in case one requires a controlled lab power supply - there are zillions of possible applications.

A really nice way to drive such systems up to a few Amps is the usage of operational amplifiers such as the OPA549 by Texas Instruments that’s capable of driving voltages up to Β±30V and continuous currents up to 8A (peak currents up to 10A). Those devices are really great even though a little bit costly. They are commonly available at most electronics distributors at prices between 15 and 20 Eur per piece.

So now one could simply build a voltage to current converter by attaching the load to the amplifiers output (don’t forget flyback diodes of course - not shown in the drawing below), pass the current over a small 1Ξ© sense resistor and use the voltage drop over the sense resistor as one input to one’s operational amplifier. The other side could then be exposed to the analog control voltage and thus in theory one would have a 1:1 voltage to current conversion (i.e. inputting 2V would lead to an output of 2A).

Naive OpAmp based voltage controlled current source

This might be sufficient for many simple applications that have no major problems with drifts in current. The main problem is that the output current depends on the value of the sense resistor - a drift that occurs for example due to thermal load. Since the whole output current flows over the sense resistor this can be a rather large drift that might be unacceptable for sensitive applications.

Luckily there is a solution that uses just some small fraction of the output current that’s parasitically taken from the OpAmp that one can use in the feedback loop as well as a topology for a feedback network that also compensates for thermal drift inside the resistors used in the feedback loop - I came across this type of feedback loop when I saw this design from an analog magician at work (and found similar implementations later on online).

Current source schematic

The idea is pretty simple - the output of the OpAmp drives the load via a resistor R5 that also controls the gain of the circuit. The feedback is routed through a parallel branch to the load circuit that’s formed by R3 and R4. The second feedback loop is formed by R1 and R2 as well as the control voltage. To compensate for thermal drift inside the feedback paths the circuit is designed symmetrically:

The reason for the last requirement will be obvious when one looks at the equations. Since the feedback paths are designed equally one will see that the feedback currents are equal - thus all resistors will heat up the same way (up to manufacturing differences). One should select high precision resistors for those paths of course. One will also see from the equations that the exact value of the resistors is not relevant - they should just be chosen way larger than the load resistor due to the current distribution between the two paths but one of course also has to think about the thermal noise that is increased with temperature (recall Johnson-Nyquist noise of an Ohmic resistor that as a root mean square of √4kBTRΞ”f at a given bandwidth f. As one can see this scales with √T and √R thus temperature change has to be kept low by large resistance but on the other hand an increase in resistance will also introduce noise into the circuit). Usually one uses a few tens of kΞ© for these resistors.

Circuit analysis

To understand and model the OpAmp one has to recall that an OpAmp tries to keep both of it’s inputs equal when one supplies a proper feedback network - so it tries to achieve U+=Uβˆ’. The OpAmp tried to drive U+=Uβˆ’. In case the voltage divider is symmetric one can assume that U5=Uin. This can be seen easily when looking at the voltage loop formed by the feedback network and the voltage input via the ground connection. Thus one can directly express the current over the resistor R5 in dependence of the input voltage Uin:

U5=UinI5=U5R5=UinR5

The current I5 is composed of the large load current and the feedback current in the non inverted feedback loop:

I5=IFB++IL

The current over the inverted feedback loop is determined by the potential difference between the amplifiers output Uop, the input voltage Uin and the resistors R1 and R2:

Ifbβˆ’=Uopβˆ’UinR2+R1

Now one can look into the non inverted feedback loop. The current over resistors R3 and R4 can be determined when one recalls that the current over R5 has to be equal to Uin:

Ifb+=Uopβˆ’UinR4+R3

When one recalls that we assume or require that R4=R1 and R3=R2 one can see that both feedback currents are equal:

Ifb+=Uopβˆ’UinR1+R2=Ifbβˆ’Ifb+=Ifbβˆ’=Ifb

Now one can recall that the current I5 is composed of load current and feedback current:

I5=IL+Ifbβ†’IL=I5βˆ’IfbIL=UinR5βˆ’Ifb

The last step is to recall that the operational amplifier tries to drive U+=Uβˆ’, i.e. it tries to drive the potential difference between its inputs to zero. The voltages are only determined by the feedback resistors R2 and R4:

Uβˆ’=Uopβˆ’R2βˆ—Ifbβˆ’U+=Uopβˆ’Uinβˆ’R3Ifb+β†’Uβˆ’+U+=0Uopβˆ’R2βˆ—Ifbβˆ’=Uop+Uin+R3Ifb+Uin=(βˆ’R2βˆ’R3)βˆ—IfbIfb=βˆ’UinR2+R3

Inserting into the equation for IL:

IL=UinR5+UinR2+R3IL=Uin(1R5+12R2)

As one can see there is a direct relation between the load current IL and the input voltage Uin that’s independent of the load resistance RL. It depends on the resistor R5 (and thus it’s thermal drift) though.

The constant factor is composed of two terms, the main component being 1R5. The second term 12R2 is usually pretty small - when one uses 20kΞ© for all four resistors in the feedback network this should be around 10βˆ’5 in comparison to the factor β‰ˆ1 or larger usually used at R5 (remember that this resistor should be near unity or smaller since the whole load current flows through this resistor and might generate massive amounts of heat). In case one uses smaller resistors such as 1mΞ© on can decrease the thermal load, thermal energy loss but also requires more fine grained control over the input voltage. Thus one can approximate:

ILβ‰ˆUin1R5

This article is tagged: Tutorial, DIY, Electronics, Physics, Basics, Measurements, OpAmp


Data protection policy

Dipl.-Ing. Thomas Spielauer, Wien (webcomplains389t48957@tspi.at)

This webpage is also available via TOR at http://rh6v563nt2dnxd5h2vhhqkudmyvjaevgiv77c62xflas52d5omtkxuid.onion/

Valid HTML 4.01 Strict Powered by FreeBSD IPv6 support