Discrete Opamp Open Design

I don't think I'm so much 'focussed on FET990' as attempting to achieve Guru Wurcer's SWOPA performance with a much simpler circuit.
...
In #2801, linuxguru demonstrates enhanced voltage follower performance up to near clipping. To match this, the i/p cascodes become u309.
...
There was some talk about bootstrapping the evil clamp diode but no one has posted any results.

Thanks for the references to the prior posts. Actually, I used U309 in the sims, but my prototypes currently use the Vishay/Siliconix SST310 aka MMBFJ310 aka J310, and it seems to work fine as an upper cascode element (no idea if it's better/worse than U309/J309).

I added the bootstrapped clamp-diode circuitry to the next revision of the board (in the same 15 mm x 15 mm form-factor), but have not submitted it for fabrication - I'd prefer to catch any other changes/mods to the current prototype and include them as well if possible. The current prototype uses a BAV199 clamp diode, but BAS70-04 may work better in the bootstrapped version.

The current prototype works and sounds good - when plugged into the line output stage of a modded Kenwood DP-1001 CD player, it sounds very clean and analytical. I couldn't find space to install it in the I/V stage, so I'll do the I/V auditioning in a Marantz CD4000 instead. It requires a DIP8 single -> DIP8 dual adapter (like a browndog or similar) for use in a typical dual DIP8 socket. I've built a general-purpose adapter for this, as shown in the pictures below - the adapter + 2x LF06/FET990 are shown separately, as well as installed in the CD player.
 

Attachments

  • lf06s_dual_12x9.jpg
    lf06s_dual_12x9.jpg
    189.8 KB · Views: 791
  • lf06s_dual_dp1001_12x9.jpg
    lf06s_dual_dp1001_12x9.jpg
    202.1 KB · Views: 770
... Is that an instrumentation block?

If I were to submit my own design, what specs would it need to have to compete with the current designs here?

I suppose that it's possible to attach probe clips by pulling out the opamp modules a little, exposing the pins (or by using long pins in the central DIP8 section), but I didn't really think about instrumentation when laying out the adapter.

Not really a competition, more about trying to disseminate ideas that can be mixed-and-matched in future applications. If several working opamp designs emerge from the process, that's great. No real qualifying bar or anything - both SWOPA and FET990 do better than -120 dBr THD20 at swings in the region of 4V into 600R, but you're welcome to submit anything that looks novel. I have an earlier design that's about 30 dB worse in THD20, but still sounds very sweet. Low distortion isn't the only goal.
 
I think it would be interesting to design a circuit with RF PSRR and resistance to RFI as the first priorities. A circuit where you don't need to worry about ultrasonics at the input.

That brings up a question. How do these circuits fare when you add a 150KHz 5mV signal to the input?

I think a very sensible goal would be a discrete opamp that could replace any of the popular opamps available.

And then there is the goal of sounding the best. The question is, would the best sounding opamp sound that good in every application, or only the application it's designed for? Can you make an opamp that sounds good no matter what?
 
Actually, I used U309 in the sims, but my prototypes currently use the Vishay/Siliconix SST310 aka MMBFJ310 aka J310, and it seems to work fine as an upper cascode element (no idea if it's better/worse than U309/J309).
When I tried your sims, I found it had better THD in voltage follower mode at high voltages. Mine was better at lower levels or with gain.

I traced it to the cascodes. u311 that I used starts saturating at high voltage follower levels. Changing to u309 matched your high level follower performance.

If I was using it at high gain or as the front end to a PA, I'd use u311 to give the i/ps more Vds to breathe.

Kean, one of the reasons for going to the trouble of a DOA is to be able to optimise it for each application.

I added the bootstrapped clamp-diode circuitry to the next revision of the board (in the same 15 mm x 15 mm form-factor)
But has anyone simmed the bootstrapped clamp?

The ordinary clamp gives the main remaining THD in the standard JE990. My versions allow for good overload without the clamp.
_______________

My design goals are to equal or better SWOPA performance with a much simpler circuit. I've got the first goal. The 2nd is still a couple of active devices more than I want. :eek:

If it wasn't a general purpose OPA needing to work well from 60dB to 0dB gain & with any kind of load or voltage, it could be Muntz'd further. eg use 2-terminal CCS in at least 3 places.

I use more complex bias arrangements cos users might want to select a different Iq or IPS current

Even JE990 is made in different versions for different voltages but I'm trying to stick to the spirit of the rules. :)

If I didn't do that, I could easily meet Marshy's device count criteria :D
 
Disabled Account
Joined 2012
My design goals are to equal or better SWOPA performance with a much simpler circuit. I've got the first goal. The 2nd is still a couple of active devices more than I want. :eek:

If it wasn't a general purpose OPA needing to work well from 60dB to 0dB gain & with any kind of load or voltage, it could be Muntz'd further. eg use 2-terminal CCS in at least 3 places.

I use more complex bias arrangements cos users might want to select a different Iq or IPS current

Even JE990 is made in different versions for different voltages but I'm trying to stick to the spirit of the rules. :)

If I didn't do that, I could easily meet Marshy's device count criteria :D

It's great watching the great designs here being distilled to essential topology... designing at its best.


-Richard Marsh
 
Last edited:
But has anyone simmed the bootstrapped clamp?

The ordinary clamp gives the main remaining THD in the standard JE990. My versions allow for good overload without the clamp.

I did sim several variants of the bootstrapped clamp, but because I was still playing around with the bootstrap topology, I didn't get around to posting the simulation numbers. The current version requires one additional NPN, a resistor, and a dual Schottky clamp and fits in the same form-factor.

I also sim'ed your VAS Cascode variant - there are some Pros and Cons, compared to the basic Blameless-derived buffered VAS, at first glance:

Pros:

1) Unity-gain GBW can be improved over the Blameless - 50 MHz is comfortable.

2) Clamp diode is replaced by a cheap dual like a BAV99 for the cascode, so no area penalty.

