USE DISCOUNT CODEEXPERT30TO SAVE $30 USD
Audio PCM/DSD DAC - PCM1795
SauceBoss , 01-27-2022, 04:55 AM
Hello,
First of all big thanks to Phil and Robert for bringing us the course and space to talk about it. Love you!
CONCEPT
Secondly, inspired by it I decided to shoot my shot at 4 layer design. For a long, long time I've wanted to build a DIY DSD capable DAC for my HiFi needs. What you see here is so-called proof of concept. It's a simple test mule to see if I can:- Make a good PCB
- Run PCM1795 in SW mode (I'm total newb in programming)
- Make it usable as USB DAC
I'm involved in Hi-Fi industry for a long time and electronics is my hobby. that means that I have a pretty solid idea of what I want this project to become. For now let's stay on topic. First we need a DAC chip. Currently choice is pretty limited, I’ll stick to the most important parts/manufacturers:- AKM Semi – excellent parts, preferable sound quality for me. Sadly after the fire two years ago they’re just begining to make chips again. So that’s a no-no.
- ESS Sabre – currently top dog. Excellent specs, lately they became avaiable in Mouser/Digikey etc. They are known to be extremely dependent on application and parts around them. Worst part is their sound, I just don’t like them. They sound tiresome for me.
- Crystal Semiconductor – they kinda stepped back after aquiring Wolfson. Their current range CS43198 is a decent sounding chip, but it’s only QFN.
- Rohm – no idea what to think about it, we will see in the future.
- Analog Devices – love those guys, they have an excelent rep here in Poland but AD1955 is old news ☹
- Texas Instruments (Burr-Brown) – the old guard, nice pleasant sound, avaiable. PCM1795 is modernized version of PCM1796, it does up to 32bit/384kHz (no that actually matters that much in my case) and DSD 2x. Also a friend of mine promised me samples, so there is that.
FIRST STEP - SCHEMATICS
As stated previously, this revision is just to learn and make adjustments. Audio quality is not my first concern here. That means power supplies and analog stage are kept relatively simple. Since I wanted to fit in 100 x 100 mm format to get cheap boards from JLCPCB the reciever circuit is not present on board. It can be either some USB/I2S converter, or any SPDIF reciever like WM8804 or else. That said schematic is basically taken from datasheet. Power supplies are provided on headers to make prototyping more easy. In most extreme case you can power up the whole thing from 2-3 9V batteries.
I know I havent labeled all the nets, silly me. That did bit me in the ass.SECOND STEP – LAYOUT
At first I wanted to use 4 layer stackup SIG/GND/VCC/SIG but after watching the course I decided to go SIG/GND/GND/SIG as recommended by Phil. I tried to keep decoupling as close as possible, second priority was signal integrity. I’ve kept the analog stage in a logical (left to right) layout to ease up any potential troubleshooting. I made copper pours for GND and power planes and it was a bit of a pain in the… to keep them similar in shape. Added absolute ton of vias (probably too much).
Any feedback regarding layout is greatly appreciated! AlexanderBrevig , 01-28-2022, 04:01 AM
Hey! Looking good! Some opinionated feedback:
- U100 is seemingly missing a capacitor on VOUT. It is such a strong convention to show the cap there as datasheet says minimum ~1uF, a peer designer would probably flag this (you layout makes sense, but maybe move one the 10u bulk from the VDD of U104 to U100 just for looks? This is 100% just an opinion, based on my understanding of best practices).
- I am uncertain if VCC1 VCC2L and VCC2R really benefits from being regulated separately? I would imagine it being more important that they are at the exact same voltage potenial, rather than trying to isolate them from each other but I may be completely wrong about that! Just my intuition sounding a soft alarm.
- U201 should be flipped about the X axis. it seems a bit odd to have the negative supply pointing up. Nitpicky detail, I know. If you want the phase to stay inverted (corrected from IV), then maybe just swap the IOUTL+/- labels?
- For a product I would add some reverse polarity protection, and TVS diodes where people may touch (your headers, and connectors) but for a project at home, you could just be careful and take precautions
- I have no input for the layout, seems like you did a really good job!
- Your future self would probably appreciate some silkscreens explaining the connectors, label GND so you don't reverse the polarity
- For the 3d render I would definitly add the missing 3d components, for me it's like the icing on the cake, and makes enclodure prototyping easier too as a STEP export will help you figure out your mechanical requirements
Awesome job, thanks for sharing! I am done with the schematic capture of my project. Will start layout soon, hope I can do as good of a job as you've done
phils-lab , 01-28-2022, 04:23 AM
Hi there,
Thanks for sharing your project - looks pretty good so far!
I agree with all of Alexander's points and would like to add some of my own comments:
Schematic- Instead of using 'global' net labels, I'd recommend using power ports/flags for voltage rails.
- Place designators and component values horizontally, so people don't have to turn their heads when reading the schematic.
- Section your schematic using bounding boxes or separate pages (power supplies, DAC, etc.).
- Place component designators right next to the relevant components (see: R100 to R103, for example).
- Text of 'U104' and 'PCM1795' is covered by wires.
- Don't use junctions (nodes) with 4 wires, instead use multiple junctions with a maximum of three wires coming out. (E.g. C102 + GND connection).
- Headers and connectors should (ideally) have at least GND pin per signal pin.
- VDD doesn't tell me what voltage this is at (I can see of course from the regulator what that is, but why have that extra step)? Use +3V3 instead, same goes for VCC.
- IOUTL+ goes to -ve terminal of difference amplifier, IOUTL- goes to +ve terminal. --> Flipped (see datasheet)!
- Add ESD protection, even if unpopulated.
- Why the jump from output of opamp (OUTL) to connector (OUTL). Just draw a straight wire and add net label.
Layout- Some trace spacing can be increased, you definitely have the space for it.
- Thicker traces for power rails (e.g. from -15V and +15V).
- Silkscreen definitely would be recommended. Which connectors are input/output, power/etc.? Without the schematic/layout, we don't know.
- Why leave designators on silkscreen only for J101 and J103?
- The headers are in 'interesting' positions. Why not move the two-row headers out to the board edge?
- Copper pour on input power (-15V, +15V) caps is interesting but not really required. Through-hole connection from caps to internal ground planes is sufficient.
Good job otherwise though - I'm looking forward to seeing an update on this!
Phil
SauceBoss , 01-29-2022, 10:30 AM
Thank you both for your feedback! The project went through some changes, and I haven't done a proper cleanup of schematics. My bad. good idea about labeling voltages with values, not with names. It makes it much easier. I'd like to address some points you both made @AlexanderBrevig @phils-lab
- I'm actually going to test if separating analog VCCs makes a notable difference on this particular board
- Render is actually a bit old: I've added silkscreen names for important parts
- I've found out about reversed polarity some time ago but decided to roll with it as it suits this layout (inverting in SW will fix that)
- Signal headers are placed like that on a purpose: audio source and ucontroller will be different boards and it will be easier for me to connect them like that.
- Added lots of stitching vias
I'll add ESD protection and clean up some of the schematics. I need to design some other boards before making an order, getting just those is not economical at all because of the shipping cost. I'm thinking of some sort of balanced headphone amplifier with OPA1622, but the VSON10 package is scary...
Also @AlexanderBrevig good luck with your project, will you show it to us later?
Use our interactive
Discord forum to reply or ask new questions.