| Electronics > Projects, Designs, and Technical Stuff |
| how to route codec (ADC/DAC), analog pins not all on one side |
| << < (7/10) > >> |
| loki42:
So I've got the 4 layer version, assembled it and tested it! It's worse. Much worse. The 2 layer board with the big splits in the ground planes and the weird routing outperforms it on noise considerably. I was really hoping the 4 layer board would be better but it has not. I'm attempting to work out why it's worse. The output stage is noisy, even though schematic wise that part of the design has not changed. The differences are, it's 4 layers and doesn't have any splits / slots in the ground plane. The previous design had a slot in the ground plane separating the analog side from the digital. |
| capt bullshot:
Sorry for pointing you into this direction (non-split GND plane), I didn't expect things to get worse. I'm still interested in the root cause. |
| loki42:
all good, it was interesting to try! Though I've got no idea how to improve it, given I don't really understand what's going on. Basically the process was: I wanted to change how on/off switching worked (bypass). Before it was done with relays which are big and expensive, have annoying switching noise and very high current usage. I switched to CMOS switching. It works well, but to do so I moved a bunch of stuff around. The new layout was much noisier than the relay based one, though all I'd done was add the CMOS switches, and move the op amps lower on the PCB (changing their return paths to be closer to the oscillator). Obviously I assumed the CMOS switch was the problem and bypassed that, replacing it with bus wires. No improvement. When the switch was there, no noise in bypass mode when signal is still going through the CMOS but not the op amps. The CMOS in/out is biased with VCOM so maybe the additional current there is degrading the buffer performance. Otherwise I think it has to be the different op amp location, though I'm not sure how easily It'll be for me to change that and fit everything in. I then asked here and got the layout advice, so changed that to 4 layer, redid all the codec routing etc, no slots etc. That made the 4 layer board the worst of the 3, much to my disappointment. I've tried different (much lower noise) op amps for the VCOM buffer with no noticeable change in performance. Noise is about 130 mV p to p. Relay version was 75 mV and my target would be 50 mV. I understands the number will change quite a bit depending on oscilloscope settings / bandwidth etc, but for a rough idea. I've attached the schematics for the switch and output buffer section in case the problem isn't purely layout as well as the whole layout. This is the 4 layer version, digital on the south west, analog north east. Previously there was a slot in the hatched red area between the codec and digital stuff. The cyan lines show my thoughts on what the dominant low frequency return paths for currents are. The PCB is for audio so noise below 20 khz is the main worry. Op amps used to be where the switches are now, and relays were near where op amps are. |
| capt bullshot:
First thoughts: Did you try decoupling the VCOMAD and VCOMDA rails using a large (10uF ballpark) capacitor? For a 5V single supply analog circuitry design, I'd establish one single virtual GND at VCC/2, heavily bypassed to GND and VCC, and use this for everything (like the GND in a dual supply design). What happens to the noise level if you "disable" (maybe pull reset or vhatever does the) your digital stuff? The MCP6004 doesn't look exactly like a typical audio OpAmp to me, but I think that's the least thing to be concerned of now, regarding the quite high pp noise level. |
| loki42:
I was using TL074 as well, i've tried both. I tried the MCP6004 for the lower current noise, but I might have misread the datasheet... :) It looks like it's got much lower current noise, and the the impedance I'm running at that should dominate over the voltage noise, I think? Either way it doesn't seem to be the main issue. With the virtual ground how do you then bias for the codec? The inputs need to be biased to VCOMAD right? I can try more decoupling on the VCOMAD / VCOMDA rails. They both have 10 uF caps on them then smaller caps near where they are used. The 10 uF are ceramic. |
| Navigation |
| Message Index |
| Next page |
| Previous page |