This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OPA855: Output oscillates

Genius 9880 points
Part Number: OPA855
Other Parts Discussed in Thread: OPA847, OPA140


We have received inquiry that customer having issue in the output for OPA855, please see details below.


I am trying to build an optical homodyne detection system, see the Kumar et al. (2012) paper for our inspiration basic design layout.

We originally built a TIA with a gain of 4.99 kV/A following the specs laid out in this paper, but we needed a TIA with a gain of 100 kV/A, with an ideal bandwidth of 10 MHz. So, we switched the op-amp from OPA847 to OPA855 for the high GBWP.

However, somewhere along the way, the changes introduced oscillation in the output of the TIA. To confirm that this was not simply a problem from the high gain. I changed the feedback resistance to 11.7kOhm on both the old and the new board. The results show that the OPA847 still performs without oscillations while the OPA855 does.

Note that the photodiodes (PDs) are inserted using PD sockets and the photodiodes can be removed at any time this leaves the TIA with no input and even under these conditions we see that the OPA855 oscillates. The supply is a Keysight precision DC source, so it should be stable. And I did make some tests with EM shielding and it did not help the OPA855 circuit.

The PDs that I am using have a parasitic capacitance of 8 pF each.

Details are shown in the attached PowerPoint presentation. Also, the KiCad files for the OPA855 board are all in "Homodyne Detector. zip".

