I am modifying a current source/sink and there are three circuits that are relevant which are shown below, all using a MOSFET and an op-amp to stabilize a voltage across a sense resistor. My questions concern the reasons for the compensation, the form/choice of the compensation, and the choice of components.

The first circuit I have worked with and for concreteness: R1 = 10 kΩ, R2 = 100 Ω, and C = 8.6 nF with the op-amp being an LT1028, and the MOSFET a VP0106, and the sense resistor typically 50 Ω.

I have seen two different explanations for the compensation: the input capacitance of the MOSFET destabilizes the op-amp, and the MOSFET provides additional voltage gain in the feedback. I believe both are valid. For the first circuit it seems clear that the gain is diminished at high frequency by the ratio of R1/R2 and R1 is certainly overkill in isolating the op-amp from the MOSFET capacitance.

I have seen the second circuit in datasheets. I assume R2 would be small and serve the function of isolating the op-amp from the MOSFET input capacitance, and I would further assume R1 and C roll off the gain. However, I have seen the second circuit without C, which makes no sense to me as R1 would then have no function (I accept that just because I saw it on the internet does not make it right). Based on the second circuit I would assume the third circuit is an equally valid means to stabilize the circuit.

My questions are:

  1. Do I have the correct understanding of what is going on (if not please enlighten me)?
  2. Is one form of compensation better than another or is it simply a matter of taste?
  3. How exactly are the components chosen? Specifically what should I be looking for in the data sheets?

I should probably add that the aim is a low-noise, high-stability current source.

For the first circuit a wild speculative guess would be the forward transconductance multiplied by the sense resistor would be a gain to compensate with a factor of 10 thrown in for good measure and the capacitance chosen based on the op-amp gain profile.

I'm not very sure about the second two circuits as the capacitor provides direct feedback so the role of R1 is not clear to me.

The load in these circuits is a laser diode. For the first circuit and the specified components, there is an observed oscillation that appears at a higher current setting, and this is more problematic when one alters components to achieve a higher current limit (decreasing the sense resistor and a MOSFET with higher current capability)

Three example circuit schematics

  • 1
    \$\begingroup\$ All of these circuits use the mosfet as a source follower. The last two are equivalent. The first one can be made unstable with the snubber out of whack. Mosfet’s gate-source capacitance are a part of the compensation network. Many op-amps will be perfectly happy with nothing but gate capacitance for compensation if the load or sense resistor impedance is high enough. \$\endgroup\$ Commented Jan 5, 2023 at 3:23
  • \$\begingroup\$ @Kubahasn'tforgottenMonica I appreciate the equivalence of the last two circuits, which is why I am asking about the choice compensation between the 1st and 3rd. From your comment it seems I am wrong about the voltage gain, which I had read somewhere else, and would seem the first compensation is not the right approach (actually a published circuit that is widely used). It might be true that some circuits don't need compensation, but that is neither a helpful or informative remark. \$\endgroup\$
    – Muzza
    Commented Jan 5, 2023 at 4:27
  • \$\begingroup\$ Have a look at electronics.stackexchange.com/questions/239888/… \$\endgroup\$ Commented Jan 5, 2023 at 18:35

3 Answers 3


If your op-amp were unity-gain stable, you wouldn't need this kind of sophisticated in-the-loop compensation, because the source follower adds no further voltage gain. In that case, this should work without any additional components at all, the gate-source-capacitance already works for frequency compensation.

However, the LT1028 is not unity-gain stable, more details are on p. 15 of its datasheet.

Therefore, you indeed have to employ one of those circuits to make it unconditionally stable. The presence of R1 in the feedback path of circuits 2 & 3 severly deteriorates the exceptional noise performance of the bare opamp. So if you went for this opamp for its noise performance, then the latter two are not good options.

