Page 1 of 1

32x32 at 96k

Posted: Thu Apr 07, 2016 8:26 pm
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.

Re: 32x32 at 96k

Posted: Fri Apr 08, 2016 12:17 pm
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.

Re: 32x32 at 96k

Posted: Fri Apr 08, 2016 9:43 pm
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?

Re: 32x32 at 96k

Posted: Sat Apr 09, 2016 10:38 am
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

Re: 32x32 at 96k

Posted: Thu May 05, 2016 2:52 pm
by dlh
Hi Ross,

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

Thanks

Re: 32x32 at 96k

Posted: Tue Dec 13, 2016 1:30 pm
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.

Re: 32x32 at 96k

Posted: Fri Jan 06, 2017 2:27 am
by redfart
Hello Ross (and others). I am also tackling this issue. Has anyone got it running yet?

Re: 32x32 at 96k

Posted: Tue Jan 17, 2017 5:09 pm
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.

Re: 32x32 at 96k

Posted: Thu Jan 19, 2017 10:42 am
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.

Re: 32x32 at 96k

Posted: Wed Apr 25, 2018 3:40 pm
by cl-b
Hi all,

Has anyone manage to handle multi packet transaction in lib_usb ?

Thank you