3) N-JFET for the cascode biasing is easily replaced by a suitably-sized resistor - seems to have negligible impact on PSRR.

Cons:

1) The closed-loop unity gain AC response curve is wavy/kinky/peaky at the HF end. This can be tamed by tweaking the emitter degeneration resistance of the VAS and/or the Cherry compensation cap - it seems a bit sensitive to both.

2) An additional 1x Vbe is lost for VAS voltage swings due to the cascode - not a major issue, except for low-rail operation like +/- 5V, which is common on commodity sound cards.

3) Slightly higher THD20 at unity gain compared to the bootstrapped clamp version.

On the whole, the GBW improvement is a major gain, but it may also be more finicky in implementation with bypass and RF issues as a result.
 
I did sim several variants of the bootstrapped clamp, but because I was still playing around with the bootstrap topology, I didn't get around to posting the simulation numbers. The current version requires one additional NPN, a resistor, and a dual Schottky clamp and fits in the same form-factor.

I also sim'ed your VAS Cascode variant - there are some Pros and Cons, compared to the basic Blameless-derived buffered VAS, at first glance:

Pros:

Cons:

On the whole, the GBW improvement is a major gain, but it may also be more finicky in implementation with bypass and RF issues as a result.
Thanks for this linux .. which make my head really swell. :)

My own opinion is

PROS
  • simple with good performance
  • very stable. I have 2 pgs of stability trials with different gains, fb resistors & loads, resistive & reactive.
  • easy adjustment of IPS & OPS currents
CONS
  • Huge bandwidth
  • still too many devices. The LTP & VAS CCS may be replaced with 2 terminal CS in production. The cascode CCS is to allow for different supply voltages. Allowing good adjustment of IPS & OPS currents needs extra bits.
  • though THD20k is good, THD1k is only slightly better. This is minor as both are as good as SWOPA in most applications
  • As it is Guru Wurcer's uncompensated OPA, has a long list of compensation requirements to optimise different applications
