Code: Select all
# TDM8 Audio Class 2, Input (16), Output (16), (Yes) MIDI, No SPDIF i/o, No ADAT i/o, No DSD, TDM mode
# Note: sample rate restricted to 96K to fit in USB bandwidth
XCC_FLAGS_2i16o16mxxxx_tdm8 = $(BUILD_FLAGS) -DI2S_CHANS_DAC=16 -DI2S_CHANS_ADC=16 -DNUM_USB_CHAN_OUT=16 -DNUM_USB_CHAN_IN=16 \
-DMIDI=1 -DSPDIF_TX=0 -DSPDIF_RX=0 -DADAT_TX=0 -DADAT_RX=0 -DDSD_CHANS_DAC=0 \
-DI2S_MODE_TDM=1 -DMAX_FREQ=96000
INCLUDE_ONLY_IN_2i16o16mxxxx_tdm8 =
Code: Select all
#define I2S_CHANS_PER_FRAME 16
Code: Select all
/* Master clock defines (in Hz) */
#define MCLK_441 (512*44100) /* 44.1, 88.2 etc */
#define MCLK_48 (512*48000) /* 48, 96 etc */
Code: Select all
/* Master clock defines (in Hz) */
#define MCLK_441 (256*44100) /* 44.1, 88.2 etc */
#define MCLK_48 (256*48000) /* 48, 96 etc */
This certainly resulted in TDM16 data being produced in the correct format, and with the correct LRCLK and BCLK frequencies (verified using an oscilloscope, and also real-time debugging tools attached to an FPGA that interconnects to the xCORE-200 dev kit via the TDN interface). However, the audio is heavily corrupted – please see attached screenshot. The screenshot shows looped-back audio captured on a PC which is connected to the devkit. The loopback was created simply by wiring together the xDAC_SD1 and iADC_SD1 header pins on the xCORE-200 board. Reverting back to the TDM8 build, the audio was perfect, verifying that there was nothing wrong with the loopback mechanism.
Is there anything else (eg PLL chip set-up) which I should be changing in order to migrate from TDM8 to TDM16?