My DSP/DAC Build

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Hey guys... things are starting to slow down at work and I'm starting to have more time again. So I'm gonna pick up where i left of last year... sorta LOL
Anyways, for those that missed the little spark was pretty simple as an idea.
A bit more complicated to deploy though...

Here's where you guys come in and give some input and share some idea's...
I would like to split everything into "building blocks" to make it simple as some may want a similar setup or like the idea of the flexibility.
Block 1 - Power Supply
Block 2 - Input Board
Block 3 - Control Board
Block 4 - Main DAC/DSP Board
Block 5 - Analog Output Boards
Block 6 - Digital Output Boards

I2S Data and Clocks connections will be via UFL cables as its seeming to become a "standard" on DIY hardware.
Power will be through pin headers instead of screw terminals which make it look and feel like something generic cobbled together...

DATASHEETS:
SAM3X8E
ADAU1445
ADAU1966
DIX9211
DIT4192

MAINLY THIS THREAD IS MY BUILD JOURNAL.
There will be revision changes and updates as I go along.
Stay tuned :smash:
 
Last edited:
Block 1 - POWER SUPPLY - Requirements :

ADAU1445
Analog Voltage (AVDD)
Min.- 4.5V Max.-5.5V Typ.-5.0V
Typical Current - 2mA
Digital Voltage (DVDD)
Min.- 2.25V Max.-3.6V Typ.-2.5V
Max Current: 365mA
PLL Voltage (PLLVDD)
Min.- 2.25V Max.-3.6.5V Typ.-2.5V
Typical Current - 10mA
Input / Output Voltage (IOVDD)
Min.- 3.0V Max.-5.5V Typ.-5.0V
Typical Current - 10mA

ADAU1966
Analog Voltage (AVDD)
Min.- 2.97V Max.-3.63V Typ.-3.3V
Typical Current - 84mA
Digital Voltage (DVDD)
Min.- 2.25V Max.-3.6V Typ.-2.5V
Typical Current - 30mA
PLL Voltage (PLLVDD)
Min.- 2.25V Max.-3.6V Typ.-2.5V
Typical Current - 5mA
Input / Output Voltage (IOVDD)
Min.- 3.0V Max.-5.5V Typ.-5.0V
Typical Current - 4mA
VSUPPLY
Min.- 3.0V Max.-5.5V Typ.-5.0V

DIX9211
Analog Voltage (AVDD)
Min.- 3.0V Max.-4.0V Typ.-3.3V
Typical Current - 3.3V @ 10mA

Regulated supplies for :
2.5V, 3.3V and 5V
 
Last edited:
There will be separate supplies for each section ( Analog and Digital as well as Output Sections )
Regulated supplies for 2.5V, 3.3V and 5V rated around 1A to 1.5A should be more than enough...
The bi-polar supply for the balanced output section will most likely going to be 24V - 0V - 24V @ 10-15A...
You may think its a lot, but I'm thinking as overhead for multiple modules output modules can quickly rack up the thirst when pushed.
 
Block 2 - Input Board :

Ti's DIX9211 is more then capable for 216khz/24Bit and gives plenty of flexibility.
With 12 S/PDIF inputs ( 10 Optical and 2 Coaxial ) adding AES/EBU and USB should be fairly easy with this option as it leaves enough room still for future expansion.
Initial Plans are as follows:
INPUT:
- 2x AES/EBU
- 2x Coaxial S/PDIF
- 4x Optical S/PDIF
- 1x USB
- 1x CobraNET ( Future possibility )

OUTPUT:
- Main Output : Output to DSP Board
- Aux Output : Output to Digital Output / Loop Through board ( future add on )

And it gets better...
The DIR module outputs the first 48 bits of channel status data from each frame into specific registers that can be read via
the control interface. In addition, the DIR can detect non-PCM data (such as compressed multi-channel data) by looking at channel status bits, burst preambles and DTS-CD/LD. When the DIR detects non-PCM audio data, its status can be configured to the NPCM pin (pin 2). Control of pin 2 (NPCM or INT1) is set by register 2Bh. When the DIR encounters an error (for example, when it loses a lock), an error signal can be configured and sent to the ERROR pin (pin 1). Control of pin 1 (ERROR or Int0) is set by Register 20h. Preamble data PC and PD (typically used to transmit format information such as Digital Theater Sound, or DTS, or AC-3™ data) can be read from registers Register 3Ah through Register 3Dh.

This data can be fed into the Control Board in turn to be displayed on a LCD or to light up corresponding LED's
 
Block 3 - Control Board :

Current plans are to use Atmel SAM3X8E processor as its in one way or another the Arduino Due which makes coding and programing easier and has serial Debug, and native USB ports which make things a lot simpler when designing the board. Adding an LCD display, Rotary Encoders ( Input and Volume ), IR and a few buttons ( possibly ) should be fairly simple and easy to program


Control will most likely be via I2C
Boot sequencing will be controlled by the SAM3X8E which will have an added 512mb flash chip for more room to save settings and configuration.
Thinking of adding SD flash card feature as a more cost effective way to add more storage if wanted or for easy configuration updates / changes.

LCD will be a graphic unit probably 5" with a resolution of 800x480
 
Last edited:
Block 4 - Main DAC/DSP Board :