Any and all input would be welcomed.


  • You have a lot of files in that .zip - have not yet found a simple schematic, can you just send that as a snip or TINA file, 

  • Really?

    Looking at this OPA855 - 3 immediate issues, 

    1. where is your compensation cap for this decomp part, shows 0.1pF but that is not enough

    2. The 200k (pot) on the noninverting input, this being a bipolar part sure, you might cancel the Ib error, but you might also send the input CM voltage out of range. say you have the typ 12uA Ib, with 200k there that is an input CM of 2.4V - is that in range? 

    3. I don't see any series output element to isolate the cable capacitance - normally will oscillate if you do that. 

  • Hi Michael,

    Just received response from customer, please see details below

    1. During my design I was following (at least what I thought I understood from),, and it seemed to claim the stability condition is eq. (3)

    f_C = f_GBW * C_F/(C_F+C_T) = (8 GHz) * (0.1 pF)/((0.1 pF) + (8 pF + 8 pF + 0.6 pF + 0.2 pF)) = 47.3 MHz > 15.9 MHz = 1/(2(pi)(100kOhm)(0.1pF)) =1/(2*pi*C_F*R_f) = f_P

    which is satisfied even with the addition of another 10 pF of total terminal capacitance which should be more than enough to cover any stray capacitance in the circuit.

    I could very well be incorrect, but could you point me in the right direction so that I know what equation I should use to determine the value of C_F?

    2. I am unsure about this, but the input bias current for OPA855 is typical -12uA according to the datasheet as you said and we operate our pot at ~100kOhm to set the output voltage to 0 V. This leads to a voltage of ~-1.2 V. We need a pot there to tune the DC offset to zero. All the pictures in the slides with a resonance, usually marked with "balance DC offset" means we tuned the pot to around 100kOhm. I think this should be within the specs.

    3. You may be right on this point. On all the diagrams (see fig. 11-1 from the OPA855 spec sheet for example) I understood it as having impedance matching elements go to the ground, but I did do anything else (no series element).

    Could you again point us in the right direction to know how to isolate the cable capacitance? Also, if you have a test in mind that we could do without destroying the board to see if this is the case that would be ideal.

    Since we did the same thing on the OPA847 board and didn't see any issues I have never even thought about this point.


  • quite a number of layers here - starting from that app note, a number of common errors in there, but might still be approx. useful. Lets start with Figure 3 with the OPA140, 1st we need to seperate unity gain bandwidth from true gainbandwidth product which is what you need for the Zt design. 

    I had this open loop Zout sim in my files (for some forgotten reason). The GWL model really tries to mimic the complex Zol and this one looks good. 

    Modifying this to an Aol test, give this - and we need to include some load to get the right curve, the spec table says 2k with a typ GBP of 11MHz, lets see. 

    I tend to trust the good TINA models more than the datasheet since this is a fair amount of confusion in true GBP,. This sim is showing a true GBP (go to the 40dB Aol point and take that F*100X) of 9.9Mhz and a unity gain 0dB crossover of 7.5MHz. That is often the case as the higher Aol poles roll the curve over a bit up towards Aol=0dB point. Figure 6-15 confirms this, so that 11MHz is a marketing number. Normally would also check the high gain SSBW to confirm the true GBP, but this family of datasheets don't show any higher gain SSBW. Anyway, the GBP number to use in transimpedance is that 9.9Mhz not the 11Mhz or the 7.5Mhz Aol =0dB. The app note mistates this. What we care about in Zt design is the 1pole rolloff part of the Aol since all of the xover is happening on that curve, not the full curve out at Aol=0dB. 

    This comes up so often, I published this explaination,

    Then, that closure rate argument in app note is kind of a handwave approx. but let's continue to test that Figure 3 in a LG phase margin siml. 

    First the closed loop testing output pin spot noise (a quick way to see low phase margin issues), 

    Yes, here is a peaked output noise, but all Zt have this and this is not too sharp - actually probably low, but not oscillatory phase margin, 

    Now let's do the phase margin for this, but first, we have enought to estimate the peaking now, 

    I think of a Zt stage as a 2nd order low pass filter where the key Fo frequency is the geometric mean of the true GBP and the zero formed by the Feedback R and total C on the inverting node (that is 117pF if the model has that the input C in there correctly). Doing that predicts a Fo=519kHz (about where that noise peak is). Then, the very simple Q for the closed loop is the ratio of feedback pole to that Fo - or Q=995kHz/519kHz = 1.91, so yes, peaking but far from oscillatory. Using Figure 1 in this article, that is right around 30deg phase margin (and the end of this article also works through that bogus closure rate thing in a Zt example),

    So using Figure 2 in this article, we should have about 5.9dB peaking in the closed loop response, zooming in on the 500kHz region (and using DC gain = 94dBohm) shows this, pretty close - 6.7dB peaking, 

    Now for the LG phase margin (and this is what you need to do for your circuit, adding various output Cload to see its impact)

    So this is showing 24deg phase margin, which is why the peaking is a little more - probably due the Zol interacting with the load and feedback network, 

    From here, you can also reset the response to whatever you want adjusting the feedback pole - a Butterworth is just a Q of 0.707 (and should have a phase margin of about 63deg). Using that simple ratio above, setting the feedback pole at 0.707*Fo = 367kHz, requires a Cf = 8.7pF, making that change in the LG sim gives about 59deg phase margin, pretty close, 

    So, modify this LG file to your design and check phase margins - the sense element here is rotated to report not loop phase, but phase margin directly. that midrange dip in the phase margin is very normal, don't worry about it. 

    OPA140 50k Zt LG sim from SBOA354.TSC

    I spent time on this as you can't go very far with the misinformation in SBOA354. 

  • Little more time here, 

    with no Cload, the OPA847 does look stable, 48deg phase margin, 

    And, even with 20pF still ok - the noise gain peaks up to 1+16pf/.1pF = 161 and goes flat at about 16MHz feedback pole so yes, ok, 

    Now with the OPA855, 

    In theory even better phase margin with no Cload and about double the BW

    Adding 20pF

    Well this looks surprisingly good, 

    Now, include a typ 0.2pF for SMD R's in the feedback R, broadbands it quite a bit as the NG at higher F is lower, still real good phase margin, 

    So the basic LG looks real good, you say it is oscillating - perhaps you have an input stage issue with that 100nF on that V+ pin going self resonant. I usually include a series 20ohm right into the V+ pin - this came up recently in another thread, and that was indeed the issue and fix,

    here is the OPA855 LG file, 

    OPA855 50k Zt LG.TSC

  • Doing some more sims with that non-inverting network, not sure about those results but it might be easy to try removing that 100nF cap and changing the 100k to 20ohm to see if the oscillation goes away. 

  • Hi Maynard,

    I think one major issue here is the too long copper trace between the photo detectors and the -input of OPAmp. Remember that -according to the 1nH/mm rule of thumb- a 10mm long copper trace equals 10nH. This adds an insane inductance into the feedback loop and forms a series resonance with the detector capactance. And while an assumed detector series resistance of 20R guarantees a phase margin of 49° in the OPA847 circuit, it's not enough to also keep the OPA855 circuit stable:



    Actually, there's no detector series resistance which can make the OPA855 circuit run stable, at least not in this simulation:

    Twenty logarithmically staggered series resistances between 1R and 1k are considered above.


  • Really good work Kai, Merry Christmas - 

    This does raise the question of course what frequency of oscillation is being observed with the OPA855? 4G is quite high, a lot of equipment might not see that. 

  • Happy Christmas to you too, dear Michael :-)

  • Hello Maynard,

    If you do not have any further questions, please revisit the post to mark as resolved.  If you are still in need of assistance, please re-engage with the forum post so we can assist you.