Author Topic: Different type Precision Unity Gain Follower  (Read 6500 times)

0 Members and 1 Guest are viewing this topic.

Offline gf

  • Super Contributor
  • ***
  • Posts: 1831
  • Country: de
Re: Different type Precision Unity Gain Follower
« Reply #75 on: February 28, 2026, 08:08:59 pm »
Try installing LTspice XVII.  Just dl the .exe installer ( https://ltspice.analog.com/software/LTspiceIV.exe IIRC that's for WinXP...

Thank you, this one worked out of the box :-+ [ The one that failed was an MSI installer. ]



Maybe not only Phase, but Amplitude, and PSR and CMR, maybe even Distortion ;)

I wonder how well large signal distortion is modeled. Can it be trusted?

I tried high resolution transient analysis with a 10Vp sine wave and LT1002.

At 100 Hz, THD is virtually zero for both simple and nested followers. The nested follower is superior in terms of gain magnitude error (large signal RMS value obtained through transient analysis).

From SPICE log:

simple: Total Harmonic Distortion: 0.000001%(0.000000%)
nested: Total Harmonic Distortion: 0.000000%(0.000000%)

rms1: RMS(v(vout1))=7.07105828433 FROM 0 TO 0.05
rms2: RMS(v(vout2))=7.07106836523 FROM 0 TO 0.05
gain_err1: rms1*sqrt(2)/10-1=-1.3473966517e-006  <-- simple
gain_err2: rms2*sqrt(2)/10-1=7.82577911362e-008  <-- nested

At 1000 Hz, the nested follower has the better THD (although both are still very low), but the simple follower now wins in terms of gain magnitude error (large signal RMS value obtained through transient analysis).

simple: Total Harmonic Distortion: 0.000648%(0.000000%)
nested: Total Harmonic Distortion: 0.000017%(0.000000%)

rms1: RMS(v(vout1))=7.0710613613 FROM 0 TO 0.005
rms2: RMS(v(vout2))=7.07113146388 FROM 0 TO 0.005
gain_err1: rms1*sqrt(2)/10-1=-9.12247829277e-007  <-- simple
gain_err2: rms2*sqrt(2)/10-1=9.00175430596e-006  <-- nested

EDIT: Added FFT plots for transient analysis, 1kHz.
« Last Edit: February 28, 2026, 08:16:50 pm by gf »
 
The following users thanked this post: mawyatt

Offline mawyattTopic starter

  • Super Contributor
  • ***
  • Posts: 6118
  • Country: us
Re: Different type Precision Unity Gain Follower
« Reply #76 on: February 28, 2026, 09:09:58 pm »
Yeah special thanks to RoGeorge, he's quite helpful  :clap:

Gald you are up and running with LTspice :-+

Wouldn't put much faith in any of these op-amp distortion models at these levels, and why it's likely best to measure such, but requires the proper TE which we don't have. Same kinda goes for the other simulations and such, they are so low level and highly dependent on the model fidelity, but at least the models do offer more of the core op-amp characteristics than ideal. Here's where measurements can really help, we even tried our PicoScope which uses intrinsic (not ERES) core 16 bit ADCs, but still not as good as what's required.

Our intuition hints that the distortion characteristics of the dual amps on chip should partially correlate and since both the forward and feedback amp effectively "see" the similar dynamic signal and dynamic common mode at low frequencies, there should be some partial reduction in distortion as we expect with PSR and CM effects.

Anyway, your analysis, some simulations and crude measurements seem to "hint" that this Dual Amp Follower or as you say "nested follower" actually works down in the low frequency area.

Best
Curiosity killed the cat, also depleted my wallet!
~Wyatt Labs by Mike~
 

Offline mawyattTopic starter

  • Super Contributor
  • ***
  • Posts: 6118
  • Country: us
Re: Different type Precision Unity Gain Follower
« Reply #77 on: February 28, 2026, 11:25:56 pm »
Try installing LTspice XVII.  Just dl the .exe installer ( https://ltspice.analog.com/software/LTspiceIV.exe IIRC that's for WinXP...

Thank you, this one worked out of the box :-+ [ The one that failed was an MSI installer. ]



Maybe not only Phase, but Amplitude, and PSR and CMR, maybe even Distortion ;)

I wonder how well large signal distortion is modeled. Can it be trusted?

