Hi Ross,
Thanks for the replies, very much appreciated!
No, I haven't tried an I2S implementation on the grounds that I2S and TDM are both time-division multiplexed formats with the same number of clocks etc, and as such I wouldn't expect TDM to be any harder or there to be any differences in the anticipated operation.
In this application, all the clocks (MCLK, BCLK, FSYNC) are provided externally. Another Explorer kit running third-party software controls the CS2100 for the MCLK source and then provides BCLK and FSYNC. The output of the CS2100 feeds a Texas LMK1C1104PW clock buffer IC which distributes MCLK individually to Tiles 0 and 1 on both Explorer Kits.
When I remove the series impedance resistors for the MCLK signals feeding Tile 0 and Tile 1 on the Explorer Kit providing the USB audio interface (with no other clocks provided), I find:
X0D13: High (3V3)
X1D35: Low (0V)
So there is likely a contention with X0D13. I note from this thread that there is a build option to make the codec the MCLK source (or basically make MCLK an input on the XMOS device):
https://www.xcore.com/viewtopic.php?t=8910
2SMi10o10xxxxxx_tdm8 -DCODEC_MASTER=1
Should I do similar with
2ASi8o8xxxxxx_tdm8 please, even though as it's a TDM slave implementation I wouldn't expect it to be a source for any of the clocks?
If so, it would be helpful if the directions of clock signals were documented for each build configuration, along with the required options to change MCLK source etc.
Kind regards,
Al