I am playing with a Baxandall VAS which uses less bits and gives better THD1k but haven't done the full monty stability as above.

Also my newbie LTspice education has advanced slightly and I would like to put them through Tian probes & the 'proper' THD analyzer.
 
I am playing with a Baxandall VAS which uses less bits and gives better THD1k but haven't done the full monty stability as above.

Please post the Baxandall VAS when you think it's ready for scrutiny.

Meanwhile, I stumbled upon an output stage which simulates pretty good in Class-A or Class-AB. The preliminary sims are with an output stage current of 5 mA.

The topology started as a diamond buffer, but it could be looked at as a complementary Vbe-multiplier, a complementary pair of Baxandall super-pairs, or a complementary rush-cascode, etc. It isn't actually a true diamond-buffer, despite the superficial similarity. It's a bit more complicated than I'd like to implement, but there are some saving features - the low-power pair (BC847/857 in the sim) sees very little power dissipation, so it could be an SOT363 NPN/PNP dual, like the ubiquitous BC847BPN.

At 4V into 600R, THD20 is mostly H2, with everything else at ~ -170 dBr. I haven't exhaustively checked stability, but the unity-gain small-signal response looks smooth and continuous, so it shouldn't be a problem.

Edit: It could be grafted effortlessly into SWOPA as well, but bias stability and PSRR may need to be checked carefully.
 

Attachments

  • fet990_diamond.jpg
    fet990_diamond.jpg
    82.8 KB · Views: 722
  • fet990_diamond_4v600r_fft.jpg
    fet990_diamond_4v600r_fft.jpg
    42.8 KB · Views: 580
Last edited:
Bootstrapped Clamp diodes?

Please post the Baxandall VAS when you think it's ready for scrutiny.

Meanwhile, I stumbled upon an output stage which simulates pretty good in Class-A or Class-AB. The preliminary sims are with an output stage current of 5 mA.
....
At 4V into 600R, THD20 is mostly H2, with everything else at ~ -170 dBr. I haven't exhaustively checked stability, but the unity-gain small-signal response looks smooth and continuous, so it shouldn't be a problem.
Siva, this looks good.

Is this also how you have implemented the Bootstrapped Clamp diodes?

Can you post a .ASC and also your SPICE models please.
 
Yup, that's the bootstrapped-clamp (I tried several variations, including one with a diode in series with the emitter of the NPN, one without the NPN, etc., and they're mostly equivalent in performance - just slight differences in the DC leakage current through the clamp diode, etc.).

The models are 100% stock LTSpice models - here's the .asc file ( a few values may have changed from the schematic posted earlier, as I keep trying to fine-tune it).
 

Attachments

  • lf06s_v1.4_diamond.asc
    9.2 KB · Views: 147
OK, just finished the layout of the circuit (with the new output stage, which I'll call the Diamond Cascode) in the previous post - managed to squeeze it into 0.6" x 0.6 " (15.2 x 15.2 mm) as before. Had to use 2x Rohm PNP duals for the Wilson CM, substitute the output SOT89s by SOT23s, 5x 0603 resistors (all the rest are 0805 as before), double-sided SMD.

I'm still mulling over the output BJTs - having a slightly larger footprint and SOT89s may be a better option. I'll play with the layout for a while before committing it for fabrication.

The output stage can be biased into Class-A, AB or B just by adjusting one bias resistor, R12. It might be worth using an SMD preset for that resistor, need to find one which is small enough.
 

Attachments

  • lf06d_sch.png
    lf06d_sch.png
    8.6 KB · Views: 824
  • lf06d_brd.png
    lf06d_brd.png
    75.8 KB · Views: 805
Last edited:
Usually you need to use vector fonts on Eagle PCBs otherwise the text moves when you generate the gerbers.

Options -> User interface.. -> Persistent in this drawing

Thanks, I'll try it out. I presently handle it manually by looking at the rendering on the generated gerbers with a viewer like Gerbv, and adjusting the anchor and/or size of each text string manually until it fits and is positioned correctly.
 
Yup, that's the bootstrapped-clamp (I tried several variations, including one with a diode in series with the emitter of the NPN, one without the NPN, etc., and they're mostly equivalent in performance - just slight differences in the DC leakage current through the clamp diode, etc.).

