I listen to music on headphones a lot at work, and my source is almost always a CD/DVD-A/SACD player (Denon DVD-2910). Since it doesn't have a headphone driver, I need something to power my various cans (1, 2, 3). In the past, I designed a tube-based headphone amp, but frankly while it's nice for nostalgia's sake I'm not interested in "tube sound" (a.k.a. "a lot of even-harmonic distortion"), so why go to the trouble and expense? Let's get more modern, cheaper, and a lot higher performance.
(The name Gilberd is after William Gilberd, an early figure in electrical engineering.)
While waiting for some simulations at work (circuit design is also my day job), I had a weird idea for a differential input stage: rather than connect the emitters of two devices of the same gender, let's "unfold" the diff pair and use one transistor of each type. One obvious difference is the bias condition: with no voltage difference between Vp and Vm and perfectly matched transistors, a diff pair will just split the current between the two devices evenly. In the unfolded version, when you change either input voltage, Vbe of both transistors has to change such that they both end up with the same current through them, and of course you need 2 Vbe difference between Vm and Vp!
This doesn't look like your standard op-amp input stage, but it's still usable for an audio amplifier. Why? We don't need DC response. More to the point, we don't want DC response, because DC can cause damage to headphones. So let's assume that we'll wrap some kind of DC servo around the whole circuit that will also serve to hold the bias point for all the transistors in the amplifier. If we do it right, the servo loop will take care of establishing the 2 Vbe difference.
OK, so let's assume that we do this. Still, why bother? Well, all else being equal, both circuits should give about the same gain, but in the unfolded version I need two fewer transistors to get it. Moreover, the frequency response should be faster: the Vp device is really a follower, and both devices see the full stage current, so their bandwidth is greater. Another advantage that we're not using in this amplifier is that the Vp input voltage can go below the negative supply by Vbe-Vce,sat, a few hundred millivolts for a 2N3906. Also, c'mon, where's the fun in always building the same circuit?
That's the input stage; let's talk about the rest. You'll notice that in the circuit to the right, Q0 and Q1 form the unfolded diff pair, this time degenerated with Re1. The second gain stage is a degenerated common emitter stage with a "floating battery" Q3/Rfl1/Rfl2/Cfl to set up the bias currents for Q6 and Q7, the power transistors in the Sziklai pairs.
The two degeneration resistors on Q2 are a pretty standard trick: at low frequencies the degeneration is set by the sum of Re2a and Re2d; at higher frequencies, Ce2 shorts out Re2d and the degeneration is reduced. We do this to let us decouple the DC bias considerations from the gain of the stage.
Cc2 adds a pole, and Cc1 and Rc1 add a pole and zero, which together accomplish the frequency compensation of the amplifier.
The DC servo uses an op-amp configured as an inverting integrator. The difference between the output voltage and ground is integrated with a very slow time constant (about ten millihertz!) and fed back to the noninverting input of the amplifier; the net gain around the loop is negative, the DC gain is extremely high, and the loop crosses over well before the audio band. Since we want a really long time constant, the integrator resistor wants to be very big. This requires a FET input stage on the op-amp, because the input bias current with a BJT input stage through a big (megohm) resistor would cause substantial offset, which would shift the operating point of the servo away from ground. An LF356 (or half an LF353) works perfectly.
Let's talk about DC biasing! If we have 15 V rails and I want 1 mA quiescent current in the second stage (assuming the DC servo does its job and Vo is at ground), Rl2 wants to be a little less than 15 kilohms. Then let's say the total emitter resistance in the second stage is about 4.4 kΩ (4.32 kΩ and 50 ohms for Re2d and Re2a, respectively); adding a Vbe, we see the collector of Q0 ends up about 5 V below the positive rail. So let's pick 5 kΩ for Rl1 so we also have 1 mA in the input stage. If it seems like we worked backwards here, it's because we kind of did. Since we're using feedback to set the DC value of Vout, that becomes our independent variable, and everything else will be set by the feedback loop to accomodate that condition.
The gain of the second stage is about 300 (actually less because the effective load resistor is 15 kΩ in parallel with rπ of Q4 and Q5), and if we use 50 ohms for Re1 we get a gain of 100 (again, ignoring rπ) in the first stage, which should be enough open loop gain to give good distortion performance (especially considering that all this degeneration already substantially improves the linearity of the whole thing). Nominally we should have about 90 dB of open loop gain; being more careful with the analysis reveals we lose about 15 dB because of rπ of Q2, Q4, and Q5. Still plenty of gain.
If we pick Rfl1 to be 1.3 times Rfl2, then Vce of Q3 is about 2.3 Vbe. Take away the Vbes of Q4 and Q5 and we have 0.3 Vbe across the series combination of Ro1 and Ro2. If we pick 5 ohms for each, we should have a nominal 20 mA bias current through the output power transistors, which makes crossover distortion a non-issue. (In the actual circuit the bias current is running more like 30 mA because of Vbe mismatch. No big deal, really, but you can always reduce Rfl1 to reduce the output stage bias current.)
Rs1 and Rs2 set the bias current through Q4 and Q5, respectively; since there's a Vbe across each of those resistors, if we pick something around 6 kΩ we'll have 100 μA through each of these transistors, which is sufficient to keep their beta high while keeping rπ high so that the second stage gain doesn't suffer too much.
Rf and Ri set the closed loop gain. A headphone amp that takes line in wants a max gain of around 5 for almost all headphones, so I use 10 kΩ for Ri and a 50 kΩ log taper pot for Rf.
As usual, I used Eagle for schematic capture and layout (zip). I used the free version of Eagle for this, so you should be able to read and modify it however you'd like. Also included in the aforementioned zipfile is a spreadsheet detailing the BOM, including Digikey/Mouser part numbers. I've also made a PDF schematic with values on it, but note a couple changes below.
The schematic is more or less just two of the above plus a power supply and the requisite jacks (and lots of bypass caps!). I added two more transistors to the amplifier circuit to act as output short circuit protection. These transistors sense the voltage across the output resistors; if either voltage gets above the Vbe of the protecting transistor, the device turns on and pull the base of Q4 or Q5 (as appropriate) to reduce the output drive. Vbe is about 600 mV and the output resistors are about 5 ohms, so the current limit is around 120 mA.
The power supply is pretty simple; we take in 16 VAC, rectify/double it to produce approximately +-22 V (16*sqrt(2)) unregulated supplies, then use the venerable L7815 and L7915 regulators to produce the supply rails. 16VAC wall warts can be had cheaply, so this is a nice solution. With sufficiently sized filter caps before and after each regulator, you get really nice clean supplies.
I had an initial run of these fabbed at PCBCart. I decided to go with yellow solder mask and black silkscreen on this run. The yellow is not as bright as I'd hoped, but it does have a distinctive look to it. I kind of wish I could get pink or purple solder mask from those guys.
In a couple of the boards I've stuffed I've changed the values a bit from what's in the schematic/layout. In particular, I've been stuffing 13 kΩ for RFL1/RFR1 and 3.3 nF for CC1x and CC2x. Also, I've been shorting out REx1 and REx4. These are two of the four 5.1 ohm resistors in each channel; I've put a red box around them in the layout image.
Since I'm an IC designer by trade, I have access to some fancy test equipment. The gold standard for analyzing audio performance is the Audio Precision 27xx series, and we just happen to have one kicking around the lab.
First things first: noise integrated over the audio band is about 6 microvolts RMS. With 15 V rails, this amplifier can easily drive 6 V RMS at its output. Thus, dynamic range is about 120 dB, well beyond the quantization noise limit of a CD player (16 bits gives a -96 dB quantization noise floor). THD+N (total harmonic distortion plus noise) at 1 kHz is a standard measure of static distortion performance; this amplifier measured at less than 0.001% THD+N, or about 9 microvolts RMS THD+N on a 1 V RMS output. The distortion rises with frequency because the open loop gain of the amplifier is rolling off. Fortunately, higher frequency harmonic distortion isn't as much of a problem, since the harmonics are inaudible! (Really, if the amp has intermodulation problems, those higher harmonics might get mixed back into the audio band, so this we aren't out of the woods yet; more on intermod below.)
Of course, frequency response is also important! I measured a flat (+-1 dB) response from 1 Hz to 50 kHz; the upper -3 dB frequency was 70 kHz. Replacing the 3.9 nF compensation capacitors with 3.3 nF improves the bandwidth by about 20%; these measurements are from before I made this change. Also note that the two channels are slightly mismatched in gain due to slight differences in the values of each side of the dual audio pot. This is easily fixed by tweaking Ri.
While THD+N is a pretty common measure of performance, it's not a particularly great one: plenty of amplifiers have good THD numbers but sound bad. One common explanation for this is that the static distortion doesn't represent music very well. In particular, fast transients (percussion, for example) can expose transient nonlinear behavior in the amplifier that causes audible artifacts. One metric for this performance is called transient intermodulation distortion, or TIM. Leinonen, Otala, and Curl wrote a nice paper about 35 years ago discussing TIM and detailing a test method for it; it's worth a read.
These days, TIM (a.k.a. DIM, dynamic intermod) measurements are pretty common, and there are a few different stock tests on the AP box for this. My measurements indicate that in the worst case this amp produces dynamic intermod better than -94 dB, and it's mostly better than -100 dB. Not too shabby.
If I'm going to have this sitting on my desk, it needs some kind of case or mount. Also, while the output transistors don't get so hot that they require a heatsink, it's not as if there's much of a space constraint, so why not?
I swung by Home Depot and picked up some 20 gauge sheet metal and 3/4"x1/16" aluminum angle extrusion (didn't actually want angle, but otherwise I'd have had to use 1/8" thickness, which was stiffer than I wanted to deal with). The idea was simple: mount the PCB on the sheet metal, and bend the aluminum into little heat sinks that bolt down to the sheet metal. It's overkill in the thermal department, but it looks kind of cool (at least, I think it does). Also, the sheet metal base gives the whole thing some weight so it doesn't get pushed around as easily, and the transistor temperatures are all much cooler now (down from almost 60 to under 40 °C).
I have a plate shear that I normally use for cutting apart PCB panels, but it's actually intended for sheet metal cutting, so that part was easy. After that, I rounded the corners on my bench grinder, then hit the whole thing with the wire brush. Bending the aluminum into shape was a bit time consuming, and would have been a lot more pleasant if my garage weren't hellishly hot. Good thing is, the heat sinks work pretty well, and even the sheet metal plate is participating a little in radiating the power, as it's definitely warmer than ambient when the amplifier is running.
Be careful if you do something like this, because the tabs on TO-220 devices are almost always connected to one of the terminals. The solution to this is to use a thermal pad between the device and the heat sink. Since thermal pads are electrically insulating but thermally conductive, the heat sink does its job without shorting a bunch of stuff together. I ended up using some Bergquist Sil-Pads for this because I had them lying around (you can see them in the pictures on the left, below). On older devices you'll sometimes find thin slivers of mica used for this purpose, which is pretty cool. In any case, always double check with a multimeter that you've successfully eliminated the short between the tab and the heat sink, and of course you'll have to use non-conductive screws.
On another board I went a different way with the heat sinks: I took some of those TO-220 "wing" heat sinks, cut them in half, and applied half a heat sink to each TO-220. The result is also kind of fun; a little less sleek, a bit more insectoid.
I also played around with just cutting half inch sections of the aluminum angle, drilling a hole through one side, and mounting that on the TO-220. It's not a really great heat sink, but it definitely works better than nothing. I guess in the future I'll keep this in mind if I need lots of super cheap heat sinks.