How to null op-amp offset in current source?
To put it simply, you cannot have your cake and eat it too with this type of circuit. You need to separate the DC constant-current sink from the AC pulse generator.

1) I have built many circuits like you have but stayed with a DC stable op-amp like a TL072. The secret is to insert a 1 K ohm resistor in series with the mosfet gate. Insert a 10 K resistor in series with the feedback from R sense. Insert a 100 nF capacitor from the op-amp output to its (-) input.

2) Now you have a ultra-stable current sink. Use a potentiometer to adjust Vin, with Vin being sourced by a stable voltage ref or regulator. To span many decades of range use a rotary switch where R sense is and use 0.1% resistors if possible.

3) You can buy ultra-stable .025% resistors made by Caddock from Digi-key or Mouser but they get expensive. Use 1.00 ohm, 10.00 ohms, etc, on up to 1 K ohm. With this circuit the voltage at R sense will match Vin to within .1% or better. For protection insert a 15 volt zener across R sense so when the contacts are open the servo loop is not broken.

4) Now to inject an AC signal do it by using a 100 nF capacitor in series with a 10 ohm resistor and connect it to the mosfet gate. The resistor is to prevent parasitic oscillation of the mosfet. Use a pulse generator to inject signals less than +/- 15 volts p-p into the capacitor.

5) The op-amp will keep the constant current stable but slow wide pulses may cause a 50 uS correction time in the servo-loop.

6) Option 2 is to add an NPN such as a 2N2222 to the gate of the mosfet to strobe it off very fast (collector goes to the gate, emitter to ground, base to signal generator). Minimum of 100 KHZ or the op-amp will become unstable.

7) Personally I prefer the capacitor injection method as it keeps both the AC and DC servo-loop DC isolated and the ability to keep a constant current (when on) is much better. Remember it is best if the op-amp is a stable voltage feed-back type, then inject the pulses. Place a DVM in series with your load if possible to make sure your current is exact without any pulses.

8) Use an oscilloscope if possible to measure the drain pin of the mosfet. Look for signs of saturation by your pulse generator or instability from the current sink being over driven.

9) The following circuit will give you 3 decades of range if a 3 pole rotary switch is used. Amps, milliamps, and microamps, plus your modulation scheme.







simulate this circuit &ndash; Schematic created using CircuitLab