2stageEF high performance class AB power amp / 200W8R / 400W4R

Yes, the position of the probe is correct, but it does not give the loop gain of the inner loop, if the outer loop is active.

Hi Harry
Yes, I should have been clearer, my only excuse is that it was late here (Australian Time).
I usually make a point to use Bode's term "Return Ratio" to make a distinction between the gain at the active devices and the gain in a loop.
The probe correctly shows the Return Ratio and this is what is critical.
More later.

Best wishes
David
 
and on that subject, notice the phase behaviour?
Phase leads as the gain drops.
To observe the inner loop loop gain, you need to disable the global loop at AC (global loop DC feedback still required in order to bias the amplifier properly). This can be done by shorting the +ve and -ve inputs to ground via 1 kF capacitors.
David, I think Harry has identified the cause of the NMP behaviour.

The 'main loop' is the '2nd path' that is the necessary but insufficient condition for NMP. Obvious with hindsight :eek:

It also demonstrates another 'necessary' condition which is easily shown in room responses but for which I don't have a clear theoretical handle. This is that the 'slower or later' path have larger magnitude than the 'direct' path.
______________________________

I should have said before - thanks to astx for bringing the “table” keyword/syntax to my attention - this looks like it could be very handy!
This beach bum grovels at Toni's feet for this most useful tool. :eek:

If I might clarify some of the documentation ...

.step param cnt list 1 2 3 4
.param pra table(cnt, 1, -1, 2, 1, 3, 0, 4, 0)
.param prb table(cnt, 1, 0, 2, 0, 3, -1, 4, 1)

sets up the sim to display up to 4 different changes to a parameter which are defined as

.step param Cm list 2p 4p 6p 8p

Then if the permanent additions to C:\Program Files\LTspice4\plot.defs have been made ...

you can simply 'Add trace' TianA1() etc to the pane of your choice
 
The 'main loop' is the '2nd path' that is the necessary but insufficient condition for NMP.

Yes, I think this is a useful way to consider it.

It also demonstrates another 'necessary' condition which is easily shown in room responses but for which I don't have a clear theoretical handle. This is that the 'slower or later' path have ...

Yes to this too, I have also seen this and seen some discussion in a paper on room equalization. Their position was the same as yours, no clear theory but easily seen.

...clarify some of the documentation ...

.step param cnt list 1 2 3 4
.param pra table(cnt, 1, -1, 2, 1, 3, 0, 4, 0)
.param prb table(cnt, 1, 0, 2, 0, 3, -1, 4, 1)

sets up the sim to display up to 4 different changes to a parameter which are defined as

.step param Cm list 2p 4p 6p 8p

Sorry but I don't think this clarifies it.
Parameter cnt runs from 1 to 4 to set up 2 different runs for each of the 2 probes.
The parameter Cm only has 4 different values by co-incidence, could be any number if you add extra Tian definitions.

Best wishes
David
 
Member
Joined 2011
Paid Member
David's answer is the correct one.

Define 2 Tian probes "run":
.step param cnt list 1 2 3 4
Enable probe A at cnt "1" and "2":
.param pra table(cnt, 1, -1, 2, 1, 3, 0, 4, 0)
Enable probe B at cnt "3" and "4":
.param prb table(cnt, 1, 0, 2, 0, 3, -1, 4, 1)
Step parameter "Cm" with up to 4 values:
.step param Cm list 2p 4p 6p 8p

TianA1 represents result of Cm=2p
TianA2 represents result of Cm=4p
TianA3 represents result of Cm=6p
TianA4 represents result of Cm=8p

TianB1 represents result of Cm=2p
TianB2 represents result of Cm=4p
TianB3 represents result of Cm=6p
TianB4 represents result of Cm=8p

