Invert Current Direction

Registered: 19.11.11 22:52
Timezone: UTC +0
Posts: 16

Hey there,

I'm doing an university assignment in which the objective is to build a current source using only the specified components as listed below:

  • 1 dial switch
  • SPST Switches
  • Op Amps
  • Resistors (250ohm max)
  • 12V batteries
  • Fuses

The current source is ready, but there is another restriction which says that there must be an SPST switch that when turned on/off causes the direction of the output current to change.

My thought was: "Maybe i could use an inverter op amp circuit", but my question is, would it also invert the current, or just the tension? Simulators are not reverting the current direction...

Anyone have any hints on this?

Registered: 25.08.11 02:05
Timezone: UTC +0
Posts: 11

Hey there chess_rock!

Okay for those of you who do not know what a current source is I will cover some simple background which should be understandable to most people.

Voltage and current sources

An ideal voltage source has no internal resistance (Ri=0Ohms), and provides a constant voltage regardless of load resistance (or impedance in AC).

These are the most abundant sources, predominantly generators induce voltages and those are stepped up in the power network and back down to the substation to provide the power to your home or place of work.

An ideal current source has an infinite internal resistance(Ri=Inf.Ohms), and provides a constance current regardless of load resistance (or impedance in AC).

These are not so common to find, but in essence the simplest one you can build is by "converting" a voltage source in to a current source with a single resistor in series with the load. (Thévenin equivalence:évenin's_theorem)

Actively stabilised current and voltage sources use a number of semiconductors (Transistors) to provide the current/voltage and carefully control it to a given tolerance.

Back to the task at hand...

Designing a Current Source

First of all, a few questions:

1. What magnitude of current do we need to supply?

If it is less than 10 mA, I think we can get away with using the output of the OpAmp as the voltage generator since we cannot use any other transistors here.

Given we have 12V batteries to play with, we need to be very careful with the resistors. Which brings me to the next question.

2. What are the power rating of the resistors are we allowed? 1/4W? 2W?

This simply affects how you choose to build your supply and thus output current limit.

Now for those of you viewing this with lower resolution screens, I apologise the following image will probably look huge.

Note this circuit neglects a power on/off switch. The simplest location to put one with only SPST switches to work with is, ironically, directly on the output just before the load resistance is attached.

The one switch I have drawn on will allow you to get + or - voltages.

You must ensure that the following resistor ratio condition will work, and that none of them dissipate too much power:

Circuit 1:
R2/(R2+R1) < R9/(R9+R11)

Circuit 2 (Same again, just different resistor numbers):
R7/(R7+R6) < R12/(R12+R10)


  1. R3 and R8 act as current limiting resistors.
  2. The output current will depend on the load resistance, Rload.
  3. Safe if no load is attached, no current is drawn at the output.
  4. Placing an on/off switch with only SPST switches available in the case of the split rail design, would be best placed on the Vout terminal of the OpAmp.

Otherwise you risk making the OpAmp unstable if you attach two separate on/off switches for each supply rail.
In the single battery option, you can place a single SPST switch in series with the battery to the Vss node of the circuit and this will work very well.


The OpAmp equation for the output voltage for large signals, is:

Vout = Av(V^(+) - V^(-))

Av is the OpAmp open loop gain. Typically 10^5 or larger.
We will be exploiting this to operate it as a comparitor to make a + or - voltage at the output just by changing the "differential input voltage" (The difference in voltage between V^(-) and V^(+) inputs) because an OpAmp is normally used for amplification we usually have a feedback resistor to keep the input voltage difference zero (ie: V^(+)- V^(-) ~ 0), and the output voltage some factor G larger than the input.

Switch Open

Assuming the switch is open (disconnected) the OpAmp sees at the V^(-) input:

V^(-) = (V1*R2)/(R2+R1)

At the V^+ input is effectively tied to ground via R9:

V^(+) = 0V

Since V^+ is tied to ground, V^- is what we call a "virtual earth",

Instead, we have no feedback, thus:
Vout = Av(0 - V^(-))
Vout = -(V^-)*Av
Vout = -(V1*R2*Av)/(R2+R1)

This means the output voltage approaches -V2:

Vout ~= -(V2 - 0.7)
.: Iout ~= -(V2-0.7)/R3

When loaded by Rload:
Iout ~= -(V2 - 0.7)/(R3+Rload)

Switch Closed

If the switch is closed (connected) the inverting input, V^(-), sees the same voltage as before.

V^(-) = (V1*R2)/(R2+R1)

At the V^+ input this is no longer tied to ground, instead it is the potential division of

V^(+) = (V1*R9)/(R9+R11)

Since we now have two voltages applied, it is now the difference in their ratios which determines the output voltage:

Vout = Av( (V1*R9)/(R9+R11) - (V1*R2)/(R2+R1) )
Vout = Av*V1( (R9/(R9+R11)) - (R2/(R2+R1)) )

If (R9/(R9+R11)) > (R2/(R2+R1)), since Av is large the output voltage will be approximately:

Vout ~= (V1 - 0.7)

.: Iout ~= (V1-0.7)/R3

When loaded by Rload:
Iout ~= (V1-0.7)/(R3+Rload)

Q. Where has the 0.7v come from?
In reality, the OpAmp is limited to between 0.3V and 0.7V of the supply rails, +Vcc and -Vee, because of internal diode protection in the event the load resistance, Rload, is drawing too large a current for the OpAmp to provide.

Q. What's the difference between the two circuits?
Both of the circuits are virtually the same, just one uses a single battery with a potential divider to provide the + and - output voltages and thus output current can be + or -, in place of a split rail supply which may well damage the resistors or the OpAmps.

The single battery supply will only provide a current of + or - at approximately half of the available voltage supply:

~= ((V3/2)- 0.7)/R8

Including the effect of Rload:
~= ((V3/2)- 0.7)/(R8 + Rload)

I hope that this helps! Hopefully I've not made any mistakes... smile