I tried high resolution transient analysis with a 10Vp sine wave and LT1002.

At 100 Hz, THD is virtually zero for both simple and nested followers. The nested follower is superior in terms of gain magnitude error (large signal RMS value obtained through transient analysis).

From SPICE log:

simple: Total Harmonic Distortion: 0.000001%(0.000000%)
nested: Total Harmonic Distortion: 0.000000%(0.000000%)

rms1: RMS(v(vout1))=7.07105828433 FROM 0 TO 0.05
rms2: RMS(v(vout2))=7.07106836523 FROM 0 TO 0.05
gain_err1: rms1*sqrt(2)/10-1=-1.3473966517e-006  <-- simple
gain_err2: rms2*sqrt(2)/10-1=7.82577911362e-008  <-- nested

At 1000 Hz, the nested follower has the better THD (although both are still very low), but the simple follower now wins in terms of gain magnitude error (large signal RMS value obtained through transient analysis).

simple: Total Harmonic Distortion: 0.000648%(0.000000%)
nested: Total Harmonic Distortion: 0.000017%(0.000000%)

rms1: RMS(v(vout1))=7.0710613613 FROM 0 TO 0.005
rms2: RMS(v(vout2))=7.07113146388 FROM 0 TO 0.005
gain_err1: rms1*sqrt(2)/10-1=-9.12247829277e-007  <-- simple
gain_err2: rms2*sqrt(2)/10-1=9.00175430596e-006  <-- nested

EDIT: Added FFT plots for transient analysis, 1kHz.

Nice work :-+

Try looking at PSR improvements, we thought this should be the case and sims showed an improvement somewhat verified by measurements, altho TE limited.

The PSR is obviously behavioral modeled for both VCC and VEE as the only difference is either is the Phase in the Linear AC and Time Domain simulations shown for the OP07 model. Both the Linear AC and Time Domain show ~56dB PSR VCC or VEE Improvement as expected, and the improvement ceases and becomes worse after ~5KHz.

Anyway, these spice OP07 models are limited and the PSR AC response of the Follower doesn't behave as a real OP07 should showing with a flat response leading to a null, then the usual rising response.

Best
« Last Edit: March 01, 2026, 12:21:16 am by mawyatt »
Curiosity killed the cat, also depleted my wallet!
~Wyatt Labs by Mike~
 

Offline mawyattTopic starter

  • Super Contributor
  • ***
  • Posts: 6118
  • Country: us
Re: Different type Precision Unity Gain Follower
« Reply #78 on: March 01, 2026, 01:15:49 am »
Here's a more realistic Spice model using a OP777 rather than OP07 for the PSR investigation. This seems to better model the PSR effects for the VCC and VEE rails in both Linear AC and Time Domain Analysis. Shows similar 56~57 dB improvement @ 100Hz with Dual Amp Follower in both Linear AC and Time Domain Analysis for VEE and VCC PSR with more "believable" plots ;)

Best
Curiosity killed the cat, also depleted my wallet!
~Wyatt Labs by Mike~
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 8482
  • Country: ro
Re: Different type Precision Unity Gain Follower
« Reply #79 on: March 01, 2026, 01:17:57 am »
I wonder how well large signal distortion is modeled. Can it be trusted?

I don't know how close to the physical LT1001 is the model.  Briefly looking to the LT1001 model (it's inside the ~/.wine/drive_c/LTspiceXVII/lib/sub/LTC.lib file, in the first 30 lines), seems made with behavioral voltage sources plus a few other components, so not very accurate.

As a fun exercise, I've tried the same settings as yours (on a simple follower), and OP07 gives the same number for distortions as LT1001 or as LT1001A.  However, a precision opamp like AD549 gives lower distortions.

And the ideal op-amp called 'opamp' gives zero distortions.  8)

It's useful to also attach the .asc file, together with the LTspice printscreen, so others can play with the same schematic.

Offline mawyattTopic starter

  • Super Contributor
  • ***
  • Posts: 6118
  • Country: us
Re: Different type Precision Unity Gain Follower
« Reply #80 on: March 01, 2026, 01:41:43 am »
I wonder how well large signal distortion is modeled. Can it be trusted?

