Compensating the PG508

I got it to work and amplify, but the loop gain left a lot to be desired, so I decided to start over on the compensation. I also hooked up an unregulated power supply and a different output stage, partly because I wanted to see how the PSRR was doing, and partly because I wanted to reassemble the Ice Block with its original driver board.

It survived 🙂

Now, you should never anthropomorphise amplifiers, they hate it! I swear that this one “wants” to blast electronic music from the 90s at high volume though. 🙂

Found this in my junk pile, retro or what 🙂

Having given the Ice Block its output stage back, I had to find another one for my experiments. A search of the junk pile yielded the remains of a Maplin 100W MOSFET amp kit. I’d have preferred to try BJTs, but the PG508 prototype was already set up to work with lateral MOSFETs.

Put it together and what have you got?

I tried the time-honoured method of soldering RC networks in random places, or maybe places that seemed to make a difference when touched with a damp finger. 🙂 This improved it somewhat, but it still wasn’t doing a great job of correcting the output stage’s copious (and vintage correct!) crossover distortion.

Cordell to the rescue!

I eventually cracked Bob Cordell’s “Designing Audio Power Amplifiers” and spent an afternoon pondering Chapter 9, “Advanced Forms of Feedback Compensation”. It struck me that the PG508 topology is very similar to figure 9.7, except that the input stage doesn’t exist as such: the feedback node is the VAS input.

It also struck me that I’d already ended up with RC networks in the places shown in fig. 9.7 by trial and error, just with completely different values. R4 and C2 were in the original Tektronix PG508, and R5 C3, R3 C1 were my additions. So the obvious course of action was to change them to the values suggested by Cordell and see what happened.

Initial results weren’t great: it oscillated at 20MHz, but this was squelched by reducing R4 to 51 ohms. Having done this, performance was excellent: the 16pF C1 gave the extra loop gain I was looking for. I’d started out with 100pF here as that’s the value used in a Douglas Self Blameless amp. The Blameless input stage typically has 5-10x the gm of the PG508’s non-existent IPS, though. So funnily enough C1 needs to be 5-10x smaller to get comparable loop gain.

With these modifications the measured performance was 0.03% THD at full power at 10kHz, and 0.00something at 1kHz. The 10kHz figure seems high, but it’s now in the ballpark for a well functioning driver doing its best with a vintage MOSFET output stage. (Cordell’s AES paper quoted 0.02% at 10kHz with the Hawksford error correction turned off.)

Note that this THD figure is no better than I got with the old compensation and the Ice Block output stage. This just means that the Ice Block output stage must have about 3-5x less distortion than the single 2SK135/2SJ50 pair used here.

Slew rate was also improved, and stability with a capacitive load was just about acceptable: with 0.1uF slapped on the output it showed a few cycles of damped ringing but didn’t oscillate.

The circuit at the end of a hard day of soldering capacitors at random (and trying to find a LM317 or 7912 : ) )

I also took the opportunity to test out the opamp front end inspired by the Quad 405 and Cordell Super Gain Clone. I used an OPA2604 as it was the best opamp I had around. This works very nicely: it reduces the DC offset to 2mV, undoes the phase inversion inherent in the PG508 circuit, and increases the overall gain from 10 to 50.

Note that the opamp must be a FET input type because of the high impedance of the DC feedback path. Also, as the circuit has 2 LF time constants (the 1M/1u and the 47k/2u) with feedback around them, it functions as a 2nd order active high pass filter. It rolls off at 12dB/octave and can resonate if the time constants are too close together.

I basically copied this part from the Quad 405, so it must have done the same thing. I guess it was desirable to have a good rumble filter here in the days of vinyl. Arguably it still is in the era of small vented speaker cabinets and dubstep. 🙂

PG508 audio amp part 2

I was so excited (honestly 8) ) about the idea of a PG508-based audio amp that I decided to try building it in real life.

Fig.1: This is what I made

I first tested the driver circuit with +-15V supplies, no output stage and pure dominant pole compensation. It oscillated happily at 6MHz, and to get it stable I had to go back to the original PG508 lag compensation network (the 51 ohm and 8n2) The back-to-back diodes helped the clipping behaviour: without them you can reverse bias the cascode transistors and burn out the LEDs if you really overdrive it.

Fig.2: DIY heatsinks for SOT-223 transistors

In the interest of getting something working quickly, I hooked it up to the output stage and power supplies of my ancient and long-suffering Ice Block amp, which conveniently happened to be partly dismantled with one driver board missing. It provides regulated +-65V and +-15V rails in addition to the main +-53V, so no worries about PSRR for the time being.

Fig.3: The heatsinks weren’t quite big enough.

To achieve stability with the Ice Block’s hefty lateral MOSFET output stage in the loop (2 pairs of double die Exicon FETs) I had to use both the original PG508 compensation and dominant pole compensation with an extra zero (the 1k and 100pF).

