diyAudio

diyAudio (http://www.diyaudio.com/forums/)
-   Digital Source (http://www.diyaudio.com/forums/digital-source/)
-   -   ES9023 DAC design for MiniDSP USBStreamer (http://www.diyaudio.com/forums/digital-source/227437-es9023-dac-design-minidsp-usbstreamer.html)

Neil_J 9th January 2013 10:33 PM

ES9023 DAC design for MiniDSP USBStreamer
 
I'm a noname here, but I've been working on a DAC design over at diymobileaudio.com for a while now. Here's the link to the post where I described all the important design details: DIYMA Car Audio Forum - View Single Post - 2011 MINI Cooper CarPC Build

Here's a really quick summary:
  • This is a custom-designed 10-channel DAC to interface my Mac Mini CarPC, to date I've not seen anything remotely like it. I designed the circuit (with a bit of borrowing from existing designs out there), sourced the component parts, did the printed circuit board layout, and then built the board assemblies.
  • This is a no-compromise SQ design. I wasn't content with just using off-the-shelf equipment from a Sweetwater Music catalog. I'm looking for very high SNR numbers to my amplifiers, to get a great dynamic range (my amps will likely be modded too). I will be attempting to compete with this system in March at the IASCA spring break nationals (and the MECA event there as well). Hopefully I can get my acoustic issues fixed by then.
  • I'm using the MiniDSP USBStreamer (image below) as my USB-to-I2S bridge (I2S being the most common electrical protocol that audio DAC chips use). This component is responsible for virtually all of the jitter (or lack of it), since it's providing all of the clocking signals to the DAC.
  • Rather than use an expensive and complicated 8+ channel DAC chip, I decided to use individual low-cost stereo DAC chips and go with a "stacking" design. The clock signals are "fanned out" to the individual boards (with care taken to route the traces properly and prevent signal reflection. This design allowed me to do a lot of pcb layout tricks where I could keep all of the clock and analog signals guarded with a ground trace (which prevents signal crosstalk), and keep an uninterrupted ground plane (which prevents a lot of nasty EMI and other bad stuff from happening).
  • Total cost of the DAC project so far is $89 in component parts, $2.50 each for the custom circuit boards, and $145 for the MiniDSP USBStreamer. That's less than a lot of the shitty pro-audio equipment, and I'll hopefully have better specs....

Here's a picture of the MiniDSP USBStreamer, 10-channel USB-to-I2S converter. The yellowish stuff on the USB connector is a piece of insulating Kapton tape.
http://i1196.photobucket.com/albums/...d/IMG_2378.jpg


Here's the original block diagram that I proposed back on October 31:
http://i1196.photobucket.com/albums/...frankenDAC.png

Here's the schematic of the DAC PCB. I decided on the ESS9023P DAC chip because of the low-parts count, i.e. the KISS approach. Keep in mind that there will be five of these boards stacked on top of each other (for a total of 10 channels) to complete the final design.
  • J1 is the connector to the MiniDSP USBStreamer. Each board can be configured to route either of the four I2S streams to the chip, via R5-R8.
  • J2 is the power header and mute circuit.
  • J4 is the right RCA output.
  • J5 is the left RCA output.
  • IC1 is the DAC chip, the ESS ES9023P. It's specs are pretty good, but chip specs aren't as important as getting the board layout and component part selection right.
  • IC2 is a 3.6V low-dropout ultra-low-noise voltage regulator. I love Linear Technology parts, but they think their **** doesn't stink and therefore have very high prices; I opted to use the Micrel MIC5205-3.6YM5 instead (as have a few other hobby DAC designs).
  • SHIELD1 is an EMI shield (i.e. a faraday cage).
  • FB1 is a ferrite bead, which is used as an input EMI filter to the power supply.
  • You guys know what resistors and capacitors do hopefully, no need to explain those :laugh:
http://i1196.photobucket.com/albums/...at114841AM.png

Beginning of the build phase:
http://i1196.photobucket.com/albums/...d/IMG_2364.jpg

Powering up for the first time. Checked the voltage regulator output voltage, and a few other test points.
http://i1196.photobucket.com/albums/...d/IMG_2368.jpg

A close-up shot of the first board while powered up and playing a 1 kHz sine wave. Disregard the flux and wire leads sticking out, those will be gone after the testing phase.
http://i1196.photobucket.com/albums/...d/IMG_2372.jpg

Here's the 1 kHz sine wave coming out of the DAC, and the 5V lab supply:
http://i1196.photobucket.com/albums/...d/IMG_2370.jpg

Next step was to install the EMI fence. As mentioned earlier, this is a faraday cage to keep out the nasty electromagnetic radiation that plagues my BMW-designed car :p
http://i1196.photobucket.com/albums/...d/IMG_2373.jpg

Now with the EMI fence's "lid" installed.
http://i1196.photobucket.com/albums/...d/IMG_2375.jpg

The bottom of the PCB is a solid ground plane. I've never really seen a DAC that managed to have this before. RF guys use this technique religously, but consumer electronics do not (ever). A solid ground plane does many things for a pcb layout: It acts as a faraday cage for stray EMI (in both directions, i.e. radiated and susceptibility). It provides a quick "return path" for high-speed RF signals (keep in mind that my I2S clock lines are ~24 MHz with VERY high rise times. Any upset here will cause EMI and worse yet, jitter problems. Lastly, the solid ground plane provides a very beefy ground system with extremely low resistance, so that every point on the pcb seems the same ground potential (same reason you guys use beefy ground wires on your amps :cool: ). The holes on the board are "vias", they're plated copper and pass the ground plane to the front side of the board (but you guys already knew that, right?? :cool: )
http://i1196.photobucket.com/albums/...d/IMG_2380.jpg

One more shot of the first guinea pig board.
http://i1196.photobucket.com/albums/...d/IMG_2381.jpg

Component assembly of the remaining four boards:
http://i1196.photobucket.com/albums/...d/IMG_2383.jpg

http://i1196.photobucket.com/albums/...d/IMG_2385.jpg

Each module is conveniently labeled 1 through 5:
http://i1196.photobucket.com/albums/...d/IMG_2638.jpg

Here's the complete assembly, from the back. Notice the TOSLINK in and out connectors on the MiniDSP USBStreamer, and the connectors that pass the signals back and forth between the modules.
http://i1196.photobucket.com/albums/...d/IMG_2647.jpg

And finally, a shot from the front. Next step is to design and fabricate a nice metal enclosure for the whole thing to sit in.
http://i1196.photobucket.com/albums/...d/IMG_2641.jpg

Channel 1 thru 8 have been tested and are working. Channels 9 and 10 still require a TOSLINK-to-I2S bridge to squeeze the maximum 10 channels out of the MiniDSP USBStreamer. For this, I'm planning on hacking up the $25 FiiO D3, as described by the Hifiduino blog.


I'd love to hear questions / comments / suggestions. Also, I have five boards left over if anyone is interested :)

qusp 10th January 2013 12:04 AM

2 Attachment(s)
nice work mate! I really like it!; however you are far from the first dac designer on here or elsewhere to use a 'solid' ground plane.

Acko finished this design over 2 years ago and the previous gen (without the w.fl connectors and rogers teflon board) was before that. its all gnd plane underneath there, but has guides (kinda segmented but its all continuous if you know what I mean) to help keep loop area small. its an ES9012 dac. 100MHz clocks =) bulk polymers arent fitted on this one yet as you can see. the headers underneath are for stacking on the reg board

one thing, just wondering, you arent worried about the dacs at the top getting a signal thats been through the impedance ringer vs the bottom one? is each i2s signal paired with a ground pin on that super long header? do you have any type of buffer driving the dac outputs?

soz, you did call for comments ;)

love the RF guard, can I ask where you got them? very cute little boards, not in need of another dac, but i'm sure you'll get some takers. I was thinking of putting something like that on an ES9016 dac design i'm playing with.

Neil_J 10th January 2013 02:44 AM

Quote:

Originally Posted by qusp (Post 3318777)
nice work mate! I really like it!; however you are far from the first dac designer on here or elsewhere to use a 'solid' ground plane.

Acko finished this design over 2 years ago and the previous gen (without the w.fl connectors and rogers teflon board) was before that. its all gnd plane underneath there, but has guides (kinda segmented but its all continuous if you know what I mean) to help keep loop area small. its an ES9012 dac. 100MHz clocks =) bulk polymers arent fitted on this one yet as you can see. the headers underneath are for stacking on the reg board

one thing, just wondering, you arent worried about the dacs at the top getting a signal thats been through the impedance ringer vs the bottom one? is each i2s signal paired with a ground pin on that super long header? do you have any type of buffer driving the dac outputs?

soz, you did call for comments ;)

