**********TILE[0]******** | ****** TILE[1]************
TOSLINK -> SPDIF_RX ->
FIFOwrite | FIFOread->I2S.
COAX -> SPDIF_RX ->
If I prefill the FIFO with a sine-wave and skip the writing part of the FIFO their are no glitches.
I'm using
Code: Select all
<Node Id="0" InPackageId="0" Type="XS2-L16A-512" Oscillator="24MHz" SystemFrequency="500MHz" referencefrequency="100MHz">
Code: Select all
on tile[0]:{ //The thread will fail silently if it does not have enough MIPS to parse the input stream.
set_thread_fast_mode_on();
SpdifReceive(p_toslink_rx, c_toslinkRX, 1, clk_spd_toslink);
}
on tile[0]:{
set_thread_fast_mode_on();
SpdifReceive(p_spdif_rx, c_spdifRX, 1, clk_spd_spdif); //c_spdif_rx
}
... the signal quality of the LVTTL @192 kHz looks like this at the XMOS pin. A 1 kHz sine-wave looks like this on the output. The 1 kHz tone becomes a very glitchy 1133 Hz tone at the output, suggesting that the SPDIF_RX is missing samples.
FOR S/PDIF coax
... the signal quality of the LVTTL @192 kHz looks like this at the XMOS pin. and the 1 kHz sine-wave looks like this on the output. A lot better but still some glitches.
Any ideás ?
Why the difference between the TOSLINK / SPDIF ?
What is the meaning of:
From SPDIFReceive.S | "There is also a subtlety that rise and fall times are not equal, and hence '0111' and '1110' are actually ones."
Is the SPDIF_RX very sensitive for different rise times / fall times ?