I am working on a system that uses four ADAU1701s, loaded and controlled by a master microcontroller (PIC).
All are clocked with an externally generated 24.576MHz system clock.
One of the 1701s acts as a master for the audio clocks (BCLK, LRCK) and the other three are slaved to it. Sample rate is 96kHz.
The PIC updates each of the SigmaDSPs using safeload writes via SPI every 30ms or so.
The SPI clock is 2MHz, derived from the PIC's clock and hence asynchronous to the SigmaDSP clocks.
It all largely works, but:
I am getting large-amplitude, short-duration spiky glitches on the audio from the "master" 1701 whenever there is activity on the SPI bus.
The glitches are not regular or visibly periodic.
If I halt the PIC, or just disable the SPI updates, the spikes disappear.
Both analogue (DAC) and digital outputs from that 1701 are affected.
The three "slave" 1701s do not seem to be affected.
Here's the killer - not only do the SPI writes not need to be to that particular 1701 in order to cause the effect, they do not even have to be proper SPI writes at all. Activity on any of the three SPI lines (CDATA/CLATCH/CCLK) causes the problem to a greater or lesser degree.
Obviously that points to a PCB layout issue, with crosstalk between tracks, but the problem was still present even when I connected CCLK directly to the 1701's pin via a flying wire (with CLATCH and CDATA quiet).
I considered whether ringing on sharp signal edges might be a problem and added a 100R resistor in series with the CCLK driver. This seemed to improve matters, but reactivating CDATA brought the problem back and a second 100R in series with CDATA did not help.
I am running short of ideas for things to try - has anybody else seen anything like this? Any suggestions for areas to investigate or possible causes for such a problem? Anything obvious I am missing?
I'm going to double-check the hardware carefully (I do not have a second prototype available to compare with) to try and rule out any constructional errors (missing GND, perhaps?), but apart from that am temporarily stumped. Any assistance would be gratefully received!