# Constant current source with MOSFET, OPAMP and Instrument Amp

UPDATE

Based on the information from everyone answering below, I have modified my circuit and the oscillation has completely vanished! I started performing small modifications in order of easiest to perform and the problem went away.

New schematic

@Andyaka and @Maria both commented on problems that could arise with using a MOSFET such as the one I was using for linear applications. I replaced the MOSFET I was using with a different MOSFET that also had a gate capacitance 10 times smaller than before. This initially helped a small amount with the oscillation but it was not the main culprit.

At the mention of almost everyone I removed capacitors C3 and C6 from the schematic and tested the circuit, this actually made the oscillations worse and at much higher frequency (which is to be expected I suppose). With the oscillation still present I reduced the gain on the INA chip by a factor of 2 (I was heading towards removing the INA as per @Andyaka's suggestion).

The final step was following the idea of @sstobbe to use an Error-Amplifer Compensation configuration of the op amp by inserting a capacitor between the output and the feedback input. I chose a 0.22 $$\\mu\$$F capacitor as that in combination with the 1k resistor gave a crossover frequency of 700 Hz. After plugging everything back in and switching it on again the oscillation had vanished! There is still some small oscillation on the op amp output but it is almost non-existent. I will upload the updated schematic and comment further if I make further improvements. Thank you all for the help!

Original Question I have been working on a constant current driver that I require for driving up to 10 A through a coil (equivalent resistance 3$$\\Omega\$$) with current stability better than 1 kHz. Slew rate is not enormously important as any current changes I need to make will be on the order of 1A/ms.

I have decided on using an Instrumentation Amplifier (INA114BP) to measure the voltage dropped over 3 parallel shunt resistors (PWR4412) with a parallel resistance of 0.2 $$\\Omega\$$. The measured voltage is then fed into an Op Amp (LT1097) and compared to an input analog voltage (0-10 V) from a DAQ card. The Op Amp output controls a MOSFET (IRFP7718pbf) in the linear regime.

I first simulated the circuit to test that it operates as I expect, and have since built the circuit. On the surface it works as expected, outputting the current I expect however it is far from stable, with oscillations at 2.7 kHz on the op amp output that translates to large current oscillations in the coil.

I have done a large amount of reading today trying to track down the source of the oscillation but as I have no formal electronics background (Physics background, unfortunately avoided electronics throughout my degrees), I have reached the extent of my understanding.

I previously had a capacitor and resistor in series between the output and the negative input of the op amp, but after struggling with 10 kHz oscillations I removed them. This changed the oscillation frequency to 2.7 kHz.

The inductance of the coil seems to have little impact on the circuit as substituting in equivalent resistors instead of the coil has the exact same behaviour.

My current theories are the following:

1. The gate capacitance of the MOSFET is enourmous, 28000 pF, and the Op Amp has big problems driving it. I have tried a small series resistor of 20 $$\\Omega\$$ in series with the resistor, and have since tried adding a capacitor to ground to filter out unwanted frequencies.
2. The low pass filters I have in the circuit are a hindrance rather than a help.
3. The LT1907 features a compensation capacitor for driving capacitative loads. Looking at the data sheet now I can't tell what the effect of leaving it floating would be. I believe if I connect a capacitor $$\\approx\$$ 100 pF to the compensation pin I can help slow the slew rate and reduce oscillations.

Are there any immediately obvious problems with the circuit drawing I have attached? Any feedback on my design and insight into the workings of systems like this would be greatly appreciated.

• The limits of your understanding are pretty impressive for a non-EE person! I'm not an expert either, but I had a similar issue which was fixed by adding (1) a pull-down resistor from the MOSFET's gate to GND, and (2) by adding a ceramic cap from the opamp's output to the inverting input. You can try that. My values were 10k resistance and 100nF capacitance, but YMMV. – anrieff Oct 11 at 11:30
• To over-simplify a bit, oscillations are caused by feedback that is delayed. There is a possibility that your main problem is C6. If you haven't already, try removing it. I also can't see any benefit to C3, and I suggest you remove it also. C3 delays the response of the FET to your output change, and C6 delays the result of the output change from getting back to the Op-amp input. So they are both causing lag in the feedback path, ultimately. I think you will solve this, and I encourage you to write up all your findings when you do. – mkeith Oct 11 at 16:25
• Thank you both for your suggestions. It definitely seems like C3 and C6 being removed is a common suggestion. I'll give that a try first and see how the circuit operates! – D. Brown Oct 11 at 21:22

Personally, I would not try to search for the component values that will render that circuit stable. You will have an easier time in the long run configuring the LT1907 as an error amplifier with a cross-over frequency of a few 100 Hz to start.

Here is a basic overview of the 3 classes of error amplifiers to choose from. Source: https://www.powerelectronics.com/power-management/introduction-control-algorithms-switching-regulators

1) I would remove C3 and C6 from your schematic.

