32x32 at 96k
-
- Member
- Posts: 11
- Joined: Thu Apr 07, 2016 8:10 pm
32x32 at 96k
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.
-
Verified
- XCore Legend
- Posts: 1158
- Joined: Thu Dec 10, 2009 9:20 pm
- Location: Bristol, UK
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.
-
- Member
- Posts: 11
- Joined: Thu Apr 07, 2016 8:10 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?
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?
-
Verified
- XCore Legend
- Posts: 1158
- Joined: Thu Dec 10, 2009 9:20 pm
- Location: Bristol, UK
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
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
-
- Member
- Posts: 9
- Joined: Thu May 05, 2016 4:47 am
Hi Ross,
I am also very interested in this capability. Any chance you could provide some info about your implementation?
Thanks
I am also very interested in this capability. Any chance you could provide some info about your implementation?
Thanks
-
- Junior Member
- Posts: 5
- Joined: Sat Sep 24, 2016 10:13 am
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.
I have sent a private message.
Thank you.
-
- Member++
- Posts: 16
- Joined: Tue Oct 04, 2016 11:27 pm
Hello Ross (and others). I am also tackling this issue. Has anyone got it running yet?
-
Verified
- XCore Legend
- Posts: 1158
- Joined: Thu Dec 10, 2009 9:20 pm
- Location: Bristol, UK
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.
-
Verified
- XCore Legend
- Posts: 1153
- Joined: Thu May 27, 2010 10:08 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.
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.
-
- Active Member
- Posts: 44
- Joined: Fri Sep 15, 2017 2:58 pm
Hi all,
Has anyone manage to handle multi packet transaction in lib_usb ?
Thank you
Has anyone manage to handle multi packet transaction in lib_usb ?
Thank you