I think it’s a bit temperamental because there are 3 transistor stages in the loop enclosed by the dominant pole capacitor. The Douglas Self Blameless only has 2, and my previous attempts at adding a third stage to that (cascode connection of Cdom) also caused oscillations at a few MHz.

As with any half decent solid-state amp, THD+N was at the limit of my measurement system at 1kHz, and dominated by noise. I had to go to full power at 10kHz to see a meaningful distortion residual.

Fig.4: THD result at 10kHz, 100W into 9.4 ohms
Fig.5: Distortion residual at 100W, 10kHz. (Fancy scope on loan from work 🙂 )

The distortion appears to be what Douglas Self called “gm-doubling”: in a push-pull circuit the gain is higher when both halves of the circuit are contributing, than when one half is cut off. And in the residual we see small lumps corresponding to increased gain around the zero crossings. I’m not entirely sure what part of the circuit is causing it. It may be the output stage, as that’s the usual culprit. It looks like it wants less bias, but the bias pot won’t go down any further. (Got to replace that TL431 with a TLV431)

I also tested the full power bandwidth, and it happily delivers 100W to 100kHz and beyond. I didn’t push it beyond 130kHz for fear of burning out the Zobel network.

A reading of 0.025% at 100W and 10kHz, with no filters engaged, is not to be sneezed at. I’d be perfectly happy with it, except the other un-hacked channel of the Ice Block does 0.009%! The PG508 circuit has some way to go before it can beat the original Alexander CFB.

While I had the equipment out, I also tried measuring distortion with a LF411 in place of the SSM2131 in the Alexander circuit. It made no noticeable difference at any power level, even though I’d persuaded myself that the LF411 sounded bad…

Cordellicious results

So, the low distortion oscillator is all put together.

Oscillator innards.

And it works very nicely.

Oscillator working, whee

When the oscillator output is connected straight to the analyser input, it reads around the analyser’s specified floor (0.0021%) between 20Hz and 20kHz. The above picture shows 0.0017% at 1kHz with the 80kHz low pass filter engaged.

I took it home and used it to test my new Selfless Amp against the old Ice Block. The “Selfless” was somewhat degraded from its earlier bench test results because of hum induced by the transformer, but it still managed around 0.002% at 1kHz and 0.008% at 20kHz. (Both about 70W into 8 ohms: the readings at lower powers were inflated by the hum, and noise from the preamp.) The Ice Block couldn’t match this with 0.005% at 1kHz and 0.015% at 20kHz. In fact, one of the channels had 0.3% and whacking the amp made it jump around frantically. (The distortion reading, not the amp itself! :p) Turned out the speaker relay was bad, which gives me an idea for another project…

Cordell oscillator success

Well, the Cordell low distortion oscillator worked a treat! It didn’t work right away: I left a connection out of the PCB. And then I didn’t have a TL074 chip, so I tried a LMC660, and the chip blew up for some reason, which had me puzzled.

(I just checked the LMC660 datasheet: It’s specified for 15V total supply voltage. I fed it +/-16, a total of 32V. Whoops.)

Then, Cordell’s schematic calls for a 2N4091 JFET, a device with a high Idss and low on-resistance, but I couldn’t find any of those. I tried a BF245C, but it wasn’t strong enough. The AGC loop just whacked the gate as far positive as it could go, trying to turn the JFET “more than full on”. So I kept adding more of the things in parallel, until I saw the AGC go negative by a volt or two. I ended up with 5 of them, bodged onto a piece of stripboard.

A J111 would probably have been a better choice. These are the ones Douglas Self recommends as analog switches in “Self On Audio”, and they have a similar 30 ohm Rds(on). JFETs are so variable, though, you never know what you’ll get.

Frequency control with the “Blue Velvet” pot works great! There’s no noticeable amplitude bounce. Well, except for the fact that it’s backwards: anticlockwise to increase. I couldn’t see any easy way to dismantle the pot and reverse the action.

And, first time on the distortion analyser: 0.0015% at 1kHz! 🙂 That’s better than the analyser’s own spec.

Stay tuned as we post some pics and stuff the thing into the spare bay of the DA4084.

A “Cordell” low distortion oscillator

Recently, I accidentally broke my low-distortion oscillator, the “Williams Memorial”. The breadboard was such a mess, that I decided it would be almost as easy to just build the Bob Cordell design.

I altered the design a bit: I replaced the switched attenuator for a plain volume pot, made the output balanced, and swapped the three LM318 op-amps for a single TL074.

I put a rectifier, smoothing capacitors and regulators on board. I’m hoping that my THD analyser mainframe will have a couple of spare transformer windings to power it, and the whole thing can fit in the empty left-hand bay where the SG505 would have gone, if I ever had managed to find one.

