Hi everyone,
I'm trying to get a USB-to-I2S audio pipeline working on the i.MX RT1020 using Zephyr's UAC2 asynchronous explicit feedback sample, but I'm running into issues with the NXP SAI (I2S) driver and eDMA.
Before I spend more time debugging DMAMUX and IRQ configuration, does anyone know of a working USB-to-I2S example for the RT10xx series using Zephyr?
I'm particularly looking for any reference project that implements a UAC2 to SAI audio path on Zephyr.
Thanks in advance!
Hi @lpc73 ,
Thanks for your interest in NXP MIMXRT series!
There is currently no ready-made UAC2→SAI reference project for the RT10xx in upstream Zephyr. The building blocks are all supported on RT10xx: the SAI/I2S driver (nxp,mcux-i2s), eDMA, and the UAC2 class. DMAMUX routing is done via the devicetree properties nxp,tx-dma-channel / nxp,rx-dma-channel + pinctrl, not manually in C. The main piece you'll need to add is the feedback loop for the RT platform, and be sure to place DMA audio buffers in non-cacheable memory.
If Zephyr isn't mandatory, the MCUXpresso SDK's dev_audio_speaker + sai_edma_transfer are the most mature ready-to-use UAC2→SAI examples.
Best regards,
Gavin