If you need e.g. one more step of Parameter Cm you have to add 2 more "TianAn()" and "TianBn()" functions to your local "plot.defs" file:
.func TianA5() {-1/(1-1/(2*(I(Vi)@17 *V(x)@18 -V(x)@17 *I(Vi)@18 )+V(x)@17 +I(Vi)@18 ))}
.func TianB5() {-1/(1-1/(2*(I(Vj)@19 *V(y)@20 -V(y)@19 *I(Vj)@20 )+V(y)@19 +I(Vj)@20 ))}
It would be easy to add another (3rd) Tian Probe "C":
.step param cnt list 1 2 3 4 5 6
.param pra table(cnt, 1, -1, 2, 1, 3, 0, 4, 0, 5, 0, 6, 0)
.param prb table(cnt, 1, 0, 2, 0, 3, -1, 4, 1, 5, 0, 6, 0)
.param prc table(cnt, 1, 0, 2, 0, 3, 0, 4, 0, 5, -1, 6, 1)
"plot.defs":
.func TianA1() {-1/(1-1/(2*(I(Vi)@1 *V(x)@2 -V(x)@1 *I(Vi)@2 )+V(x)@1 +I(Vi)@2 ))}
.func TianB1() {-1/(1-1/(2*(I(Vj)@3 *V(y)@4 -V(y)@3 *I(Vj)@4 )+V(y)@3 +I(Vj)@4 ))}
.func TianC1() {-1/(1-1/(2*(I(Vk)@5 *V(z)@6 -V(z)@5 *I(Vk)@6 )+V(z)@5 +I(Vk)@6 ))}
.func TianA2() {-1/(1-1/(2*(I(Vi)@7 *V(x)@8 -V(x)@7 *I(Vi)@8 )+V(x)@7 +I(Vi)@8 ))}
.func TianB2() {-1/(1-1/(2*(I(Vj)@9 *V(y)@10 -V(y)@9 *I(Vj)@10 )+V(y)@9 +I(Vj)@10 ))}
.func TianC2() {-1/(1-1/(2*(I(Vk)@11 *V(z)@12 -V(z)@11 *I(Vk)@12 )+V(z)@11 +I(Vk)@12 ))}
a.s.o.
Unfortunately the "@" (=selects a specific array element of the result data) does not accept variables, so we need so much copies of the "Tian" function.

BR, Toni
 
Last edited:
could one of you please explain how to "read" the gain and phase plots in post1240.
I think I understand the upper set.
Green goes too steep as it crosses the 0dB and this shows as phase margin approaching 0degrees @ ~ 2MHz. Whereas the lower curves are less steep at 0dB (in the range 2MHz to 3MHz) and it looks like phase margin ~80degrees at 2.5Mhz, if we choose the correct colour of curve.
Is my interpretation correct?
Can it be restated, to be clearer to others?

But the lower one is quite different. What do the curves mean?
 
Last edited:
Hi Guys,

You have successfully distracted me from my “real work”. I have tinkered more with my two-pole demo schematic (screenshots posted to Dadod’s thread) and would like to share it with you.

I have made it so that it does two Tian probes (global and inner loops), closed-loop (i.e. input to output) frequency response, and +ve and -ve supply rejection.

This revealed that compensating the inner loop at the base of the VAS/TIS harms the -ve rail PSR, but this can be fixed by dangling an identical RC network from the other collector of the current mirror.

Enjoy!

Harry.
 

Attachments

  • two-pole compensation dual Tian.asc
    13.6 KB · Views: 135
  • plotSettings.zip
    1.1 KB · Views: 107
Last edited:
could one of you please explain how to "read" the gain and phase plots in post1240.
I think I understand the upper set.
Green goes too steep as it crosses the 0dB and this shows as phase margin approaching 0degrees @ ~ 2MHz. Whereas the lower curves are less steep at 0dB (in the range 2MHz to 3MHz) and it looks like phase margin ~80degrees at 2.5Mhz, if we choose the correct colour of curve.
Is my interpretation correct?
Can it be restated, to be clearer to others?

Yes, that is correct. Assuming the gain only crosses 0 dB once, the phase must be greater than -180 before the crossing point, otherwise the amplifier will be unstable.

If the amplifier is stable, it has:
  • “gain margin”, which is -1*(the loop-gain gain in dB at the point where the phase is -180), and
  • “phase margin” which is = (the loop-gain phase at the point where the gain is 0 dB) + 180.

In general, people get nervous if the gain margin is less than 6 dB and/or phase margin is less than 45 degrees.

But the lower one is quite different. What do the curves mean?

The lower one is a loop gain plot of the “inner” loop, which is the negative feedback loop consisting of Q17, Q11, C8. You can “read” it the same as any other loop-gain plot to assess stability of the loop, it just looks a bit unusual because the feedback element is a capacitor (=open circuit at DC), so there is no loop gain at DC.
 
Last edited:
Non-Minimum Phase unicorn captured

The 'main loop' is the '2nd path' that is the necessary but insufficient condition for NMP. Obvious with hindsight :eek:

It also demonstrates another 'necessary' condition which is easily shown in room responses but for which I don't have a clear theoretical handle. This is that the 'slower or later' path have larger magnitude than the 'direct' path.
Du.uuh! We can test the 2nd proposition by simply reducing the feedback around the main loop.