The models are 100% stock LTSpice models - here's the .asc file ( a few values may have changed from the schematic posted earlier, as I keep trying to fine-tune it).

Hi linuxguru,
When I saw this yours opamp I thought that it will be good to use it in my ODNF power amp as ODNF helper opamp. More about here: http://www.diyaudio.com/forums/solid-state/238252-odnf-no-gnfb-power-amp-8.html#post3568663
I have a problem to have it working, it ascilate. Attached is LTspice zip file, and if you have suggestion what could be the problem, .ac looks OK to me, but .tran oscilate.
Thanks Damir
 

Attachments

  • GainWire-diamond-HEC-ODNF-power-linuxguru.zip
    9.3 KB · Views: 124
I have a problem to have it working, it ascilate. Attached is LTspice zip file, and if you have suggestion what could be the problem, .ac looks OK to me, but .tran oscilate.

I'm not sure what a servo opamp for ODNF or Error-Correction applications should be optimized for, but I'm guessing that you'll need a fast opamp (high GBW) and suitable compensation/stability mods. The cascoded VAS variant of the FET990 that Richard (kgrlee) posted earlier has (or can be made to have) higher GBW - you may want to look at that.

The component to play around with to improve stability of my variant is C1 on the ltspice simulation schematic, the Cherry compensation cap - try increasing it from 47pF to 100..150pF. Beyond that, THD20 will be adversely impacted, but it may or may not be an issue for an ODNF servo - I don't know.

(Monolithic fast opamps that could possibly be used for the ODNF servo include the LT1361 and 1364, apart from the LT1468 suggested earlier.)

Edit: I spotted a mistake in the way you've wired the Cherry compensation network - it needs to be connected to the output node of the opamp, not the inverting input (the mistake probably arose because I posted unity-gain buffer simulation schematics, where the output is also connected to the inverting input). Here's the corrected .asc file, and it works without oscillation in transient analysis, even with the original 47pF Cherry C1.
 

Attachments

  • GainWire-diamond-HEC-ODNF-power-linuxguru-mod1.asc
    21.2 KB · Views: 125
Last edited:
I'm not sure what a servo opamp for ODNF or Error-Correction applications should be optimized for, but I'm guessing that you'll need a fast opamp (high GBW) and suitable compensation/stability mods. The cascoded VAS variant of the FET990 that Richard (kgrlee) posted earlier has (or can be made to have) higher GBW - you may want to look at that.

The component to play around with to improve stability of my variant is C1 on the ltspice simulation schematic, the Cherry compensation cap - try increasing it from 47pF to 100..150pF. Beyond that, THD20 will be adversely impacted, but it may or may not be an issue for an ODNF servo - I don't know.

(Monolithic fast opamps that could possibly be used for the ODNF servo include the LT1361 and 1364, apart from the LT1468 suggested earlier.)

Edit: I spotted a mistake in the way you've wired the Cherry compensation network - it needs to be connected to the output node of the opamp, not the inverting input (the mistake probably arose because I posted unity-gain buffer simulation schematics, where the output is also connected to the inverting input). Here's the corrected .asc file, and it works without oscillation in transient analysis, even with the original 47pF Cherry C1.

Thanks linuxguru, I'll try that.
P.S. It's working now, how stupid of me not to see where the Cherry compenstion has to go.
Look the original thread for result.
BR Damir
 
Last edited: