Can XU316-QF60x work with USB Audio App?

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

Can XU316-QF60x work with USB Audio App?

Post by Jcvc »

Hi,

As I've been playing around with the XMOS software on both the XK-EVK-XU316 and on the XK-Audio-316-mc-ab, which uses the FB and TQ types, I was wondering if it is possible to use the XU316-...-QF60A/B for the USB audio application? It seems to me that it is possible, but would appreciate to have an opinion from someone with expertise before going forward.

In my case, as I only want USB audio bidirectional and with I2S in and I2S out, it seems like the QF60A/B is more than capable of achieving this. Is there any specific incompatibility or would it just be modifying the Cmakefiles.txt along with the respective .xn file to accommodate for the pinout? Is there any dependency on any of the libraries used by the SW USB Audio application that makes the QF60A/B not suitable for this purpose? (something specific like from a PIO point of view or something)?

Thank you!
User avatar
fabriceo
XCore Addict
Posts: 250
Joined: Mon Jan 08, 2018 4:14 pm

Post by fabriceo »

Hello
yes the Q60 is able to do USB-I2S stereo in+out.
there is a design around it with the pawpaw product.
you can find information about schematic here:
https://www.xcore.com/viewtopic.php?p=40690#p40690
and the pinout is one column of the spreadsheet given in the first post of this topic.
hope it helps as a starting point
Jcvc
Member
Posts: 13
Joined: Wed May 07, 2025 11:13 pm

Post by Jcvc »

Thank you Fabriceo for sharing the information.

I've went in detail through the documents and it does help. In my case I'm planning to keep it a bit more aligned with the XK-Audio-316-mc-ab design so that I can keep the I2S PIO's on audio tile 1 instead of audio tile 0. In regards to the pawpaw design, do you know if the USB Audio reference software design was used on it? From a software perspective, do you know if it's as simple as just updating the .xn file and the cmakefiles.txt?

My concern on the software side is that it has some 'hidden' dependency on the code (similarly to what I've observed on https://www.xcore.com/viewtopic.php?p=42427#p42427 where adding ADC channels would prevent the application from working, when in theory it should be as simple as that).
User avatar
fabriceo
XCore Addict
Posts: 250
Joined: Mon Jan 08, 2018 4:14 pm

Post by fabriceo »

Hi Jcvc
yes the pawpaw design is using the standard xmos lib_xua as far as I can see from their documentations..
you can make your own design with Audio on tile1 and usb on tile0. The tricky thing is the master clock which is required on both tile then.
you have to modify the .xn file, the XUA_CONF.H and the cmakelist
everything will work, either 2 outputs or 2 inputs or 2 inputs & 2 outputs, on all OS. don't be shy.
BUT the truth is that you will have to learn a lot of information and sometime things are running well quickly, sometime it takes couple of weeks until you understand why it fails.... that's like driving a Mustang , anybody can do that but some will fail to master it quickly. in the end this is rewarding. The only limitation is if you need high speed like 768k, unfortunately you would need to optimise some piece in the heart of the lib_xua. Also integrating DSP capability requires a deeper understanding of the library.
fabriceo
Jcvc
Member
Posts: 13
Joined: Wed May 07, 2025 11:13 pm

Post by Jcvc »

Ok that sounds good. Thank you very much for all the information and encouragement!

One last question:
The tricky thing is the master clock which is required on both tile then.
As far as I can see from the hardware, we just need to loop it back to a dedicated PIO on Tile 1 so that Tile 1 also has a reference master clock. Which is then already handled on the software side by port 1D on both tile 0 and tile 1. Or am I missing something?