5532 parallel headphone amp
Aug 20, 2011 at 4:17 PM Thread Starter Post #1 of 25

wakibaki

1000+ Head-Fier
Joined
May 26, 2011
Posts
1,088
Likes
68
Thinking about paralleled opamps for a headphone output stage as I was, I suddenly remembered the Douglas Self power amplifier I have seen, which uses paralleled NE5532s. That was it, I had to draw up a few PCBs for a headphone amp.
 
Performance should be extremely good in theory. I can't simulate it for want of accurate models. If the PCB implementation is satisfactory defects should be well below the threshold of audibility. Components are all readily available and no exotic (or expensive) technology is involved. Since it's not intended for portable operation no battery failure protection is required, the only thing that might prove necessary is to add relay-switching of the output if there proves to be a large transient at switch-on or -off. The output will tolerate short-circuit indefinitely.
 
Here's the PCB layout:-
 

 
It uses 8 chips or 16 opamps per channel for the driver stage. I got 20 for $6 US, shipped, from Thailand. The datasheet makes reference to driving 600 ohms, 600/16 is 37.5, so this should cope with a 32 ohm load reasonably well. Power supply can be up to +/- 17V. This can be pushed to +/- 22V if LME49860s are subbed in for the gain and DC servo opamps. @ 17V it should drive pretty much any phones. Output short circuit current is ~600mA.
 
Each output feeds through a 1R resistor to discourage overloading of any particular amp and the final output is taken through a handwound 2u4 (Henry) inductor. The inductor is wound on a former made from a Bic Biro, which is mostly air and a little polystyrene. The DCR is about 0R035, the wire being 27 turns of 0.5 mm, about 8mm dia. and 600 thou long. The inductor is paralleled with a 10R resistor to kill its Q and should restrain any tendency to instability.
 
I have chosen to use an LM4562 for the gain stage. There is no local feedback on this as per the design in the LME49600 datasheet which uses LME49720s in the gain stage, these are comparable to the 4562. Global NFB limits the overall gain to ~4.4.
 
The input is AC coupled using PPS caps, despite this a robust DC servo is implemented using a DC precision OPA2277 integrator in conjunction with the same value PPS caps as are used at the input. This helps to keep component ordering simple. A low pass RC filter excludes RF.
 
The board was laid out initially as single-sided with links, hence the unusual grouping of vias, but making it double-sided greatly improves the grounding, so I may choose this for the second build. The DC distribution is nevertheless surprisingly satisfactory, the main concern is around the proximity of the tracks joining the 5532s inputs and those joining the outputs. Since these are quite numerous the tracks will necessarily be quite long, but the gain of this stage is <1. Most PCBs have some compromises, hopefully this will not degrade performance significantly, but of course that remains to be seen.
 
I'll build the first one socketed to ease debugging and recovery of the components. I haven't etched a board yet, I like to check the fit of all the components before I do that.
 