For the frequency control, I plan to try a 50k Alps “Blue Velvet” pot. I’m hoping the superior tracking and wiper resistance, combined with Cordell’s non-linear amplitude control scheme, and the integrating nature of the state-variable oscillator, will make it usable. I’m also hoping it can be taken apart and reassembled with the shaft coming out of the other end, to make it reverse log.

If that doesn’t work, I’ll use a binary set of switches, or something. That worked surprisingly well on the Williams Memorial. Eventually I’d like to try with 4066-type analog switches in current mode.

Anyway, here’s the schematic and a preview of the board.

Low distortion oscillator schematic

Image of low distortion oscillator PCB

Douglas Self, Jim Williams, and a sunny Saturday morning

Writing this, I was inspired by an article by Jim Williams called “Max Wien, Bill Hewlett and a rainy Sunday afternoon”, which documents his investigation of the Wien bridge oscillator and how to lower its distortion.

1. I’m a fan of Jim Williams, and his crazy cartoons and application notes with names like “Switching Regulators for Poets”.

2. My prototype Blameless power amp was getting good enough that I needed a really low distortion oscillator to test it. Surprisingly, even my 24-bit home studio gear wasn’t good enough: sigma-delta converters generate a lot of ultrasonic noise that inflates the THD figure. And my Twintrak Pro mainly generates smoke.

3. I could not find a Tektronix SG505 or SG5010 for sale at a reasonable price.

4. Neither could I be bothered building the oscillator section of Bob Cordell’s DIY THD analyzer.

5. A search of my kitchen junk cupboard yielded a RA53 thermistor.

6. A Google search of the part number revealed that it’s the magic ingredient for making a really good Wien bridge oscillator. So, using the RA53 and a NE5532 op-amp, it only took about an hour to make an oscillator that ran off a couple of 9v batteries, and measured about 0.007% THD at 10kHz on my analyser. (The remaining THD is probably a combination of ignoring Williams’ Law, thermal modulation in the thermistor, and the dirty mains in our lab.)

7. So, this morning I tested the Blameless using my new low-distortion oscillator. It was clean enough that I could see the “gm-doubling” distortion described by Self when the amp was biased too hot: the first time this effect has ever been reproduced at Conner Labs. 🙂 Optimal bias seemed to be about 8-9mV per side, though it wasn’t clear whether this was just cancelling the oscillator distortion, and the true minimum might be at a higher idle current.

8. The results were really good. The 10kHz, 100W, 4 ohm THD came out around 0.01%. I used the 80kHz low-pass filter, but from inspection of the residual, it wasn’t filtering much: mostly the 200kHz switching noise that our mains is ridden with. At 10kHz, 2W, it was about 0.007%.

9. I cranked it up to 140W and let it get really hot. This only caused about 1mV change in bias, and checking again at 2W, the THD reading and residual looked pretty much the same. Then I rigged up a fan to cool it down again, and that didn’t make much difference either. Yay for those ThermalTrak transistors, then.

10. Renting an Audio Precision test set costs about £600/month for the entry-level one. So, I decided to call it quits at this point. The Blameless is now complete, and it just needs another channel, DC offset protection, and a box. I shall publish the schematics soon.

11. When Jim Williams was done with his oscillators, he cooked some hot dogs. I am ashamed to admit that I ate a McDonalds.

12. Now I am obsessed with trying to make a digitally controlled version of Cordell’s oscillator. 🙂

First THD analyser results!

I’ve finally got the THD analyser hooked up and working! Not very well, though, because I have to use it with my not-too-hi-fi signal generator, on account of the analyser’s own oscillator section being AWOL. My sig gen is DDS-based, so it puts out lots of high-frequency crud and DAC quantization errors, and these overwhelm the amp’s own contribution to the residual. Except if I test at 10kHz and press the analyser’s low-pass filter button, which kind of fixes it…

Anyway, I hooked the Blameless up to an unregulated power supply to pump in plenty of hum and grunge (got to test that ripple rejection too!) and made some THD + Noise measurements.

THD test setupTHD at 50W50W residual

10kHz, 50W into 4 ohms: 0.086%

10kHz, 2W into 4 ohms: 0.037%

(I measured at 10kHz to try and force the amp to generate more noticeable THD levels. And yes I have the hi-pass button pressed: some hum is getting in somewhere…)

I also tried setting the bias pot to minimise THD.  At 50W, this happened at a setting so cold that there was barely any bias at all! I measured a Vq of around 300uV. But at 2W, the minimum occurred at a Vq (across each emitter resistor) of about 14mV.

2W THD, underbiased2W THD, bias just right2W overbiased

I think what’s happening is that at high power and high frequency, an overly cold bias helps to counteract the transistors’ slow turnoff. Too cold bias effectively starts turning them off in advance. This gives a false THD null. 2W seems to be a better power level for setting it.

At both power levels the THD nulls were very broad, and seemed to stay stable when I let the heatsink get burning hot, and then applied a fan to cool it back down.

Still a long way to go in terms of refining the THD measuring setup… but it’s a start!