Question: We are using a custom C542 DSP board
with an AC01 analog interface chip. The design is pretty much identical to an EVM. The
AC01 uses the C542 serial port in the normal mode (not buffered). The problem is that we
see data corrupted coming from the BDRR register. The conditions and observations are:
The serial port input to the chip is tied to +5v,
giving us a value of 0xFFFF for input. Occasionally,
the value read from the BDRR is NOT 0xFFFF. In
application, the audio input is used, and we detect
"ticks" or "pops" in the software loopback.
Answer: This type of thing can be caused
by noise on the clock line causing abrupt
shifts in the data as it is transferred, thereby causing abrupt jumps in analog value,
thereby causing the clicks you described.
Seeing something like 7FFF or FFFE would clearly indicate this when FFFF is supposed to be
transferred. If the data is totally off, then it may be noise
on frame sync causing totally random data.
If you don't have the opportunity to redesign the board for more noise-free signals, LRC or filtering can often help. What you need to
figure out first is how the noise is actually getting onto the sport signals (it sounds
like in your case it is due to the memory access) so you can decide what signals to
filter. |