Here's the schematic:-
 

 
Obviously the values are difficult to read, but the general arrangement can be seen, and I will make detailed version and gerbers available on my website (http://wakibaki.com/techno.php#t6) if interest is shown.
 
A mezzanine board supplies power using an AC adapter, or optionally 2 DC adapters, I have a collection of these built up over a few years.
 
 

 
The main board is 4.75 inches square, I may not bother with finding an enclosure though, these things are more of a curiosity with me, and I have yet another mains/LiPo powered portable amp for which I already have a box in the pipeline. It's basically this amp with an AD8397 output stage in SMT + battery charging and protection features.
 
w
 
 
 
 
Aug 20, 2011 at 7:29 PM Post #2 of 25
these build threads probably should be in the DIY sub forum
 
 
16X 5532? hard to see the point if you already have the TPA6120 amp - just rewire it for multiloop to get rid of the last little bit of thermal modulation
 
 
the input op amps do need local feedback C (or 2-pole "T" network) to cut loop gain intercept to less than the "buffer" corner frequency, 5532 @ ~ 10 MHz unity gain frequency (typ spec)  are >10x slower than the LME49600
 
the LME4562 @ 55 MHz GBW typ will give a global loop gain intercept of ~12 MHz @ Av 4.4 - very likely to oscillate with the slow 5532 unity gain buffers without added local feedback compensation
 
another compensation option would be "noise gain" - a series RC in parallel with the gnd leg of the global feedback that increases gain 2-3x by 2-1 MHz (respectively), then the global gain intercept frequency would be safely below 10 MHz
 
 
the DC servo is pretty pointless with such a high loop gain, precision input op amp (100uV Vos typ) - from the recent experience in Schiit and O2 threads maybe DC output protection would be a better place to "spend" extra parts?
 
 
single sided layout seems a waste of effort but with jumpers it can be OK, double sided plated thru hole PCB can be had for less than the cost of a good restaurant meal in the US
 
Aug 21, 2011 at 9:33 AM Post #3 of 25

Hi jcx, thanks for the feedback.
 
Quote:
16X 5532? hard to see the point if you already have the TPA6120 amp - just rewire it for multiloop to get rid of the last little bit of thermal modulation

 
I don't build them because I need amplifiers, I build them to keep from doing something more destructive.
 
Quote:
the input op amps do need local feedback C (or 2-pole "T" network) to cut loop gain intercept to less than the "buffer" corner frequency, 5532 @ ~ 10 MHz unity gain frequency (typ spec)  are >10x slower than the LME49600
 
the LME4562 @ 55 MHz GBW typ will give a global loop gain intercept of ~12 MHz @ Av 4.4 - very likely to oscillate with the slow 5532 unity gain buffers without added local feedback compensation
 

 
Ah, I wondered about that. So the overall bandwidth calculated on the basis of the gain stage GBW and the global NFB should be reduced to less than the driver GBW? Or at least the gain stage BW should be lower than the driver stage? I read the Jung articles but I didn't get that detail. I could include a local feedback loop for a gain of, say, 10, around the 4562 to reduce its BW to 5.5MHz? Given that the gain of the 4562 is ~140dB or 10,000,000, I don't understand why its BW isn't 5.5Hz when used open loop like this, but I decided that couldn't be the case based on the 49600 datasheet.
 
Quote:
another compensation option would be "noise gain" - a series RC in parallel with the gnd leg of the global feedback that increases gain 2-3x by 2-1 MHz (respectively), then the global gain intercept frequency would be safely below 10 MHz

 
Sorry, could you run that past me again? I could just increase the overall gain to bring down the OA bandwidth to less than the driver BW?

 
 
 
Quote:
the DC servo is pretty pointless with such a high loop gain, precision input op amp (100uV Vos typ) - from the recent experience in Schiit and O2 threads maybe DC output protection would be a better place to "spend" extra parts?

 
This is a vestige of the Self design, I'm leaning on other peoples experience. I guess I threw away the wrong bit, I should have hung on to his output relay.
 
Quote:
single sided layout seems a waste of effort but with jumpers it can be OK, double sided plated thru hole PCB can be had for less than the cost of a good restaurant meal in the US


Prototyping on home-made boards keeps my costs down and gives me confidence that if I do order a board it won't have errors. I saw plenty at work that required a second spin.
 
w


 
Aug 29, 2011 at 10:43 PM Post #4 of 25
Ah well, I waited for some more feedback from jcx, but it seems it's not forthcoming. I took aboard what he said though, and grew the board to 5" square, which gave me room to include an inner feedback loop and/or a compensation cap. I left the DC servo in though, as I said, this was featured in the Self design which is likewise AC coupled, it gives me the opportunity to plug in or remove the servo to see the net effect.
 
I did say a few PCBs, I also drew up this one, it features the missing output relay, although I'm not 100% happy with my implementation, not that I think it won't work, it's just a bit cumbersome with a lot of components. This is necessary to keep the input voltages within the acceptable ranges, first for the opamp comparators and then the PIC, and additional +/-5V supplies also become necessary.
 

 
The outputs are read by a PIC micro, which controls Q1. Fortunately I have a few relays available.
 
I'm using the PIC, a 16F887 to control a PGA2310 volume control, I moved the LM4562 to buffer the input, lost the DC servo, and I've got a couple of multiplexed 7-segment arrays to display left and right channel volumes. There's a 3-button interface, up, down, and a 3rd. button selects left, right or both.
 

 
THD should be dominated by the PGA's 0.0004% (typ). With +/- 15V supplies giving 26V pk-pk output into 37.5ohms, an output impedance < 1ohm and -95 to 31.5dB gain this should be a respectable device defeated by very few combinations of source or load. The PSU is off-board leaving the options open as to how the supply is constituted. A pair of unregulated DC wall-warts probably run less risk of radiating into the amplifier
 
The PIC will go to sleep when not required.
 
I stuck with the thru-hole parts throughout this design, my usual preference is for SMT, but in this case I can socket the processor and do without the ISP header. I like the single layer/link construction, it's primitive and accessible for home construction. All the sockets and 5532s are in hand, but I still haven't made a PCB, I've been making a lot of progress with the mains/portable I'm working on. I've dumped the AD8397 for that, despite it's rail-to-rail I'm going with the TPA6120's short-circuit protection, PGA2320, LME49725 buffers and 6 protected CR123A LiPo's @880mAH. Overall dimensions are 2.5 x 5 x 1.5 inches.
 
biggrin.gif

 
w
 
Aug 30, 2011 at 4:19 PM Post #5 of 25
I don't always know where to start - some might pick up on the hints, search terms given above, others may need more feedback theory that I can't really teach in a forum post
 
and people can also get offended if I err on either side estimating their present level
 
I like "Classical" Bode frequency response asymptote plots, others may benefit from different formalisms
 
search with key words like: “op amp” “stabilize” it will give hits for free, online papers by Feucht, Green, Graeme, Mancini, manufacturer’s app notes – its not difficult to find a number of useful sources - the principles are similar if you want audio power amp specific understanding read Cherry, Self, Cordell (the later 2 have up to date books)
 
http://www.analogzone.com/acqt0131.pdf long series, I don’t use Tina otherwise in a quick scan I see lots to like in the presentation
 
http://www.ti.com/lit/an/sboa015/sboa015.pdf - Graeme also has some helpful books which expand on his articles http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Dstripbooks&field-keywords=jerald+graeme
 
 
if you put pads for the local input op amp "lead" feedback C between its output and the inverting input you can find a value that will make any "unity gain stable" input op amp work with the 5532 output buffer - you just don't get full advantage of the higher loop gain of the 4562 op amp at audio frequencies
 
the load of 16x 5532 inputs on the input op amp's output may give some peaking from the 5532 input C reacting with the "inductive" impedance of the 4562 output, a small series R of 10-50 Ohms and/or a "Zobel" RC to gnd can damp the potential resonance - again calculating RC time constants, knowing how they affect loop stability is invaluable
 
Aug 30, 2011 at 7:01 PM Post #6 of 25
I do have a tendency to go for the throat where finer details are concerned, but this can lead me to oversimplify things sometimes. As regards the level that I'm at, I'm at the level where I know that most engineering problems have a rule of thumb solution, if not a nomogram or formula, we can't be hanging off the bleeding edge all the time at work, the stress would be intolerable. Most things can be understood fairly simply if you get to look at them from the right point of view.
 
I have been known to have made colleagues groan from time-to-time.
 
w
 
Oct 23, 2011 at 11:56 PM Post #7 of 25
Ah, well. As usual a bit of elapsed time has crystallized a few issues for me.
 
I'm waiting for some stuff to arrive so I decided to push on with building one of these.
 
The first thing is the protection circuit. I must have been tired when I drew up the first version, I was never happy with it, but after a bit of recent effort I managed to get rid of quite a few components. This is what it looks like now:-
 

 
We have 2 voltage references of ~+/-0.06V generated using diodes. These are compared with the filtered output of the amplifier. In normal operation with no output offset the comparison results in negative outputs from the 4 LM2902 opamps. The 2902 is supplied from the amplifiers rails and its output range includes the negative supply rail, hence Q6 in the diagram is cut off. Its collector is pulled up to the positive rail by R66. C59 is initially discharged due to R77, but after a short period its voltage rises sufficiently to turn on Q5 which causes the relay to pull in.
 
If the DC offset rises to greater than +/-0.06V, one of the opamp outputs will swing positive. This is sufficient to saturate Q6, turning off Q5 and causing the relay to drop out. A megohm and a microfarad gives a tau of 1 second and a cutoff of about 0.16Hz, how this works out in practice remains to be seen, but it's open to modification, as is the threshold.
 
The relay's 5V coil is connected across the amplifier's power rails via a zener. If either supply rail droops by >~5V the relay will drop out.
 
All this is a considerable improvement, since the PIC is now completely out of the picture, allowing it to sleep other than during volume adjustments. It means that no tracks need to cross the gap between digital and analog areas.
.......................................
 
I decided to build the digital version of the amplifier. This means that the input opamp is configured for unity gain. Its purpose is to ensure that the PGA2310 sees a source of <600R at its input. The PGA2310's output buffer is rated stable into 1000pF, its bandwidth is 1.5MHz, so there should be no problems driving the paralleled 5532s.
 
The PCB:-
 

 
I'll post some more pics as the build progresses.
 
w
 
Nov 22, 2011 at 9:45 PM Post #9 of 25
Here are the 7-segment displays and PSU mezzanine board assembled to the motherboard:-
 

 
I didn't really start out with an enclosure in mind and looking at the build now, it looks like it won't be easy to accommodate elegantly. The display boards are very tall, I may decide to replace them with 7seg * 3-digit types instead of these which use individual digits, this will radically reduce the size, they plug in anyway.
 
This'll allow me to get the thing working though and develop the software, I need it to work for another variation on this theme which is also in development..
 
w
 
Nov 22, 2011 at 11:25 PM Post #10 of 25

 
Quote:
Originally Posted by wakibaki /img/forum/go_quote.gif
I didn't really start out with an enclosure in mind and looking at the build now, it looks like it won't be easy to accommodate elegantly.
The display boards are very tall,

It is feasible to use ribbon cables to connect the digit displays?  If so, that should allow some flexibility for chassis design
 
Nov 23, 2011 at 7:26 PM Post #11 of 25


Quote:
It is feasible to use ribbon cables to connect the digit displays?


That's a good idea, for some reason it hadn't occurred to me. I can dismount the jack sockets and push switches too and wire in panel mount types. It wouldn't hurt to move the regulators off the boards and bolt them to a chassis.
 
w
 
 
Nov 29, 2011 at 8:00 PM Post #12 of 25
OK, I wrote some code to drive the multiplexed displays and bit-bang out the serial control to the volume chip:-
 

 
This'll be useful because the code will be very similar for the portable SMT TPA6120 version I'm building, although it only has a single 3-digit display. I have some 44-pin TQFP 16F887s, the extra spare pins make the coding simpler than for the 16F690, the different interfaces can be kept on different ports.
 
You can see the decimal points indicate which channel or if both are controlled. The centre pushbutton swaps L/R/B and the right and left are up and down respectively. I changed the pin assignment on the uproc slightly with a couple of 'white wires' to put the serial interface all on port E, it simplifies the code a little.
 
Now I have to find the PGA2310 which I know I've got somewhere and I can plug in a few opamps and see if I can get some output, presuming the protection circuit actually switches it through. I'll stick to 5532s throughout for starters.
 
Still to do is to make the processor remember the last settings and go to sleep when unused for a while.
 
w
 
Dec 1, 2011 at 7:05 PM Post #13 of 25
It works!
 
Not that I thought that it wouldn't, but the whole point is the audio output, not the displays, the control interface, remembering the last settings, the protection circuit or any of the other things I've spent hours on in the last few days. Even though I'd buzzed through pretty much the whole netlist, it's always a relief to verify operation in practice. With a complex hand-made board like this there's plenty of opportunity for a short.
 
I wired across the output relay, the circuit is giving me a problem, plugged in a couple of the 5532s in each bank, connected up some old Koss phones I found in the loft and a Sony NW-E003 MP3 player known for its puny output and turned on. Luckily I had the sense to put the phones on my head without putting them directly over my ears because I had already started the player and the output was huge. Due to one of those little slips that are easy to make in programming, I got the serial output inverted (ones for zeros) and the volume was set to maximum instead of mute.
 
I picked 'She's so Heavy' from the Beatles Abbey Road album to start with and after fiddling with the volume controls a bit I couldn't stop listening until the album had run to the end. So that's OK, the sound is excellent with a trace of hiss at full volume on the amp, but this disappeared when I turned off the Walkman.
 
Now to plug in the remaining opamps, tidy up the outstanding features and fix the back-to-front volume operation, try it with some different sources and phonesand eventually I'll get around to running some tests.
 
smile.gif

 
w
 
Dec 1, 2011 at 10:18 PM Post #14 of 25
sweet! Nice joerb.
 
Dec 9, 2011 at 10:06 PM Post #15 of 25
Thanks!
 
After a lot of trying, I couldn't get the assembly language code to write to the data EEPROM. This meant that every time the amp was turned on you had to turn up the volume from zero. There's a lot of attenuation available, so with the puny Sony MP3 player driving it, the sound didn't start to become audible until a setting of about 180 or so. Turning up to the max, 255, results in an unbearably loud output with the Koss phones, but I really needed the thing to remember its last setting and jump to that after a short delay with the output muted.
 
I rewrote the program in Hitech C, but despite what's written in the manual it now refused to recognise the 'sleep' macro. I really wanted this to work so that I could shut down the display and the uproc, mostly to save power for the battery version I'm working on, but also to eliminate the possibility of any digital noise polluting the audio. I can't hear anything, but it's a feature I decided on when I started the build and I don't like to be beaten. I got it to work eventually by using some inline assembly language, so now it remembers its last setting and goes to sleep after a short period without any button presses. The volume control is smooth and noiseless.
 
Just the protection circuit and relay switch-on delay to debug now.
 
w
 

Users who are viewing this thread

Back
Top