# Problems with over/undershoot in voltage-controlled MOSFET current sink

I'm in the process of designing an electronic load for testing batteries. The goal is to control the load current in the range of 0 - 10 A with a 0 - 1.2 V signal from a DAC.

For easy calculations and usage of common values of resistors, a 12 mΩ shunt was chosen. The problem is that in the current configuration, a large overshoot/undershoot occurs when the input is driven with a square wave.

If I reduce the gain of the current sense amplifier from 10 to 2, or decrease the value of the shunt, the problem disappears. I would prefer not to do that, because then I would have to use lower voltage control signal, which is not ideal.

Is it possible to stabilize this circuit, while preserving the current sense gain of 10 and shunt value of 12 mΩ?

I've attached a schematic and a sample waveform below. The blue trace represents control voltage, the green trace represents current.

• Also consider the effect of C1. As a capacitor (albeit a small capacitor), voltage across it cannot change instantly. So C1 is creating a phase-shift or delay between when the sensed current (voltage out of U4) changes, versus when the MOSFET gate can change. This delay, along with the delay of the LTC2050's, exacerbates the spikes. Commented Aug 14, 2021 at 13:30
• Sadly, C1 is necessary for circuit stability. I will try to experiment with other values and dive deeper into other methods for stabilizing this circuit. Without it the output oscillates constantly because of gate capacitance.
– MMaz
Commented Aug 14, 2021 at 13:58

I think your expectations may be somewhat naïve. Your input changes near instantly and, because of this, the output of U1 also changes fairly instantly. Feedback of the output current through the 12 mΩ resistor is then going to take time to ripple through U4's circuit and then through the integration applied to the inverting input of U1. This all causes a significant delay that allows a period of time to exist that just cannot be kept stable.

That's entirely what you see on your o-scope shots.

If you used a much much faster device than the LTC2050 in U4's position, things would improve but, at the end of the day, you are asking a lot for the output current to follow step changes on the input demand voltage without some overshoot.

• So do you think that placing a simple RC filter in front of U1's input to get rid of abrupt control voltage changes would be a feasible solution?
– MMaz
Commented Aug 14, 2021 at 12:38
• That masks the problem but, if that works for you then, it's a good practical solution @MMaz Commented Aug 14, 2021 at 12:45
• So, if I understand correctly, this circuit is fundamentally flawed and there is no way to eliminate this under/overshoots without changing the feedback loop design?
– MMaz
Commented Aug 14, 2021 at 13:26
• If you are applying fast edges to the input, the output will overshoot. Any op-amp circuit that uses another op-amp in its feedback loop tends to have this problem. It is mitigated by reducing the input BW (as you proposed) or by speeding up the feedback signal (using a much faster op-amp in U4 position) @MMaz Commented Aug 14, 2021 at 13:43
• Thanks for clarifying. Using a faster opamp is not really an option here, because I need as low Vos as possible -- the signal from U4 is taken also (through a buffer) to an ADC for current reading -- and so-called zero-offset opamps are quite slow in terms of slew rate and GBP.
– MMaz
Commented Aug 14, 2021 at 14:13

Try a conventional opamp in place of the LTC2050.

The LTC2050 is a "zero-drift" amplifier that is chopper stabilized.

That type of amplifier is great for getting very low offsets but has some disadvantages.

In particular one shortcoming that has bitten me in the past is that it takes many milliseconds to come out of saturation. If the amplifier goes into saturation during the changes of the control voltage the amplifier may not come out of saturation cleanly.

See the scope trace "Input Overload Recovery" at the bottom right of page 7 of the datasheet. It takes about 2ms to recover.

LTC2050 Datasheet

• I must have overlooked this behavior when it comes to overdriving chopper stabilized opamps -- thanks for pointing that out. I will look into replacing U1 with a conventional amplifier.
– MMaz
Commented Aug 14, 2021 at 18:04
• @MMaz - there is a trace in the datasheet - bottom of page 7. Commented Aug 14, 2021 at 18:09