low distortion 6 transistor preamp

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
I laid out this circuit into the exact footprint of the Pioneer SA-9500 mkII tone control PCB. Once it's built and running stably I'll upload final .asc and .pcb files somewhere.

What's a good hosting service for publishing the current version of a project like this? Maybe Google drive with world-readable permissions?

There have been a few changes. Notably, in post 15 the loop gain probe was in the wrong place outside of the feedback loop formed by the miller cap. It should be inside both the global NFB loop and the miller cap loop. A rookie mistake! Measuring the loop gain correctly showed that a miller cap was sufficient and so the lead cap is gone.

It would be nice to pair the super low distortion floor with a super low noise floor. Maybe in some future project that would mean an active volume control, balanced inputs, and separate signal-grounds for each channel. Or I'll just build one of Douglas Self's preamps which have all that cool stuff.

For now I'm keeping a lot of the Pioneer's architecture, including the RCA inputs, the 100K log-taper volume pot, the signal ground that both channels share throughout, and the original gain distribution. All the front panel controls will still work including the loudness switch.

Noise wise, the factory Pioneer is fairly quiet driving Khorns, you have to put your ear up to the horns to hear noise (with shorting plugs at the AUX input, volume set to typical listening level.) It sounds close to white noise with a little bit of 60 or 120hz discernible. It's not that bad...

 
The non symetrical output swing causes excessive distortion long before the maximum output level is reached, which limits the input voltage to around 500mV RMS / Output 4.55V RMS (at which point my sim was showing around 0.3% distortion at 10kHz)

At around 70mV RMS input level / Output 650mV RMS I was seeing about 0.046% distortion.

It would seem to be an overly complex design for the performance level available.

This was based on the circuit given in post #18.

The input impedance is very high however.

My (very simple!) 3 transistor discrete preamp yields a measured ~ 0.004% distortion using RMAA.
 
Last edited:
Tony,

0.046% is over 100x more distortion for 650mV output than in my sims. Something is wrong.

Try measuring the FFT at the node on the north side of C6, instead of the node labeled OUT? That coupling cap will charge throughout the sim creating an artificially high distortion floor in the FFT. This floor drops away with a 10x longer sim, or a 10x bigger cap, or if you measure a node that isn't influenced by the charging cap.

Maybe check DC levels? We expect:
* Emitter of Q6 should sit at about 12V.
* Current in R6 and R7 should be about 500uA.
* Current in R1 should be about 1mA.
* Q2 should not be in saturation, increase R3 if it is.

Here's the latest version, similar to post 18 except with simpler compensation. Resistor R12 increases stability margin in the presence of a small parasitic at the output, without any distortion cost. The miller cap returns to the other side of the cascode now, so there is one fewer transistor within the miller loop.

With a more typical load (say 22k instead of 2.2k) this circuit can drive its output to a swing of more than 10V peak to peak, double what's required to drive a typical power amp (assume gain of 20 and 60V rails) to clip. With the pessimistic 2.2k load, the circuit will drive the output to 6V peak-to-peak -- juuust enough to clip that same amp. My sim shows -118db distortion when driving a 5V peak-to-peak output into 2.2k. You can scale the current capability up with a smaller value at R5 if needed.
 

Attachments

  • olg.asc
    4.9 KB · Views: 34
Could you post an image of the current schematic, I don't have access to LT Spice right now.

Here's my current schematics with AC & DC voltages and currents.

One other thing I noticed - when I initially drew this in Tina, I got Q5 upside down however the sim still worked fine.
 

Attachments

  • distortion.png
    distortion.png
    13.3 KB · Views: 260
  • ac-analysis.png
    ac-analysis.png
    26.1 KB · Views: 267
  • dc-analysis.png
    dc-analysis.png
    24.4 KB · Views: 269
I don't understand the AC voltages. I wouldn't expect to see 13V RMS on one side of a 22uF, and 650mV RMS on the other side. These numbers should nearly match, right? I am probably misinterpreting this image; I haven't used Tina.

Here's the latest in png form, same as the .asc from post 24.

Thanks.
 

Attachments

  • olg.png
    olg.png
    90.7 KB · Views: 257
You can ignore the odd RMS value - I think it's a bug in Tina - it is a DC value.

I have simulated with a virtual scope connected and the clipping is severe at 800mV in 4V RMS out.

The onset of clipping occurs at about 368mV RMS in 2.6V RMS out.

The clipping occurs quite abruptly due to the lack of symmetry in the output stage (see scope images for detail).

Ideally you need a current source for Q6 to enable a symmetrical swing.

This will then lower the distortion all the way to maximum output.

Currently the maximum swing at relatively low distortion is about 2.5V RMS (354mV input) - distortion is ~ 0.085%.

The first scope image is at 4V RMS out, the 2nd image is at 2.6V RMS out and is (roughly) at the onset of clipping.

I trust the numbers I'm seeing with Tina, as I have used it extensively to simulate previous designs and after being built the results are fairly close.
 

Attachments

  • dc-analysis2.png
    dc-analysis2.png
    23.9 KB · Views: 62
  • ac-analysis2.png
    ac-analysis2.png
    24.2 KB · Views: 63
  • distortion2.png
    distortion2.png
    13.1 KB · Views: 50
  • scope-clipping.png
    scope-clipping.png
    18.2 KB · Views: 54
  • scope.png
    scope.png
    17.9 KB · Views: 247