love the RF guard, can I ask where you got them? very cute little boards, not in need of another dac, but i'm sure you'll get some takers. I was thinking of putting something like that on an ES9016 dac design i'm playing with.

Thanks for the comments. The RF fences were from Digikey, I believe the manufacturer is Laird Technologies. Pretty cheap and easy to work with. I really don't think they're overkill, especially in an EMI-rich environment such as a new BMW-designed car.

As for the signal ringing on the I2S fanout, the distances are so small, I wasn't going to worry about it. I'm not an RF guy, if it does add measurable jitter, I can always snip the appropriate pins on the stackable headers to remove the stub(s). Each line has a series 20 ohm resistor at the DAC. Another mod I was going to make was a voltage divider for each signal with the divider voltage at the logic low-to-high transition point, which I've been told can reduce jitter. At this point, I'm still waiting to do a full set of measurements on a good spec an, and a formal listening test.

AudioLapDance 10th January 2013 06:01 PM

No tech eval but ...

Just Awesome! Nice designs, hard work, great layout, sweet stacking, the shield ... well done, sir. A beautiful implementation of miniDSP! :worship:

Can you tell us more about this channel 9,10 toslink issue?

Cheers,
Jeff

PS You even take good pictures!

Neil_J 10th January 2013 11:22 PM

