Page 1 of 1

Combining USB Audio with AVB networking on Multichannel Audio Platform with XEF216-512-TQ128

Posted: Fri Mar 17, 2017 12:32 pm
by ast8346
Hello,

I have got the xCORE-200 Multichannel Audio Platform with XEF216-512-TQ128 and I'm considering to design an application that will combine both AVB networking and USB audio functions on the same device. The point is to stream USB audio over the network, so two PCs can be connected to the same stream.
At the moment I'm trying to evaluate the potential resource usage of this setup and assign tasks to the individual cores. I would like to ask if you could help me with this.

For a Gigabit Ethernet application AN00203 suggests that the tile1 should be entirely reserved for Ethernet MAC and Ethernet PHY associated tasks.
This leaves the tile0 to implement the rest. USB Audio Design Guide suggests that at least 3 cores should be allocated for USB audio (XUD core, buffering core, decouple core), moreover XUD core must be 80 MIPS, thus limiting the amount of available cores on tile0 to 6, is this correct?
In this design, I do not need 1722 listener task. Hence, on the remaining 3 cores I need to implement 1722.1, MAAP and SRP task, 1722 talker task, gPTP and media clock server task, AVB manager task, I2S master audio buffer task, I2C control task (slave).
Would you think that is possible? Perhaps you can think of a way to optimize this setup?
Please note that my application does not need to be multi-channel. Stereo will suit me well, both for USB and AVB.

ps. Potentially instead of Gigabit Ethernet I could use 100Mbit Ethernet that takes less memory and cores. AN01032 specifies 11 cores, so if I add 3 USB cores, that will fit just fine (8+6).

Many thanks.

Re: Combining USB Audio with AVB networking on Multichannel Audio Platform with XEF216-512-TQ128

Posted: Sun Mar 19, 2017 11:16 pm
by ast8346
Just found this thread:
http://www.xcore.com/viewtopic.php?f=26 ... res#p24242
Looks like if I run XUD as a high priority then I will be able to have 8 cores on tile 0. Also USB requires 2 cores, not 3. Hence, if I just add two USB cores into existing Gigabit AVB library while running XUD as a high priority, then maybe it'll work. Think I have enough information to start trying.
If Gigabit AVB version does not work out, I can resort to 100M version, which will empty 2 cores, so there will be definitely no shortage of cores in this case.