For transimpedance applications, you want to keep op amps in their linear region and avoid op amp saturation and overdrive recovery.

This can be done with a simple automatic gain control circuit when using a unity gain stable op amp e.g.


simulate this circuit – Schematic created using CircuitLab

When the diode switches on, the closed loop response maintains the same bandwidth, but its magnitude is decreased. The high frequency feedback factor Cfeedback/(Cfeedback+Cin) approaches 1, but its not a problem because the op amp is unity gain stable. I have implemented this with an OPA656, and it works well.

This won't work with a decompensated amplifier. It will oscillate when there is too much high frequency feedback. I have seen this with the OPA846.


How do you keep a decompensated amplifier in its linear region in a transimpedance application?

I have tried simulating the circuit below, with the hope that switching in extra input capacitance would decrease the high frequency feedback, but the results are poor.


simulate this circuit

The component values in the schematics are not what I am using in my actual circuit. They are round values to simplify discussion of the circuit e.g. the high frequency feedback factor of the first circuit when the diode is off is 1/101. My actual component values are tuned for maximum speed, close to the edge of stability, not exactly known due to board parasitics, and would be distracting from the question.

  • 1
    \$\begingroup\$ On second thought, using a transistor to switch in feedback elements as in the second circuit probably wont work since there will be a AC feedback path with a gain of 1 from the base to the emitter. \$\endgroup\$ – DavidG25 Nov 10 '17 at 16:16
  • \$\begingroup\$ why do you want to use an uncompensated op amp? \$\endgroup\$ – berto Nov 14 '17 at 23:51
  • \$\begingroup\$ @berto they are faster. \$\endgroup\$ – DavidG25 Nov 15 '17 at 2:59

If your amplifier behaves fine at low levels of current with the OPA846, and the problem happens only at high levels, then I believe that you would have three possibilities:

1) Reduce R1 so you have less transimpedance gain: There will be more range for the current, but you will lose resolution (amplification).

2) Tuning the gain limiting circuit (R2, C2, D1 from the first schematic in your question): If this circuit works fine with the OPA656, perhaps you can also make it work with the OPA846. Try changing R2, so that the gain control branch does not make the circuit unstable.

3) Add more compensation to the circuit by changing C1 or increasing C3. I have the impression that if the circuit works fine with the OPA656, but has problems with the OPA846, then it could be a compensation problem.

As far as I know it can be hard to think of a current limiting circuit for the photodiode since the voltage amplitudes involved are usually very low.

  • \$\begingroup\$ These could be solutions, but they sacrifice SNR and/or BW. If I could accept worse performance, I would just use a unity gain stable op amp. \$\endgroup\$ – DavidG25 Nov 16 '17 at 16:28

The second one probably would have worked if Q1 was instead a MOSFET. Both introduce substantial nonlinearity near the threshold. Here's an alternative.

Something like this:


simulate this circuit – Schematic created using CircuitLab

Where R3/R4 (hysteresis) and R6 (loading) need to be chosen to avoid oscillating between high-gain and low-gain mode when close to the threshold.

You will probably need to adjust the way the fets are driven (the gate current gets amplified D:).

  • \$\begingroup\$ Why did you use a Schmitt trigger rather than switching the transistors with the op amp's output? Is it to reduce feedback through the transistor? \$\endgroup\$ – DavidG25 Nov 22 '17 at 0:58
  • \$\begingroup\$ Because applying the opamp's output to the transistors does not necessarily turn them fully on or off, but varies from fully off below Vth to fully on somewhere above that, introducing nonlinearity. That may or may not be a problem for your application. \$\endgroup\$ – τεκ Nov 22 '17 at 1:08

General observations

All OPAMPs have a minimum closed loop gain.

OPAMPs are compensated to ensure a minimum phase margin at their specified minimum gain (usually 0.1).

If you want both the high speed AND stability with an uncompensated OPAMP and have low gain, then you have to compensate yourself.

With regards to linearity: the feedback is ensuring linearity, not so much the linearity of the opamp's open loop itself.

Specific observations

The problem occurs because of the AGC - with high gain everything is ok, but with low gain, it is not. So you need to ensure that you still have high gain from the AOP's point of view, or you need to compensate the opamp in these cases.

  1. You could try to decrease your input level rather than decreasing the gain.
  2. You could try to add compensation when reducing the gain.

In your schematic with Q1, I note that Q1 would not normally conduct as the output voltage is normally higher than the input's voltage. But when due to oscillation, the output voltage does get lower than the input, the feedback actually gets higher because your are compensating input current - that's feedback! So you are lowering the gain and bringing the OPAMP in the unstable region.


To lower the input, you could add a normal diode in forward mode. It will conduct little when the receiver has a low output, and more when the receiver's output is high - therefore acting as an AGC. It will need some simulating and diode selecting to find the optimum. This is not feedback from the OPAMP so it does not impact its closed loop gain.

Another issue with your method using Q1 is that the small signal analysis applies to everything. I think that you should have a rectifying circuit to have an average feedback. If the AGC feedback is a low frequency current, it is not increasing your high frequency feedback more than the lower frequencies.

In order to keep your high frequency feedback low, you should block the higher feedback path for high frequencies. You could add an inductance in series of the feedback path, or probably add a bypass capacitor to ground in your feedback path.

Adding compensation for high frequencies only when the gain is low, seems more difficult. A voltage variable capacitor could help make an RC filter adaptive to signal level, but it seems harder to tune.

I hope these thoughts help you.

  • \$\begingroup\$ I will look into the idea of a filter to block high frequency feedback through the transistor. Thanks! \$\endgroup\$ – DavidG25 Nov 22 '17 at 0:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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