32x32 at 96k

Sub forums for various specialist XMOS applications. e.g. USB audio, motor control and robotics.
jallard
Member
Posts: 11
Joined: Thu Apr 07, 2016 8:10 pm

32x32 at 96k

Post by jallard »

Does XMOS support Audio Class 2.0 multiple transactions per microframe? I'm wondering if there's a way to support 32in x 32out 24-bit at 96khz.


User avatar
Ross
XCore Expert
Posts: 783
Joined: Thu Dec 10, 2009 9:20 pm

Post by Ross »

It's not supported "out of the box" but could be modified to do so. I've written a proof of concept in the past but never had the time to productise.
jallard
Member
Posts: 11
Joined: Thu Apr 07, 2016 8:10 pm

Post by jallard »

Thanks, Ross.

Do you have any information regarding your proof of concept that you could share, privately or otherwise?

Is this functionality something XMOS might be able to provide on a contract basis?
User avatar
Ross
XCore Expert
Posts: 783
Joined: Thu Dec 10, 2009 9:20 pm

Post by Ross »

From memory (it was some time ago) the usb library was modified such that it could accept high-bandwidth ISO endpoints (including the PID sequencing etc). This was done with that a "jumbo" packet was presented to the application and therefore very little change to the application was required.

I believe I tested it on 32x32 @ 96kHz (4 * 8 channel TDM) - this is the limitation of the xCORE200 MC audio board.

Please private message me and i'll try and dig out more details.

Cheers
Ross
dlh
Member
Posts: 9
Joined: Thu May 05, 2016 4:47 am

Post by dlh »

Hi Ross,

I am also very interested in this capability. Any chance you could provide some info about your implementation?

Thanks
rogergreen2003
Junior Member
Posts: 5
Joined: Sat Sep 24, 2016 10:13 am

Post by rogergreen2003 »

Ross, here other interested in your changes to the USB library for supporting high-bandwidth ISO endpoints.

I have sent a private message.

Thank you.
redfart
Member++
Posts: 16
Joined: Tue Oct 04, 2016 11:27 pm

Post by redfart »

Hello Ross (and others). I am also tackling this issue. Has anyone got it running yet?
User avatar
Ross
XCore Expert
Posts: 783
Joined: Thu Dec 10, 2009 9:20 pm

Post by Ross »

Hello guys, I'm afraid this is not a priority for XMOS at this current time and i've not had any "spare" time to take a look.
User avatar
infiniteimprobability
XCore Legend
Posts: 1124
Joined: Thu May 27, 2010 10:08 am

Post by infiniteimprobability »

There is an alternative which is to use two (USB) interfaces each with it's own endpoint and each running 16 channels @ 96KHz @ 24 or 32b (16 * 96000 * 32 = ~49Mbps which fits in a single microframe). Each interface shares the same clock source so they *should* be synched.

I did an experiment to get 16ch of 192KHz @ 32b and it worked. What I do not know if/how Windows hosts deal with that (I have had no chance to try and it wasn't the requirement). OSX and Linux seemed fine with it. OSX worked beautifully with perfect sync at startup and long term whereas there was a bit of startup delay between interfaces - generally within a couple of SoF periods (250us) on a RPi3 but occasionally more.

The trick to this is to add a second interface in the descriptor (sharing the same clock block) and add a second decouple task.
cl-b
Active Member
Posts: 44
Joined: Fri Sep 15, 2017 2:58 pm

Post by cl-b »

Hi all,

Has anyone manage to handle multi packet transaction in lib_usb ?

Thank you