I have a CS4270 codec hooked up to a Raspberry Pi more or less according to the "recommended layout" in the datasheet (Page7: kynix.com/uploadfiles/pdf8827/CS4270-CZZR.pdf
), shown below. This device sinks power from three different places (VA = power for analog subcircuits, VD = power for DSP, VLC = power for control port (I2C and clocks). Currently VA is sourced by an LT1965 (in turn powered from an Adafruit Powerboost connected to a LiPo battery) while VLC and VD are sourced from the Raspberry Pi's 3.3V output.
I am able to record from the device as expected using SoX on or arecord on the Pi, however I am confronted with a troubling amount of noise on the signal. These images are representative of what I'm seeing:Full spectrum, 0-96kHz Bottom of the spectrum, about 0-1kHz
In the top spectrogram, I see spikes of broadband noise repeating at about 33.3Hz, though the exact period seems to vary from recording to recording (I just saw some at about 50Hz in another recording). In the bottom spectrogram, I see narrowband noise at 50-60Hz and some bad harmonics. I haven't even started work on the signal chain leading into the ADC yet because these artifacts are everywhere on the board — I've plugged the inputs into ground, VA/2, even the codec's own midpoint reference voltage (VQ) and I see the same kind of thing everywhere, albeit with varying levels of intensity.
Clearly, 60Hz harmonics screams noise from the power main, but the whole setup is disconnected entirely from the wall (powered by battery at the moment).
Here's a shot of my actual current layout. In this case the ADC inputs are tied to VA / 2 through a simple passive filter (lower board), which in an ideal world would produce a bunch of zeroes on the ADC. The LT1965 is powered through a filter with a few decades' worth of caps and a ferrite bead — not strictly necessary but it did seem to help with actual mains noise. These particulars aren't super relevant since varying the power source or the input still results in the same artifacts.
I would really, really appreciate some assistance in identifying potential culprits for this noise. Is this something characteristic of the topology? Or is this to be expected on a $1 Chinese breadboard with jumpers everywhere, and I should just order a PCB with the same layout for further testing? Obviously this is difficult to debug remotely — my hope is that someone will see this and say, "aha! I've seen this before!"