In circuit 1 (snubber stabilization), I think you should be able to omit R1. C has to be at least about 5-10x larger than the FET capacitance, so it is the dominant capacitive load from the point of view of the opamp. Then you have to experiment a bit with the value of R2. Too small will make it oscillate at a low frequency; too high will make the snubber meaningless, the proper value will damp the oscillations. Maybe start at ~100 Ω.

  • \$\begingroup\$ I have edited the question to highlight the the load is actually a laser diode, which may matter. It is a reality that when the current is turned up there is a point at which an oscillation appears in the current, and typically at higher current. When altering the circuit for higher currents, this becomes more problematic. \$\endgroup\$
    – Muzza
    Commented Jan 5, 2023 at 22:53
  • \$\begingroup\$ @Muzza and are you sure to be still within acceptable input and output voltage ranges of the opamp at those higher currents? \$\endgroup\$
    – tobalt
    Commented Jan 6, 2023 at 0:40
  • \$\begingroup\$ Yes I am - I just did some testing now to make sure I wasn't doing something stupid. I took out the 100Ohm resistor to effectively remove the compensation network (save the 10k) and this results in oscillation from minimum current setting to max. The voltage reference at the top is about 3-5V lower than the supply voltages to the op-amp. In the current circuit implementation I have a different MOSFET ZVP2106, which gives higher current and the sense resistor dropped to 50/3 Ohm. \$\endgroup\$
    – Muzza
    Commented Jan 6, 2023 at 3:17
  • \$\begingroup\$ I should add that I have worked with many iterations of this circuit with different MOSFET's and sense resistors for different current limits (the input is derived from a 7V buried Zener reference so the max current is 7V/Rs). It always needs this compensation and I am embarrassed to say its a guess and check on the component values. I think I understand your comment on the gain now, so I am more confused. \$\endgroup\$
    – Muzza
    Commented Jan 6, 2023 at 3:27
  • \$\begingroup\$ @Muzza I am not sure. Have you taken out all 3 of these compensation components? Just leave opamp, FET, set resistor and load.. Anyways, your latter two circuits are the normal way to isolate the opamp from a capacitive load. The gate of a FET isnt driven directly, the set resistor is in series. So this only becomes an issue for very large FET and low set resistor. \$\endgroup\$
    – tobalt
    Commented Jan 6, 2023 at 4:44

To answer my own question. In general, it is not correct that the circuit is stable if using a unity gain op-amp as expressed by others. I tested this by using multiple unity gain op-amps and the problem persisted. I believe the problem arises because of the complex, low impedance load and specifically parasitic inductance at the output in conjunction with the MOSFET output capacitance. As a test I increased slightly the test load resistance and noticed a marked improvement with the oscillation only occurring over a more limited set current range and very little distortion. I then removed the short (20cm) BNC cable that connected the circuit to the test load and the problem was removed completely (and worsened if lengthening the cable). Since the cable connecting to the real load is necessary, a simple fix was to use a small inductor with low ESR in parallel with a resistor. This raises the load impedance at high frequencies, but maintains the DC load and the compliance of the current source. I do not believe the capacitive loading of the op-amp by the MOSFET has any relevance at least not for the MOSFET I am using as I was able to remove completely all the compensation circuitry including any resistance between the opamp output and the MOSFET gate. This may not be true with all low noise, high speed, unity gain opamps as some are more sensitive to the capacitive loading than others (I swapped to an OPA211). Not 100% sure but I think you want the R/L break frequency to be much less than the observed oscillation.


If you are simply using a resistor dividor then you most likely don't need compensation. However, real world loads are not as simple as a resistor.

If you have cables they will add inductance (or additional capacitance on the load or both) and this can create additional poles in the feedback loop and create stablity problems. These can be modeled. I have gone as far to model the inductance from cable length and size and it has approximated the stability effects in spice.

If the load is of an unknown impedance a few things could be done, the AC load response could be characterized experimentally or estimated.

At the end of the day these circuits have an AC response, and it can be modeled (best in spice). This can be done by an AC source on the opamp + terminal and monitoring the AC response at the load.

Capacitors short out the high frequencies and essentially put a low frequency pole in the loop. This forms an RC low frequency pole.

I mainly used the middle and left approach. Another one is using a resistor divider from the load to the negative input of the opamp and placing an RC in parallel with the resistor divider.

  • \$\begingroup\$ @ Voltage spike. I was in the middle of answering my own question as you posted. But thanks for the useful pointers. \$\endgroup\$
    – Muzza
    Commented Jan 26, 2023 at 3:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.