This one is by far going to be the one to make or break the whole deal!
There are going to be 2x ADAU1445 (DSP) to handle 12CH signal processing duties as Master/Slave configuration, each one feeding a ADAU1966 (DAC) in turn. This would be a theoretical 24 Ch which is more than enough for most "enthusiasts" with multi way system in a surround setting. With that being said, i want to be able to utilize every input and output these chips can handle. On the DSP chips there is 24 input channels ( 12 in double precision mode ) and 16 Digital Inputs on the DAC ( 8 in Double precision mode ). Any output that doesn't lead to the DAC it will be used as a "monitor" and will be routed to the Digital Output Board where it will be available as S/PDIF, AES/EBU or PCM.

All inputs and outputs will be brought to the edge of the board and will be available for use in any way shape or form. On inputs I2S lines are going to be available as UFL and headers, the output from the DSP if it doesnt go to the DAC it will be pulled and marked as DSP Spare Linesthe rest will be fed into the DAC. On the DAC output each channel will be grouped as 3 pin arrangement to make it easy to decode which channel is which.

As Crystals and Oscilators are always a big discussion here, im going to offer both a UFL socket for the use of a external clock/generator and a socket for the use of local crystal of your choice on how wild you want to go.
 
Block 5 - Main DAC/DSP Board :


This will most likely be a "end user" preference...
At this time the output board will be OP-Amp based.
Instead of trying to go outside the box on this one i will use the IVY-III schematic from Twisted Pear Audio however, i will do a few changes to the layout adding onboard XLR and RCA's along with pulling the power to the side of the board. The signal input will be on the opposite side of the outputs. This way i can feed power across all the boards using a single PCB Strip thus reducing wiring.
 
Started to drawing up the schematic last night and had some initial hiccup as i have forgotten how to use Altium Designer LOL

Anyways...
Im in full swing today and hope to have DSP / DAC blocks figured out and "wired" up. There's a good chance i might even make it to get a little bit of routing done too !
 
DSP Progress :
DSP_zps76a41510.jpg

DSP1_zps5ca0467c.jpg


Gonna start working on the DAC later on today...
 
Adrian,
Looks like you are using Altium for this...

If you want to dig into what I did using an ADAU1442, all the files are in my blog. I did take a somewhat less enthusiastic approach to I/O - and only implemented four pairs of stereo outputs (though adding more would be a doddle).

The most tedious part of using these devices, in my mind, is writing all the code for the user interface, and especially initialisation and loading. There are bags of registers to set right, and I really hate the documentation for these chips - it does not make it easy! Take a look in the code I uploaded - some of the initialisation stuff is a bit arcane!
 
Thanks googlyone...

Yes, I'm using Altium and it wasn't hard to to get the chip imported into the part library as AD offers the model right on their site. All you have to do is install Ultra librarian and then use the BXL file they provide. Once you run the file through the program it creates an Altium friendly device that can be used.

My goal with this board is overkill, I know...
BUT what I want is to be able to MAP 20 Channels in any way I can dream it. Silly if you think about it, but in doing so it makes this probably the most flexible configuration in the DIY market. with any kind of filter and EQ's at your fingertip ( if setup properly even RTA isnt out of reach ).

As the software goes...
Its my acheeles heel and that's why I picked an Arduino based processor as the code is easier to write and interface over the other obvious uC out there. I'm also on the Analog EngineerZone forums and been poking around and trying to soak up some knowledge on this topic.
 
Here's a quick road map:

DSP1:
BLCK0/RLCLK0 -> BLCK2/RLCLK2 : I2S Input From Digital Input Board ( DIX9211 )
BLCK3/RLCLK3 -> BLCK5/RLCLK5 : I2S Input From DSP2
BLCK6/RLCLK6 -> BLCK8/RLCLK8 : I2S Output To DSP2
BLCK9/RLCLK9 -> BLCK11/RLCLK11 : I2S to Digital Output Board ( DIT4192 )

DSP2:
BLCK0/RLCLK0 -> BLCK2/RLCLK2 : I2S Input From Digital Input Board ( DIX9211 )
BLCK3/RLCLK3 -> BLCK5/RLCLK5 : I2S Input From DSP1
BLCK6/RLCLK6 -> BLCK8/RLCLK8 : I2S Output To DSP1
BLCK9/RLCLK9 -> BLCK11/RLCLK11 : I2S to Digital Output Board ( DIT4192 )

DSP's will feed the DAC's Through the Serial Data Buses as follows

DSP1 -> DAC1: SDATA0 - SDATA4
DSP2 -> DAC1: SDATA0 - SDATA4
DSP1 -> DAC2: SDATA5 - SDATA8
DSP2 -> DAC2: SDATA5 - SDATA8

Clock will be supplied from a Crystek CCHD957 ( Custom - 12.288MHz ) single which will feed a LMK00334 Fan out buffer which in turn will feed every chip.

Again, I'm not worried about the hardware as much I'm worried about the software
 
Last edited:
Change of plans...
Instead of bloating the board with more parts I decided that it needs to slim down.
So DSP1 and DSP2 will have their own clocks and DAC1 and DAC2 will use their clock outputs. Also after reading i realized that the 1445 wasn't the one I was after but the 1442 was, with that being said i bought 8 pieces from AD. I will used the 1445 for now but eventually switch over to the 1442.

Still working on changes for each block as i go along including the slave settings.
 
Compiling the project in altium proved easy enough...
But found a but load of errors and specially since I copied the DAC 1 to DAC 2 and DSP 1 to DSP 2, i kinda copied the unique indentifiers as well.
So, now i have to go back and rename every one of them :/

Back to work I guess!
And i was getting happy that I'm getting close to starting to lay out the board...
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.