2
\$\begingroup\$

I'm currently designing an Improved howland pump circuit in order to achieve the constant current, and my Vin for the circuit is a wave ( sine, triangle, rectangle, sawtooth) from the ESP32 DAC. I used stimulation from Proteus, and the result is in the picture below. Somehow, the Vout is not a sine wave, but still in sync with the sine signal I input. Can it be fixed?

Another thing is that the ESP32's DAC can only reach 3.3V max. And I'm really not clear or sure if it's able to produce 10-15mA or not, I read the theory from https://www.ti.com/lit/an/sboa436/sboa436.pdf?ts=1752470345646, and I'm still confused as hell. Any help is appreciated, I still quite new with electronic so thank you in advance. enter image description here enter image description here

enter image description here

\$\endgroup\$
1
  • 2
    \$\begingroup\$ All the op-amps in the TI document are powered from dual +15V and -15V. Yours isn't. And since your input oscillates above and below zero, your op-amp needs to be able to process negative inputs, and produce negative outputs, which requires a negative supply. \$\endgroup\$ Commented Jul 14 at 15:26

2 Answers 2

2
\$\begingroup\$

Obviously(?) this circuit cannot produce negative current in the load without a negative supply. Here it is with a different single-supply op-amp, a 30V supply and a 10Hz sine wave with offset zero so it is always >0.

enter image description here

To get 10mA through a 3.6kΩ load (plus 5kΩ shunt) requires 86V+ (about 86.9V - 15mA would require more than 130V) at the op-amp output pin so that's also impossible with a 30V supply.

The ideal maximum output current (perhaps limited by the supply, but ideally) is just the maximum input voltage divided by the shunt resistor, so 3.3V/5kΩ = 660uA for the values shown. If you decrease the shunt the maximum current will increase for a given input voltage. If the ratio of shunt to series resistor is too large then the accuracy will suffer more (think about the possible mismatch between the two 100kΩ resistors on the non-inverting input, and the Vos of the op-amp).

Howland current pumps have their applications (especially if you absolutely need a bipolar current source, and sometimes if the load must be grounded on one side) but there are usually better ways of accomplishing the task.


Circuit to generate bipolar current +/-3.3mA output with 0-3.3V input: (this is close to the maximum current through a 3.6kΩ load with +/-20V supplies. I've reduced the resistor values by a 10:1 factor to increase the load current (keeping the ratio of R3/R2 the same). In a "hand-wavy" way you can think of that ratio as multiplying certain errors in the circuit, in this case by 19:1.

![enter image description here

Here's the same as above but showing the input signal from the DAC: In the modified circuit, the ideal output current is

I = (Vdac - 3.3V/2)/R2.

enter image description here

This is similar to what you'd get if you created a 1.65V source with two resistors from the 3.3V DAC supply, and buffered it with a 2nd op-amp voltage follower and connected the buffer output in place of ground on R4 in my first schematic. Since the Thevenin equivalent of a two-2R resistor voltage divider to +3.3V and ground is a single R resistor to 1.65V. But it saves one resistor and an op-amp, so the below is not as good a circuit.

enter image description here

\$\endgroup\$
17
  • \$\begingroup\$ Ohhh, thanks a lot. So i need to adjust my shunt resistor down and add a negative supply for the opamp, right? And when you said " If the ratio of shunt to series resistor is too large then the accuracy will suffer more", you meant R5 and R3 in your schematic, right? \$\endgroup\$ Commented Jul 14 at 17:13
  • \$\begingroup\$ I don't know if you need to add a negative supply since you can only get positive voltage from the DAC and you have not mentioned needing negative current. R2 and R3 in my schematic. \$\endgroup\$ Commented Jul 14 at 17:16
  • \$\begingroup\$ If you need negative current you'll need to add a negative supply and bias the input so that 1.65V from the DAC is 0mA out. One way to do this would be to replace R4 in my schematic with two 200kΩ resistors. I'll add a simulation to my answer. \$\endgroup\$ Commented Jul 14 at 17:41
  • 1
    \$\begingroup\$ Some update from me, i did successfully create 10mA. I even tune up to 20mA, but then my instructor asked to make 50-100mA. And the load i adjust back to 500-1k6 ohm, any advice for me. The only solution i could think of is find an opamp that has +-100V supply \$\endgroup\$ Commented Oct 17 at 10:48
  • 1
    \$\begingroup\$ It will take a fairly complex circuit, not just a transistor, to boost the output voltage. Hence I suggest you look for a working design to start from, or just buy a HV op-amp. \$\endgroup\$ Commented Oct 18 at 17:19
0
\$\begingroup\$

the ESP32's DAC can only reach 3.3V max. And I'm really not clear or sure if it's able to produce 10-15mA or not,

It's not.
Besides the supply problem noted by Simon, the theoretical output current for that circuit (if the voltage is within the op amps output limits) is basically Vin / R3, so to get 15mA, R3 should be no greater than 3.3V / R3 = 220Ω.

How did you get a value of 5kΩ?

And to get 15mA through the R6 3.6kΩ load, requires a voltage of 54V across it.
That will require a high voltage op amp or an added output buffer amp, along with a high voltage supply, to deliver that voltage plus the voltage across R3.

You need to learn/memorize Ohm's law, one of the very basic electrical relationship between voltage, current, and resistance, as you seem to be unfamiliar with it.

\$\endgroup\$
2
  • \$\begingroup\$ I am still testing the circuit to see if the output waveform is as expected initially. If possible, I will work out the voltage by calculation later. Thanks a lot btw. \$\endgroup\$ Commented Jul 14 at 17:13
  • \$\begingroup\$ Okay, but your design has not used Ohm's law in determining the component values, so that's a serious problem. \$\endgroup\$ Commented Jul 14 at 21:30

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.