 # How to Simulate a Bidirectional Voltage Controlled Current Source

Learn how to simulate an interesting current source built around an op amp and an instrumentation amplifier.

This article, part of the AAC Analog Circuit Collection, examines the operation and dynamic performance of a current source built around an op amp and an instrumentation amplifier.

In a previous article, I presented an interesting current source topology that I found in an old Linear Tech application note. As you can see in the schematic below, the instrumentation amplifier in the op amp feedback loop makes the output of the Op-amp generates a load current that is independent of the resistance of the load.

The circuit offers high precision and good dynamic performance, and provides a pleasant and direct relationship between the control input voltage and the generated load current.

Before we get into the dynamic performance and operation of the topology, we will see what the circuit looks like in LTspice.

#### Related information

For more background information, please review these resources:

### The LTspice implementation

My LTspice’s version of the circuit is shown below. • Fortunately, LTspice includes macro models for the exact components used in the original design. If you want to incorporate different amplifiers into this circuit, I recommend that you choose the parts that have accompanying macro models. My instinct tells me that this is the type of circuit that should be simulated before building it.
• As you can see, pin 2 and pin 7 of the LT1102 are currently disconnected. This sets the part for a fixed gain of 100, and the resulting transfer function is I LOAD = VCNTRL/ (R1 × 100). If you connect pin 2 to ground and pin 7 to pin 8, the gain of the LT1102 will be 10, in which case the transfer function becomes I LOAD = VCNTRL/ (R1 × 10).
• The control voltage shown in the diagram above is a ramp that extends from –5 V to +5 V over a period of 100 ms. This control voltage will be used to demonstrate the low frequency performance of the circuit.

### Low frequency operation

The graph below shows how the current source reacts to a slowly changing input voltage. As expected, the load current increases linearly from –5 mA to +5 mA. We can estimate the low-frequency accuracy of the circuit by applying the mathematical transfer function to the control voltage and then plotting the difference between the theoretical output current and the simulated output current. So we are seeing an error of about 45 µV, with only a small variation in the input voltage range from –5 V to +5 V This seems pretty good to me, considering the various non-idealities that are present in the two amplifiers (although I don’t know how exactly these non-idealities are incorporated into the macro models).

This error assumes, however, that R1 is exactly 10 Ω. Since R1 (along with the gain of the instrumentation amplifier) ​​determines the constant of proportionality between the control voltage and the output current, you must use a very low tolerance resistor if you want the actual transfer function to replicate the theoretical transfer function . On the other hand, if this is for a one-time project or prototype or something like that, you can simply measure the resistance of R1 and then generate your control voltage based on the measured resistance value rather than the ideal value.

I ran a few more simulations with different load resistance values, and the general tendency is for the error to decrease as load resistance increases. For example, the error in CARGO = 600 Ω is approximately 19 µV.