USB Audio -> 2 * independent I2S channels

Discussions about USB Audio on XMOS devices
Jcvc
Active Member
Posts: 32
Joined: Wed May 07, 2025 11:13 pm

USB Audio -> 2 * independent I2S channels

Post by Jcvc »

Hi,

Apologies in advance as I have not yet tried this at my end, but before I give it a go, would like to understand if the current framework supports USB audio stream to two independent I2S channels.

To provide some context to my question, what I'm essentially trying to do is to communicate, using xu316, with a CODEC and another external MCU.
The audio path would look something like:
USB <-> I2S 1 <-> CODEC
USB <-> I2S 2 <-> External MCU

I2S 1 and I2S do not share the bclk nor the lrclk. Ideally not even the MCLK for the I2S is shared.

Because my CODEC and MCU may not necessarily always be at the same rates, I need to have a dedicated I2S channel for each of them (at the moment I'll probably be placing one of them in tile 0 and another one on tile 1).

Does anyone know if there is any specific limitation that would stop me from doing this? Or would it just be a matter of expanding the implementation of XUA_AudioHub() to split/mix (depending on the direction) the usb buffered data to the I2S ports?

Thank you!