I found that the 768kHz digital loopback ADC input on XMOS is not functioning properly.
I set the Master Clock to 1024 and configured the maximum frequency to 768kHz like this:
Code: Select all
/*** Defines relating to audio frequencies ***/
/* Master clock defines (in Hz) */
#ifndef MCLK_441
#define MCLK_441 (1024*44100) /* for 45.1584MHz */
#endif
#ifndef MCLK_48
#define MCLK_48 (1024*48000) /* for 49.152MHz */
#endif
/* Maximum sample frequency device runs at */
#ifndef MAX_FREQ
#define MAX_FREQ (768000)
#endif
Code: Select all
<!-- Audio Ports -->
<Port Location="XS1_PORT_1L" Name="PORT_MCLK_IN"/>
<Port Location="XS1_PORT_1N" Name="PORT_I2S_LRCLK"/>
<Port Location="XS1_PORT_1M" Name="PORT_I2S_BCLK"/>
<Port Location="XS1_PORT_1O" Name="PORT_I2S_DAC0"/>
<Port Location="XS1_PORT_1P" Name="PORT_I2S_ADC0"/>
However, when I switch to 768kHz digital loop, the situation changes — the overall noise level becomes significantly higher.
I tested the I2S output on port 1O by connecting it to an external DAC that supports 768kHz, and it worked correctly, ruling out issues with the I2S output.
I suspect the problem lies in the 768kHz ADC digital input on port 1P.
Since the setup is for a special high-frequency microphone with an effective bandwidth of up to 240kHz, the 768kHz rate is crucial for our application.
Does anyone have any insights or suggestions regarding this issue with the 768kHz ADC input?
I would greatly appreciate any response.