I don't know how close to the physical LT1001 is the model.  Briefly looking to the LT1001 model (it's inside the ~/.wine/drive_c/LTspiceXVII/lib/sub/LTC.lib file, in the first 30 lines), seems made with behavioral voltage sources plus a few other components, so not very accurate.

As a fun exercise, I've tried the same settings as yours (on a simple follower), and OP07 gives the same number for distortions as LT1001 or as LT1001A.  However, a precision opamp like AD549 gives lower distortions.

And the ideal op-amp called 'opamp' gives zero distortions.  8)

It's useful to also attach the .asc file, together with the LTspice printscreen, so others can play with the same schematic.

The AD549 model shows a little better PSR performance at ~60dB improvement @ 100Hz on the VEE rail but same  PSR ~56dB on VCC with the Dual Amp vs the Standard Follower.

Best
« Last Edit: March 01, 2026, 02:53:09 am by mawyatt »
Curiosity killed the cat, also depleted my wallet!
~Wyatt Labs by Mike~
 

Offline gf

  • Super Contributor
  • ***
  • Posts: 1831
  • Country: de
Re: Different type Precision Unity Gain Follower
« Reply #81 on: March 01, 2026, 11:35:50 am »
I wonder how well large signal distortion is modeled. Can it be trusted?

I don't know how close to the physical LT1001 is the model.  Briefly looking to the LT1001 model (it's inside the ~/.wine/drive_c/LTspiceXVII/lib/sub/LTC.lib file, in the first 30 lines), seems made with behavioral voltage sources plus a few other components, so not very accurate.

As a fun exercise, I've tried the same settings as yours (on a simple follower), and OP07 gives the same number for distortions as LT1001 or as LT1001A.

Obviously, the LT1001 subcircuit does not contain a single Q component.
There is an OP07 subcircuit in LTC.lib. However, when I place an OP07 in the schematic, the netlist still shows an LT1001 :-//
It seems to be aliased under the hood. So it's no surprise that OP07 vs. LT1001 does not produce different results.
Is it possible to enforce the use of the OP07 subcircuit for OP07?

EDIT:

I also wonder how to model the mismatch, e.g. between the two opamps inside an LT1002.
Would be interesting to have two models that differ by the worst case mismatch.
While it is possible to copy the subckt using a different name, the question is how to adjust the numerous parameters to reflect a realistic mismatch.
« Last Edit: March 01, 2026, 01:36:01 pm by gf »
 

Offline mawyattTopic starter

  • Super Contributor
  • ***
  • Posts: 6118
  • Country: us
Re: Different type Precision Unity Gain Follower
« Reply #82 on: March 01, 2026, 02:32:22 pm »
I also wonder how to model the mismatch, e.g. between the two opamps inside an LT1002.
Would be interesting to have two models that differ by the worst case mismatch.
While it is possible to copy the subckt using a different name, the question is how to adjust the numerous parameters to reflect a realistic mismatch.

This is moving into a Spice modeling area where having a core model based upon actual bipolar and/or MOS devices rather than behavioral would prove beneficial. Suspect these models exist for "some" op-amps, but might be proprietary or hidden behind a pay-wall. Op-amp models based upon the GWL may prove better fidelity overall, but may also be difficult to manipulate.

One possibility that "might" work is to selectively enable individual components relative temperature (active or passive) within the model. Another thought if some op-amp parameters a PS influenced, run the op-amps with different PS voltages to create a mismatch.

Way back when we designed chips using Cadence, MC simulations provided a means to evaluate circuit behavior over varying device specifics, temp, and what not, but these circuits were all obviously at discrete levels, not behavioral.

Anyway, maybe someone knows if discrete bipolar and/or MOS op-amp models are available and where?

Edit: Here's about a gross as mismatch as possible, we used a AD549 based Follower and a Dual Amp Follower with AD549 forward and OP777 as feedback, so two completely different op-amps and models. This is the VCC PSR as that's what was setup to run in the simulation, and you can see this configuration produces worse VCC PSR below ~2Hz but slight improvement to ~200kHz, and Transient at 100Hz shows slight improvement.

Best
« Last Edit: March 01, 2026, 02:48:24 pm by mawyatt »
Curiosity killed the cat, also depleted my wallet!
~Wyatt Labs by Mike~
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 8482
  • Country: ro