2) I would configure the LT1907 as a Type 1 error amplifier.

3) Leave R8 unchanged.

4) Select C1 of error amplifier for a cross-over frequency of 1 kHz.

5) Increase R3 to 1 $$\k\Omega\$$ for isolation of the amplifier's output from the capactive load of the MOSFET.

• Thank you for the suggestion. I have a few questions about this configuration, is the crossover frequency given by the expression on the plot above where the gain crosses zero? If so, what are $t$ and $w$ referring to? – D. Brown Oct 11 at 23:29
• I tried your suggestion to use the type one error amplifier configuration using a 0.22 $\mu$F capacitor between the output and feedback input, and I removed the low pass filter caps C3 and C6. This in combination with reducing the gain on my INA chip by swapping the resistor for a 500 $\Omega$ has made the oscillations go away! There is a small amount of noise still present but the dominant oscillations of before are completely gone! The only thing I haven't changed yet is the resistor R3, however I did change the MOSFET to a different one with lower gate capacitance. Thank you! – D. Brown Oct 11 at 23:50
• @D.Brown Good catch on the figure I'm not sure why the author wrote that, the crossover freq occurs when |Zc| = |R1|, wc = 1/(R1C1) in rad/s. Glad to hear you've solved your oscillation! – sstobbe Oct 12 at 0:33

You are trying to use the MOSFET in a linear application rather than switching application (which you seem to already know). However, I am not certain that the IRFP7718 is good for linear application. The data sheet does not mention using in linear applications.

Try substituting a MOSFET that clearly states it is designed for linear application. For example : IXYS has a class called "Linear L2" that is designed for use in linear applications.

The stated features of the IXYS are :

Designed to sustain high power in linear mode operation

Low static drain to source on-resistances

Avalanche rated

Applications :

Current sources

Circuit breakers

Soft start applications

Power amplifiers

Power regulators

Motor control

Power controllers

Which includes "current source" such as yours.

I am not endorsing IXYS. I have no relation to the product nor company. Other manufacturers have linear rated MOSFETs as well.

• Thank you for the information. I have started looking into some different MOSFETS at yours and Andy aka suggestions. – D. Brown Oct 11 at 23:33

In this answer on a similar subject, I helped the designer improve the situation by adding a BJT between the op-amp and the MOSFET like so: -

This then stabilized the situation where previously the design was oscillating. You might take some tips from that design and note that the problem was caused by the op-amp output being loaded from the MOSFET gate thus adding enough phase shift that the negative feedback became positive at the oscillation frequency.

In your design you have an extra device that could make this situation worse; namely the INA114 and I would ask you to reconsider putting this in the signal chain because, it doesn't bring anything at all useful to the party.

For your choice of MOSFET, you do have to be careful. Those devices designed for switching applications tend to be vulnerable to thermal runaway when driven in so-called linear applications. This answer given by me covers the topic reasonably well and gives links to several papers that cover the thermal runaway topic in more detail.

In short, just because it's a MOSFET doesn't mean it can't have thermal runaway. I was involved in reviewing the design for a similar job where this issue came up and, several devices were failing test but, more importantly, several hadn't failed and were installed in rather sensitive applications. My name was mud for a couple of weeks because it meant a product recall that hurt the company in question a lot.

• Thank you for the advice Andy. Thermal runaway of the MOSFET was something I had not considered so thank you for bringing that up. I will have a read through your posts that you linked. I have other FETs in a drawer that I used in a previous design for a primitive source but the power dissipation is lower than I wanted. Perhaps using multiple in parallel would help? As for the INA114, why do you think I would be better off without using it? I was mostly concerned with the small voltage dropped across the sense resistors and that combined with the CMR of the INA was attractive to me. – D. Brown Oct 11 at 21:25
• You don’t need the InAmp. Just look at the circuit in my answer. Parallel MOSFETs helps but it doesn’t stop one device hogging most of the current and thermally running away, then the next one and then the next one etc..... – Andy aka Oct 11 at 22:16
• Ok, thank you for the answer. I will try without the InAmp as well. – D. Brown Oct 11 at 22:56

Try adding a 1nF ceramic cap in parallel to C6 (then try with and without C6), increase R3 to 10k and remove C3.

Note that at 10A, you should use a 4 point Shunt.

• Can you take a moment to explain why you'd recommend each of those steps? That would really improve the answer. – Scott Seidman Oct 11 at 12:23
• From trial and error as I worked on the same circuit. You can go with the theoretical way, which may or may not work, or empirical way. – Damien Oct 12 at 3:32