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.
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.
This current source relies on negative feedback, which inherently involves some delay associated with settling behavior, and amplifiers have response speed and bandwidth limitations. Consequently, we should not expect this circuit to translate rapid variations in input voltage into equally rapid variations in output current.
However, all things considered, the output has a good ability to reproduce sudden changes in control voltage, and it is also important to note that these abrupt changes do not create excessive ringing.
To simulate the dynamic response, I changed the voltage source to a pulse going from 0 V to 5 V with a rise / fall time of 1 µs. The input signal is shown below, along with the resulting output current signal.
Dynamic performance with RCARGA = 600.
The Linear Tech app note describes the dynamic response of this circuit as “well controlled”, and I agree. The output current rises and falls evenly, and a 0.65 mA / µs slope is nothing to complain about. There is no sound at the rising or falling edge, and the amplitude of the overshoot is very low.
An interesting detail that I noticed is shown in the following plot. After the falling edge, it takes a (relatively) long time for the output current to return to the expected value of 0 mA.
Recovery behavior with C = 0.05 µF.
You can reduce this recovery time by reducing the capacitor value, but this leads to a transient response that is less “controlled”:
Recovery behavior with C = 0.005 µF.
With the help of LTspice, we have compiled some useful information on the performance of the “current Jim Williams font” (as explained in the previous article, this is not the official name, but it is more attractive than the name used in the application) . note— “Current source referred to ground, programmable in voltage”).
It would be interesting to see how this circuit works with amplifiers that are a bit more “modern”. If you do any simulation or bench testing with a custom implementation, feel free to share your ideas and experiences in the comment section below.