Time for a new Digital Crossover - ADAU1442
Posted 2nd April 2012 at 01:29 PM by googlyone
Well, it has been a few years since I built my last digital crossover - like six I think.
It is not that I was planning to do this - but a conversation with someone about my seemingly modest choice of the AD1941 DSP chip for my old crossover made me look at what else Analog Devices are offering.
The ADAU1442 is on the surface a very similar chip to the AD1940, but it has a lot more integrated into it, and offers significantly greater capacity.
So I set about designing a new crossover that used this, and also addressed a few of the shortcomings of my original design.
The goals were broadly:
- A modular DSP based crossover
- That provides a standard interface for the ADC
- That provides a standard interface for the DAC
- That includes SPDIF in and out
- That anybody can design digitisers and dacs for - no code level drivers built in, though the interface does ALLOW for SPI control of these
- That is controlled from a simple micro
- That allows real time control of all paramaters, which exceed my current design.
--> Up to four stereo channels
--> HPF and LPF on all channels to include no, 6dB, 12dB, 24dB LR and 48dB LR filters
--> Three common parametric EQ's that affect the input signal and three dedicated parametric EQ's for each of the four channels
--> Capacity to program driver offset delay in DSP clock increments (a few mm), out to - well a long way
--> Capacity to invert channel (as opposed to 180 degree phase shift)
--> Capacity to program an offset attenuation on each channel individually in 0.5dB increments
--> A system wide volume control "Attenuator" - noting that while I prefer an offboard programmable gain attenuator, this actually works very well.
--> DC block on input
It all came together pretty well. The DSP is a 100pin QFP package, which meant that there were a lot of signals and a need for power and ground plane. This precluded me making the PCB in the garden shed. I used PCBCART in China, and for a pretty fair price got half a dozen of the boards made. Quality was pretty good, though I note that there is a small but acceptable offset of the power plane layer.
The DSP board came out about 105mm by 115mm which is about as small as I could reasonably make it without going bonkers with the SMD's.
There are really just the essential devices as SMD, the DSP, buffer IC's, bypass caps and a few pullup / down resistors which would have been to consumptive of room is I used leaded devices.
The power supply is of moderate complexity - though a few of those who prefer an esoteric approach to design may be disappointed at my liberal use of LM317/337 devices. I however come from the school of "start with a power supply that is sound and works, and then add moderate LC filtering (RF beads / bypass) and RC filtering at op amps - and that is way enough".
The ADC boards I have made are done in the shed - thus the "top layer" is in this version kynar wire. I have used a ground plane on the top though I suspect this is overkill and I could have gotten away with a simple double sided board. Well that is how I layed it out, but once I started making it I could not resist the idea of a solid ground plane. ADC is Cirrus Logic CL5361 on two of the DACS and Cirrus Logic CL5381 on a couple of other boards I put together. All work just fine - I have not tried to measure the difference between them yet. (I am betting I won't be able to either).
DACS and Cirrus Logic CL4398 devices. Again, I was seduced by the temptation to leave a solid ground plane on the top of the boards. In this case I was making three boards on a panel - and once I had etched them concluded that I might as well leave them all attached to one another, as I will be looking for three stereo output pairs as a minimum in most applications of this DSP.
Oh - the ADC's and DAC's live on the track side of the board alog with a handful of bypass caps etc.
The interface from the DSP to the ADC and DACs is possibly a worry. My background is in a range of analogue, digital and RF design. Long cables and high speed signals are a bad mix. This led me to use ribbon cable with every second conductor grounded (results in something around 100Ohms characteristic impedance) and allowing for termination of the clocks at the ADC and DACs. As it turns out there is really minimal overshoot on the signals and it is quite well behaved. In no small part I imagine because I am keeping the cables to a fairly manageable length.
The ADC and DAC boards are probably unnecessarily small - at 55mm by 75mm. The first cut of the ADC's did not include input protection for the ADC, which I added to them as a "just in case" fix - These are something that will be on the next cut of the baords.
Manufacture was really only fiddly in that there were wire links rather than a top layer on the home made boards. It might seem to some to be a bit scruffy - however in my mind the capacity to have a solid ground plane is just too attractive not to jump at.
Given how pretty the boards from PCBCART look, i am kind of tempted to do a spin of the ADC and DACs in 4 later with a nice ground and power plane. But then given it cost me a few bucks to make these....
I used a toaster oven to reflow the SMD's. This was essential as the ADAU1442 has a heat spreader pad in the middle of it's base. No solder dragging to stick this sucker to the board - though I kind of wonder if you would get away without the heat dissipation pads... I would not try just because of the grief it would cause me.
The controller is a PIC 18f4620 programmed in microchip C18. I updated the old code from my AD1940 design (well the code for the DSP is generated by Analog Devices SigmaStudio). Comments on this are:
- SigmaStudio as an interface for configuring and generating program code for the DSP is a fair tool.
- Sigma Studio does generate code o load into the DSP that sets the DSP up with the parameters as set in the GUI, but if you wan to change filters or parameters from your application, then you need to calculate a HEAP of stuff for yourself.
- The documentation is somewhere between OK and mind bendingly awful. If you used this package all the time, you would be fine, but there are a lot of things that are either not, or are really crappily documented.
- For example the register settings in the ADAU1442 are fairly extensive, matter a lot, and not well described.
bitch over.
The ADAU does work, in fact the DSP was running and generating output within an hour of me applying power to it. I did have a pre-written set of code to load the default Analog Devices program into it. I must on that count give a not to Analog Devices, as seeing the beast live and work makes it a LOT easier to increment the design from the default code to my custom code.
Does the thing work? Yes - it is all working.
What do I need to do now?
- Put it in a package / box.
- Build the other 6 that I got the boards for.
- build some new amplifiers and speakers for them
- Work out why I built yet another 6 DSP crossovers to go with the old 6 I have laying around!!!!!!!
If you are interested in this sort of design, I am more than happy to shoot you a copy of all the CAD files and code.
If you want to make your own ADC / DACS for a DSP, drop me a line and I can help you - hell with this you could build a DAC out of 12AU7 (or whatever those valves are that I once used) - not that I would, I would probably try BC549's.
Anyway - happy for people to play with this if they choose.
Here are some photos....
It is not that I was planning to do this - but a conversation with someone about my seemingly modest choice of the AD1941 DSP chip for my old crossover made me look at what else Analog Devices are offering.
The ADAU1442 is on the surface a very similar chip to the AD1940, but it has a lot more integrated into it, and offers significantly greater capacity.
So I set about designing a new crossover that used this, and also addressed a few of the shortcomings of my original design.
The goals were broadly:
- A modular DSP based crossover
- That provides a standard interface for the ADC
- That provides a standard interface for the DAC
- That includes SPDIF in and out
- That anybody can design digitisers and dacs for - no code level drivers built in, though the interface does ALLOW for SPI control of these
- That is controlled from a simple micro
- That allows real time control of all paramaters, which exceed my current design.
--> Up to four stereo channels
--> HPF and LPF on all channels to include no, 6dB, 12dB, 24dB LR and 48dB LR filters
--> Three common parametric EQ's that affect the input signal and three dedicated parametric EQ's for each of the four channels
--> Capacity to program driver offset delay in DSP clock increments (a few mm), out to - well a long way
--> Capacity to invert channel (as opposed to 180 degree phase shift)
--> Capacity to program an offset attenuation on each channel individually in 0.5dB increments
--> A system wide volume control "Attenuator" - noting that while I prefer an offboard programmable gain attenuator, this actually works very well.
--> DC block on input
It all came together pretty well. The DSP is a 100pin QFP package, which meant that there were a lot of signals and a need for power and ground plane. This precluded me making the PCB in the garden shed. I used PCBCART in China, and for a pretty fair price got half a dozen of the boards made. Quality was pretty good, though I note that there is a small but acceptable offset of the power plane layer.
The DSP board came out about 105mm by 115mm which is about as small as I could reasonably make it without going bonkers with the SMD's.
There are really just the essential devices as SMD, the DSP, buffer IC's, bypass caps and a few pullup / down resistors which would have been to consumptive of room is I used leaded devices.
The power supply is of moderate complexity - though a few of those who prefer an esoteric approach to design may be disappointed at my liberal use of LM317/337 devices. I however come from the school of "start with a power supply that is sound and works, and then add moderate LC filtering (RF beads / bypass) and RC filtering at op amps - and that is way enough".
The ADC boards I have made are done in the shed - thus the "top layer" is in this version kynar wire. I have used a ground plane on the top though I suspect this is overkill and I could have gotten away with a simple double sided board. Well that is how I layed it out, but once I started making it I could not resist the idea of a solid ground plane. ADC is Cirrus Logic CL5361 on two of the DACS and Cirrus Logic CL5381 on a couple of other boards I put together. All work just fine - I have not tried to measure the difference between them yet. (I am betting I won't be able to either).
DACS and Cirrus Logic CL4398 devices. Again, I was seduced by the temptation to leave a solid ground plane on the top of the boards. In this case I was making three boards on a panel - and once I had etched them concluded that I might as well leave them all attached to one another, as I will be looking for three stereo output pairs as a minimum in most applications of this DSP.
Oh - the ADC's and DAC's live on the track side of the board alog with a handful of bypass caps etc.
The interface from the DSP to the ADC and DACs is possibly a worry. My background is in a range of analogue, digital and RF design. Long cables and high speed signals are a bad mix. This led me to use ribbon cable with every second conductor grounded (results in something around 100Ohms characteristic impedance) and allowing for termination of the clocks at the ADC and DACs. As it turns out there is really minimal overshoot on the signals and it is quite well behaved. In no small part I imagine because I am keeping the cables to a fairly manageable length.
The ADC and DAC boards are probably unnecessarily small - at 55mm by 75mm. The first cut of the ADC's did not include input protection for the ADC, which I added to them as a "just in case" fix - These are something that will be on the next cut of the baords.
Manufacture was really only fiddly in that there were wire links rather than a top layer on the home made boards. It might seem to some to be a bit scruffy - however in my mind the capacity to have a solid ground plane is just too attractive not to jump at.
Given how pretty the boards from PCBCART look, i am kind of tempted to do a spin of the ADC and DACs in 4 later with a nice ground and power plane. But then given it cost me a few bucks to make these....
I used a toaster oven to reflow the SMD's. This was essential as the ADAU1442 has a heat spreader pad in the middle of it's base. No solder dragging to stick this sucker to the board - though I kind of wonder if you would get away without the heat dissipation pads... I would not try just because of the grief it would cause me.
The controller is a PIC 18f4620 programmed in microchip C18. I updated the old code from my AD1940 design (well the code for the DSP is generated by Analog Devices SigmaStudio). Comments on this are:
- SigmaStudio as an interface for configuring and generating program code for the DSP is a fair tool.
- Sigma Studio does generate code o load into the DSP that sets the DSP up with the parameters as set in the GUI, but if you wan to change filters or parameters from your application, then you need to calculate a HEAP of stuff for yourself.
- The documentation is somewhere between OK and mind bendingly awful. If you used this package all the time, you would be fine, but there are a lot of things that are either not, or are really crappily documented.
- For example the register settings in the ADAU1442 are fairly extensive, matter a lot, and not well described.
bitch over.
The ADAU does work, in fact the DSP was running and generating output within an hour of me applying power to it. I did have a pre-written set of code to load the default Analog Devices program into it. I must on that count give a not to Analog Devices, as seeing the beast live and work makes it a LOT easier to increment the design from the default code to my custom code.
Does the thing work? Yes - it is all working.
What do I need to do now?
- Put it in a package / box.
- Build the other 6 that I got the boards for.
- build some new amplifiers and speakers for them

- Work out why I built yet another 6 DSP crossovers to go with the old 6 I have laying around!!!!!!!
If you are interested in this sort of design, I am more than happy to shoot you a copy of all the CAD files and code.
If you want to make your own ADC / DACS for a DSP, drop me a line and I can help you - hell with this you could build a DAC out of 12AU7 (or whatever those valves are that I once used) - not that I would, I would probably try BC549's.
Anyway - happy for people to play with this if they choose.
Here are some photos....
Total Comments 7
Comments
-
Nice build! Looking for a DAC to build might consider this. Super nice of you to offer the CAD files.
Posted 3rd April 2012 at 04:47 AM by alfa147x -
very interesting, any chance of those cad files? i'm pretty set with software based and have the dacs covered, but i'd be interested in trying out this for control and frequency and some phase adjustment, but just running the room correction/convolving on my mac.
thanks very much, wow what a contrast between the main board and the dacs,m i thought for a second they were the analogue output stages, but they are dip8 dac chips?
how do I go about getting the files?
cheers
JeremyPosted 9th April 2012 at 09:26 PM by qusp -
I will shoot the cad files through late this week as I am travelling
The adc and dac boards use dip op amps. The actual adc and sacs are SMS and on the back side of the boards.
Theatre pretty green boards from a fab do look a bit nicer than plain old copper.
Phil
Quote:very interesting, any chance of those cad files? i'm pretty set with software based and have the dacs covered, but i'd be interested in trying out this for control and frequency and some phase adjustment, but just running the room correction/convolving on my mac.
thanks very much, wow what a contrast between the main board and the dacs,m i thought for a second they were the analogue output stages, but they are dip8 dac chips?
how do I go about getting the files?
cheers
JeremyPosted 10th April 2012 at 02:47 AM by googlyone -
As you proposed to shoot the CAD files it would be very helpful for me to have a look on it. As I have some experience in audio electronics and having some AD evaluation kit laying around led to the decision in doing some stuff by myself instead of buying kits or completed electronics. To get to know your design might help me a lot in getting the thing done. My intention aims in direction of creating a dsp controlled multichannel dsp amplifier for automotive use. (somwhat similar to minidsp in combination with TDF Class-D or IRAUDAMP with at least 8 channels)
The device is planned to be self-bootable, but also includes an ATMEL controller for custom modification (soundset selection and maybe some parameter adjustment, as sigma studio is capable of extracting parameter addresses for further modification)
That desing might be also useable for home theater.Posted 22nd May 2012 at 09:30 AM by gadschet -
Sweet!
Is there any intermediate sourcecode in the SigmaStudio prior to compiling it to firmware? Or any interface to load a file with biquad coeffs and filter chains? (maybe the project file itself...)
I've got a half-working GUI for biquad chains calculation/simulation - here... I'm investigating the possibilities of working with ADAU DSPs...
By the way, you could make a simple power supply+SPDIF receiver boards pin-compatible with your DAC boards and get tiny simple standalone DACs with unused DAC boards just by sticking 'em togetherPosted 29th May 2012 at 08:01 AM by s3tup
Updated 29th May 2012 at 08:03 AM by s3tup -
This design ought to be right down your alley then - as the only difference I foresee is the flavour of microcontroller.
Shoot me your email address and I will send a bunch of files through...
Regards
Phil
Quote:As you proposed to shoot the CAD files it would be very helpful for me to have a look on it. As I have some experience in audio electronics and having some AD evaluation kit laying around led to the decision in doing some stuff by myself instead of buying kits or completed electronics. To get to know your design might help me a lot in getting the thing done. My intention aims in direction of creating a dsp controlled multichannel dsp amplifier for automotive use. (somwhat similar to minidsp in combination with TDF Class-D or IRAUDAMP with at least 8 channels)
The device is planned to be self-bootable, but also includes an ATMEL controller for custom modification (soundset selection and maybe some parameter adjustment, as sigma studio is capable of extracting parameter addresses for further modification)
That desing might be also useable for home theater.Posted 14th June 2012 at 02:50 AM by googlyone -
Sigma Studio generates executable code from the GUI environemnt. It also provides register locations for al coefficients.
The result of this is that:
- The architecture of the designb is fixed by the design enetered into the GUI
- You can change any programmable parameter such as gains, delays, IIT coefficients etc.
As a result you need to either:
- think through the product feature set completely prior to coding (hey - I guess this is not a big ask) and ensure the design encompasses all functionality sought, or
- Use multiple Sigmna Studio compiled designs. though for the life of me I can't see this being needed.
As I don't have a computer in my head, I have hidden the biquad coefficients away in the software.
There is a fucntion to update biquad coefficients in the microcontroller - actually loading the coefficients into the DSP is as simple as half a dozen data transfers. all the gumph in booting and configuring the plethora of other configuration registers was tedious to get right - but now is transparent.
If you want to look into the code / software shoot me an email with your emai address and I will send the files through.
Quote:Sweet!
Is there any intermediate sourcecode in the SigmaStudio prior to compiling it to firmware? Or any interface to load a file with biquad coeffs and filter chains? (maybe the project file itself...)
I've got a half-working GUI for biquad chains calculation/simulation - here... I'm investigating the possibilities of working with ADAU DSPs...
By the way, you could make a simple power supply+SPDIF receiver boards pin-compatible with your DAC boards and get tiny simple standalone DACs with unused DAC boards just by sticking 'em togetherPosted 14th June 2012 at 02:59 AM by googlyone