Electronic – op amp current source oscillating

currentmosfetoperational-amplifieroscillatorsource

I know this topic has been discussed a lot, but there seems to be varying opinions about the solutions..

The problem is we are trying to make a current source with an op-amp driving a FET as the load. Our goal is to have a fairly high bandwidth for the regulating loop(couple of 100kHz?), but the output of the op-amp is oscillating.

First iteration

Using a ADA4807 and a ST P36nE06 mosfet.
The values for the series(R2) and parallel(R3) resistors were chosen from the op-amps datasheet about driving capacitive load.

There is a 100nF bypass cap very close to the supply pins, and a 2uF cap also.

We have tried a few things which includes:

  1. Upping the series resistor to 50ohm or 100ohm. Did not fix it.

  2. Adding 1nF cap from output to -vin of the op-amp, together with a 10k or 100k resistor (miller integrator). Did not help.

  3. Changing the 10mOhm resistor to 100mOhm. Did not help either.

The prototype is done on verroboard. I don't know if that could be an issue?

I would think this op-amp would be able to drive any capacitive load, but it doesn't seem to work for us. What are we doing wrong?

Best Answer

The op-amp's capacitive load drive stated in the data sheet is 15pF giving rise to an overshoot of 30%. Yes, you can improve this by using a series resistor to drive the capacitor (The MOSFET is about 2 nF) but you are still driving capacitance within the closed loop feedback network and that makes adding a resistor pointless - you just shift the phase further and make it oscillate at a lower frequency.

In a closed loop situation like this you have to look at the op-amp's open-loop gain and recognize that it is never ideal and might have a phase margin that is quite poor at high frequencies. A poor phase margin means that negative feedback is close to becoming positive feedback and an extra bit of RC filtering (due to the gate-source capacitance) can easily tip the balance from stability to oscillation.

You need to put a capacitor from op-amp output to the inverting input and put a resistor (try 1 kohm) from that input (pin 4) to the feedback point on the current sense resistor. You may be lucky and get the bandwidth you want but there is no guarantee.