Re: Different type Precision Unity Gain Follower
« Reply #83 on: March 01, 2026, 03:32:59 pm »
I also wonder how to model the mismatch, e.g. between the two opamps inside an LT1002.
Would be interesting to have two models that differ by the worst case mismatch.
While it is possible to copy the subckt using a different name, the question is how to adjust the numerous parameters to reflect a realistic mismatch.

I'm not sure if you want to produce better/different/altered opamp models, or just want to step through more models in order to see the difference.

If it's the first, at best you can use one of the programmable opamps (named 'opamp' ... 'UniversalOpamp1..4' when you place the component in the GUI).  These generic models have a set of parameters that can be changed, like e.g. frequency of the first/second poll, max current, Rout, Rin, etc.  They also have a button in the 'Select Component Symbol' window:  'Open this macromodel's example circuit', to see the available param names for each.

For the former (if you want to compare existing models), it is possible to .step through a list of models.  However, the .step command can take only numbers, so to step through different names, it is necessary to add a .subckt wrapper, similar with what Zero999 did in https://www.eevblog.com/forum/projects/different-type-precision-unity-gain-follower/msg6200389/#msg6200389, a wrapper that will change the opamp name into a number.

Attached is a .asc example for the schematic of the normal voltage follower.  Same schematic is .stepped with 3 different opamp models, so to easily compare their waveform in the same plot, or to see their .meas results in the same .log file.



The plot is a zoom-in into the very last peak of the Vout, each opamp a different color.  I didn't investigate why, but it is curious how the LM108A model produces a Vout peak slightly bigger than its input.  ???

The THD calculated by .FOUR was:
Code: [Select]
.step oa_nr=108
Total Harmonic Distortion: 0.000016%(0.000000%)
.step oa_nr=549
Total Harmonic Distortion: 0.000003%(0.000000%)
.step oa_nr=1001
Total Harmonic Distortion: 0.000648%(0.000120%)
« Last Edit: March 01, 2026, 03:59:38 pm by RoGeorge »
 
The following users thanked this post: gf, mawyatt

Offline mawyattTopic starter

  • Super Contributor
  • ***
  • Posts: 6118
  • Country: us
Re: Different type Precision Unity Gain Follower
« Reply #84 on: March 01, 2026, 03:57:08 pm »
Another option to create a mismatch op-amp model would be to find a model that has a few actual Bipolar transistors or MOS transistors in the model, likely the more the better, and change the transistor and other parameters to reflect the desired op-amp mismatch characteristic. Some actually show slight changes with PS levels, which "hints" these are likely choices for creating a "mismatch" op-amp model.

Anyway, this is deviating from the core intent of this thread but also helping prove out this Dual Amp Follower actually works and we appreciate the efforts you folks are putting into this :clap:

Best
Curiosity killed the cat, also depleted my wallet!
~Wyatt Labs by Mike~
 
The following users thanked this post: RoGeorge, gf

Offline mawyattTopic starter

  • Super Contributor
  • ***
  • Posts: 6118
  • Country: us
Re: Different type Precision Unity Gain Follower
« Reply #85 on: March 01, 2026, 05:29:30 pm »
We've found a way to create a mismatch version of a given op-amp.

1) Get the op-amp model netlist, like here the OP777.

2) Edit the netlist to create the desired effect(s).

3) Edit netlist .SUBCKT name, like OP777X for example.

4) Edit netlist .ENDS name, (this got us for awhile as we kept getting errors!!)

5) Save netlist as something.cir, in this case OP777X.cir

6) Create or copy a symbol (we just copied our LM358 symbol), or use op-amp2 .

7) Edit symbol SpiceModel to name, like OP777X

8.1) Edit Symbol Value to name, like OP777X

9) In Spice Directive use .include something.cir, like .include OP777X.cir

Now you have a special version of the op-amp with whatever parameters you wish to adjust.

Shown we've modified the OP777 to have a lower GBW product by altering CF in the OP777.cir netlist which is now called OP777X. Will add more results later.

Here's a result of the Dual Amp Follower with an OP777 and OP777X (feedback), where OP777X has a 10% OLBW mismatch, the Standard Follower uses the OP777. Added another with a 1% OLBW mismatch.

Best
« Last Edit: March 01, 2026, 06:47:19 pm by mawyatt »
Curiosity killed the cat, also depleted my wallet!
~Wyatt Labs by Mike~
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf

 

-->