The first pic is Toni's demo circuit. The 'inner Return Ratio' shows NMP behaviour with phase rising as amplitude drops.

2nd pic shows .. if the feedback resistor R26 is made 27k, the path around the 'main loop' is now less than path via Cm and the behaviour is nicely Minimum Phase.

R26 =8k2 is interesting as the variation of Cm straddles the point where this changeover occurs.

No idea if this changeover has any significance in amp design/performance. The 'main loop' doesn't seem to show any strange behaviour as you cross this point. More work indicated.

But this may be the explanation for the various NMP unicorn sightings :D
_______________

I've encountered this behaviour in the previous Millenium trying to sim Room Responses by FEA, BEA & other mumbo jumbo but never expected to see this so clearly in an amp. :)
_______________

Many thanks to Toni for the very clear explanation of his multiple Tians
 

Attachments

  • org_wonky_phase.png
    org_wonky_phase.png
    67.6 KB · Views: 540
  • R26_27k_MP.png
    R26_27k_MP.png
    60.4 KB · Views: 530
Last edited:
No idea if this changeover has any significance in amp design/performance. The 'main loop' doesn't seem to show any strange behaviour as you cross this point. More work indicated.

But this may be the explanation for the various NMP unicorn sightings :D
Should point out that the unicorns here are at LF around 100kHz or so and will almost certainly be due to some "2 or more paths" issue. I don't think they are a problem.

But amps DO have NMP issues .. usually due to CE ceasing to transist but these will occur near or above ULGF .. see eg Baxandall on Self's "Baxandall Letters" page.

You need MP zeros at VHF to deal with these and they are as rare as unicorns.
______________________

To answer Harry about ensuring 'inner loops' are stable ...

When the amp overloads, the 'main loop' breaks. You need to ensure the 'inner loops' do something sensible in these circumstances.

This is often the cause of bursts of oscillation on overload, on parts of the waveform all dependent on the load, thermal & signal history .. that you see on many (all?) Golden Pinnae designs .. and this behaviour IS audible.
 
To answer Harry about ensuring 'inner loops' are stable ...

When the amp overloads, the 'main loop' breaks. You need to ensure the 'inner loops' do something sensible in these circumstances.

This is often the cause of bursts of oscillation on overload, on parts of the waveform all dependent on the load, thermal & signal history .. that you see on many (all?) Golden Pinnae designs .. and this behaviour IS audible.

That should be easy to simulate, just overload in .tran simulation.
 
Member
Joined 2011
Paid Member
MyDOA v3.1 final

Attached MyDOA v3.1 schematic and gerber files.

NOTE: Only for private and non commercial usage!

Have fun!

BR, Toni
 

Attachments

  • my_doa_v3_class_ab_gerber.zip
    43.9 KB · Views: 447
  • my_doa_v3_class_ab_pcb.pdf
    155 KB · Views: 661
  • my_doa_v3_class_ab_schematic.pdf
    13.1 KB · Views: 951
  • my_doa_v3_class_ab_schematic.png
    my_doa_v3_class_ab_schematic.png
    131.3 KB · Views: 3,388
  • my_doa_v3_class_ab_pcb.png
    my_doa_v3_class_ab_pcb.png
    108.2 KB · Views: 3,251
  • IMG_20140731_122458_1.jpg
    IMG_20140731_122458_1.jpg
    112.9 KB · Views: 928
  • IMG_20140731_122446_1.jpg
    IMG_20140731_122446_1.jpg
    125.7 KB · Views: 2,417
  • IMG_20140731_122433_1.jpg
    IMG_20140731_122433_1.jpg
    122.4 KB · Views: 2,566
  • IMG_20140731_122420_1.jpg
    IMG_20140731_122420_1.jpg
    132.5 KB · Views: 3,234
Member
Joined 2011
Paid Member
2520 Adapter

For using single or dual opamps on a 2520 socket

  • dual DIL8 opamps like NE5532, LM4562
  • single DIL8 opamps like NE5534
  • single SOP8 opamps like LME49990
NOTE: Only for private and non commercial usage!

BR, Toni
 

Attachments

  • 2520_adapter.png
    2520_adapter.png
    52.9 KB · Views: 842
  • DSC00268.jpg
    DSC00268.jpg
    230.5 KB · Views: 898
  • 2520_adapter_schematic.png
    2520_adapter_schematic.png
    109.2 KB · Views: 1,193
  • 2520_adapter_schematic.pdf
    6.8 KB · Views: 338
  • 2520_adapter_gerber.zip
    26.5 KB · Views: 247