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

Postby jallard » Thu Apr 07, 2016 8:26 pm

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: 768
Joined: Thu Dec 10, 2009 9:20 pm

Postby Ross » Fri Apr 08, 2016 12:17 pm

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

Postby jallard » Fri Apr 08, 2016 9:43 pm

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: 768
Joined: Thu Dec 10, 2009 9:20 pm

Postby Ross » Sat Apr 09, 2016 10:38 am

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

Postby dlh » Thu May 05, 2016 2:52 pm

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

Postby rogergreen2003 » Tue Dec 13, 2016 1:30 pm

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

Postby redfart » Fri Jan 06, 2017 2:27 am

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

Postby Ross » Tue Jan 17, 2017 5:09 pm

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: 1116
Joined: Thu May 27, 2010 10:08 am
Contact:

Postby infiniteimprobability » Thu Jan 19, 2017 10:42 am

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
Member++
Posts: 27
Joined: Fri Sep 15, 2017 2:58 pm

Postby cl-b » Wed Apr 25, 2018 3:40 pm

Hi all,

Has anyone manage to handle multi packet transaction in lib_usb ?

Thank you

Who is online

Users browsing this forum: No registered users and 42 guests