Post Go back to editing

Voltage-controlled current source

Hello guys,

I want to design voltage-controlled current source for my current project. The currents should be in a range from 0 to 2.5mA. Load resistance should be up to 5Kohm. My idea was to use unity gain amplifier together with the buffer in the configuration like this:


Voltage-dependent generated current can be expressed as 

 I = Vsine/R8;
where R8 = 1Kohm. So, for Vsine voltage of 1V, for example, I will have generated current of 1mA. Supply voltage is equal to 18V. My idea is to use SPI or I2C controlled ADC for generating Vsine voltage.

Resitor R9 of 5Kohm simulates my load. Generated current is monitored with shunt resistor R10=50Ohm and current-monitor module AD8211. I also use voltage divider made of R11 and R12 to monitor the voltage on the load. Both current and voltage monitoring are implemented through AD converters on my MCU. Current and voltage monitoring is implemented in order to calculate load resistance from MCU side.

I was using LT1006 general purpose amplifier for unity gain amplifier and buffer and everything was as expected (at least in LTSpice simulations). I wonder if there are some less expensive components I could use in order to achieve the same goal? Do you have unity gain amplifiers with 4 resistors implemented inside the chip that I could use as well as some less expensive buffer IC?

Also, if you think there is a better, more efficient way to implement a voltage-controlled current generator as well as voltage/current monitoring, don't hesitate to suggest.

I tried myself to use some less expensive general purpose op-amps (like LT6011, for example) instead of LT1006 but I had some issues in generating load current. Here is what I have in LT simulations with LT1006 and LT6011:


As you can see from the waveform above, with LT6011, for the Vsine voltages in a range from 0 to ~0.3V, generated current is constant and equal to ~0.3mA. LT1006, on the other hand, properly follows Vsine voltage even for Vsine voltages below 0.3V.

Thank you very much for your time and effort! It is really appreciated!



  • Also, looking at the datasheet of LT6011 and LT1006, LT6011 input is limited to operate to V- + 1V while LT1006 input common mode include ground in single supply operation. Furthermore, please read page 9 of LT1006 datasheet for details when operating the device on single supply.

  • Hi ,

    Thank you so much! This is what I call a great support! Clear, fast and efficient!!!

    I tried to follow the article and included AD8276 in my LTSpice simulations. I used Spice model of AD8276 from here in order to create LTSpice model of AD8276. 

    In my simulations, however, I did not achieve expected results. Neither the current is equal to Vref/R nor the generated current follows the shape of the Vref voltage (sine shape in my simulations):

    Is there something wrong with AD8276 Spice model? In this thread from 2017, there were some issues with it.

    Thanks once again for your time and effort!



  • Just to report you that I think I found the issue in my schematic. It seems I can't use AD8603 buffer because its supply voltage is up to 5.5V. With 5Kohm load resistance and 2.5mA load current, I go beyond 5.5V. 

    Consequently, the solution for the buffer is AD8661 or OP1177

    Thanks once again for your great support!

    One more thing... do you think there is a better way to monitor current through the load as well as voltage on load resistor?



  • Based on the circuit on your first post, I think you are doing a low side sensing.

    LT6081 has a good application circuit example on doing this on page 13 of its datasheet.

Reply Children