Last edited:
Tony,
Good news. I was able to replicate distortion results in Tina that roughly matched what you saw. I got about 250ppm at first.

Then I gave a "Sampling start time" greater than 0 in the Fourier setup -- this shows a much lower distortion figure. Starting the fourier analysis after 10 cycles produces a distortion number from Tina that matches LTspice, within a factor of 2.

That makes sense -- I also use a delayed start to the analysis in LTspice. Typically I'll run a transient analysis for maybe 6ms or 10ms, and then run the FFT over only the latter half of the data. If you run the FFT over the full simulation, you get a bunch of artifacts, a "tall grass" on the spectrum plot.

Why do the simulators do this? The story I've always told myself is that the DC solver doesn't quite agree with the transient sim, which settles at slightly different DC values over the first cycle or two of simulation. The tall grass only shows settling artifacts, not real circuit performance.

Another possibility is that the presence of the signal moves the DC operating point, implying the "tall grass" distortion is real. This is easy to test: we can start the FFT halfway through the sim and also start the input signal at the same time. I tried that in LTspice and got the same -120db distortion as when applying the input signal over the whole sim. So whatever causes the tall grass, it's not the sudden application of a signal.
 

Attachments

  • tina_pre.png
    tina_pre.png
    100.6 KB · Views: 90
But that doesn't eradicate the asymmetrical clipping issue?

The scope images I posted were based on steady state operation, so you will still have high distortion at even moderate output swings.

If I find the time, I might 'breadboard' the circuit to confirm the sim output, however I suspect that even the physical circuit will also produce distortion.

When I run the sim at very low amplitudes, I also see very low distortion, but then I would, because the output is not clipping...
 
I don't see a clipping issue.

Attached is a sim of the exact schematic from posts 24 and 26, with the output swinging 3V peak-to-peak. The distortion floor is -120db below the signal. This is with the pessimistic 2.2k load.

If we turn it up to 6V peak-to-peak output -- enough to clip an amp with 60V rails -- distortion floor is then around -115db. We never need more signal swing than this, and the preamp is not yet clipping.

Edit: I agree with your images from post 27, this is where clipping starts with the 2.2k load. So, there's not much headroom between 3V (the max amplitude we might really use) and 4V (onset of clipping) and we might want more headroom than this. As you suggest, a current source would do it. We also have more headroom if you assume the power amp input impedance is more typical like 10K+.
 

Attachments

  • olg.png
    olg.png
    31.1 KB · Views: 85
Last edited:
<snip>

Edit: I agree with your images from post 27, this is where clipping starts with the 2.2k load. So, there's not much headroom between 3V (the max amplitude we might really use) and 4V (onset of clipping) and we might want more headroom than this. As you suggest, a current source would do it. We also have more headroom if you assume the power amp input impedance is more typical like 10K+.

Thanks - you were making me doubt myself for a moment.

Another thing I picked up on during messing around with the sim was instability - I thought I had seen oscillation, but I didn't look any further.

I'm not that familiar with LTSpice - but the FFT looks a bit odd with the twin peaks, and the bottom graph looks like bursts of oscillation (unless I'm misinterpreting the graphs!).
 
I built this circuit. The final set of .asc and .asy files are in the attached zip, these match the circuit as-built.

"pre_new.asc" is a top-level shell to drive the simulator; other files correspond to hardware.

Everything at and below "pre_pcb.asc" is one PCB. I've split it into modules to avoid duplicating the left and right channels in schematic, to avoid duplicating the identical 2nd and 3rd gain stages, and to allow simulating each gain stage independently.

This PCB is a drop-in replacement for the tone control board in a Pioneer SA-9500 mk2. It works with the original tone pots and uses the factory values for baxandall networks.

The boundaries of the gain stages (microamp.asc and microamp2.asc) are a bit odd. Why not include the compensation caps within the gain stage? I did it this way to allow instantiating the gain stages in a little testbench (not shown here) to evaluate loop gain and stability.

I'm not posting the layout because it's not ideal. Some high-impedance traces are longer than they need to be. Also I did several mods after the board was built to reduce noise pickup and improve stability margins, so the final schematic no longer matches the .pcb file.

Components in the schematic whose names contain '_open_' are not present in the real circuit; these represent parasitic caps. Similarly, components whose names contain '_closed_' are simply wires in the real circuit; these represent parasitic inductances or "spice ammeters." I run a perl script to convert the LTspice netlist to a Gnu Pcb netlist (for drawing the rat's nest) and it discards these open/short components.
 

Attachments

  • pre.zip
    8.7 KB · Views: 80
An erratum in the fileset from post #32:

The output will swing positive several volts for several seconds at power on. This can reverse bias a power amp's input capacitor, if it's an electrolytic, and risks damage.

The fix is to replace the 33uF output caps (C17 and C49) and their 150k load resistors (R21 and R59) with 2.2uF film caps and 47k.

That reduces the voltage excursion to under 2V. I also modified a cap value in the voltage regulator that supplies VPOS so that it rises more slowly, and that gets the excursion down to about 1V which is probably just good enough for safety.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.