Quote:

Originally Posted by AudioLapDance (Post 3319898)
Can you tell us more about this channel 9,10 toslink issue?

The MiniDSP USBStreamer provides 8 channels of I2S via the 2mm rectangular header, and then an additional two channels via fiber optic TOSLINK connector. I do need those extra two channels, so I've really got two choices: (A) make my own circuit board with a TOSLINK connector, a WM8804 or similar SPDIF to I2S chip, and a connector for the DAC board, or (B) modify something that already exists.

The FiiO D3 is a Chinese consumer-grade DAC that has a TOSLINK fiber optic input, an SPDIF to I2S converter chip, and a complete DAC chip and glue circuitry, with RCA outs. The Hifiduino blog linked above showed a lot of the details, you can get right at the I2S signals, disconnect the FiiO built-in DAC, and run your own DAC board. It's just as pictured in my block-level diagram above, except instead of a WM8804, they use a Cirrus Logic chip now, I believe.

I'm not too concerned about jitter or the relative delay between CH.9&10 and the other channels, as they're being used for rear fill and don't have to correlate with the other channels at all, and I also have the added bonus of time correction in my CarPC DSP code. I would probably be ok with using just the FiiO DAC as-is, and will likely go that route at first; jitter will not be improved much if any (depending on how much ESS marketing Kool Aid you believe), but will improve SNR by quite a bit (which is very important in the level of competition I'm attempting, you can lose points for audible noise floor).

tnargs 11th January 2013 01:31 AM

I'm watching this, appreciatively.
I can't help with tech, but could well dip into the wallet when time comes. I have been trying to find a way to use the USBstreamer in this fashion; this would be my solution.
cheers

curryman 11th January 2013 06:05 AM

As mentioned already in the miniDSP Forum: Great work! And I also like your pictures. Not that easy to take good pictures of circuit boards with their reflecting surfaces;)

Really like the layout, the compact stacked design and especially the RF Fences :)

Can you please tell me what I2S signal buffer is used on the miniSTREAMER?

What was the reason for changing the original output LP Filter (4,7nF [F3:141kHz] -> 220Ohm + 2200pF [F3:157kHz?])? And what is the exact value of the ferite bead used to decouple power line?

Best regards, Daniel

Neil_J 11th January 2013 10:10 PM

Quote:

Originally Posted by curryman (Post 3320715)
Can you please tell me what I2S signal buffer is used on the miniSTREAMER?

Probably just the XMOS ASIC chip itself. I didn't want to use a crazy system of buffers, instead I used the KISS approach, payed great attention to board routing and high-speed layout, and kept the trace lengths very short.

Quote:

What was the reason for changing the original output LP Filter (4,7nF [F3:141kHz] -> 220Ohm + 2200pF [F3:157kHz?])? And what is the exact value of the ferrite bead used to decouple power line?
Because the ODAC used those values, I'm taking NwAvGuy's word since he's done more real-world testing than I'm able to. My project is non-commercial and I've credited him for a lot of my inspiration for this project, so I'm hoping he won't mind :)

The ferrite bead is Digikey P/N 240-2399-1-ND, $0.07 USD. It has pretty generic specs, I selected it based off of availability and price.

Rixsta 11th April 2013 12:29 AM

hey, Im very impressed by this! great idea

Im actually wanting to do almost the opposite, the outputs are useful but I need atleast 4 to 10 inputs of analog audio to multitrack record to the PC.

Could anyone point me in the right direction on how to get USBStreamer set up like that? or anyone else doing this

Nanoloop 11th April 2013 02:53 AM

Quote:

Originally Posted by Neil_J (Post 3318662)
Also, I have five boards left over if anyone is interested :)

Great project. I would like to buy the boards.

PM to me if available to send to Hong Kong.

Thank you.


All times are GMT. The time now is 02:17 AM.


vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
Copyright 1999-2014 diyAudio


Content Relevant URLs by vBSEO 3.3.2