8 Streams using xCORE-200 Multichannel Audio Platform

If you have a simple question and just want an answer.
Oddworld
Member
Posts: 11
Joined: Tue Mar 03, 2015 10:57 am

8 Streams using xCORE-200 Multichannel Audio Platform

Post by Oddworld »

Hi everyone,

I have been trying for weeks to adapt the "Gigabit Ethernet AVB endpoint example using I2S master"  to my needs.
Indded, even if the basic behavior of the example is working fine, for my application, I need to have 8 stream of 1 channel per endpoint instead of the default 1 stream of 8 channels.

It should normally be easy to do by modifying some #define in avb_conf.h, when I did it on the previous generation (LC board), I manage to get the correct behavior.
But on the new boards, with the same modifications, I get a strange behavior of the endpoints.

Here are the minor modifications:
  -  Line 10     #define AVB_NUM_SOURCES 1     becomes     #define AVB_NUM_SOURCES 8
  -  Line 22     #define AVB_NUM_SINKS 1     becomes     #define AVB_NUM_SINKS 8
  -  Line 33     #define AVB_MAX_CHANNELS_PER_TALKER_STREAM 8     becomes     #define AVB_MAX_CHANNELS_PER_TALKER_STREAM 1
  -  Line 35     #define AVB_MAX_CHANNELS_PER_LISTENER_STREAM 8     becomes     #define AVB_MAX_CHANNELS_PER_LISTENER_STREAM 1

After recompiling and reflashing the boards, I noticed one issue :
  -  When sending more than 6 streams with a talker, the next 7th and 8th streams are "mute" even if they appears connected to the endpoints no sound comes out. When disconnecting one of the 6 first streams, sound suddenly appear on the 7th stream.

When watching a debug prints, there are all the same on talker side but on the listener side but different on listener side.

On listener Stream 0 to 5 outputs :

CONNECTING Listener sink #0 -> Talker stream 2297808130000, DA: 91:E0:F0:0:BB:2A
Listener sink #0 chan map:
Stream_num : 0  0 -> 0
MSRP: Register attach request 229780:8130000
Added stream:
ID: 2297808130000
MVRP: Joined VID 2
Added stream:
ID: 2297808130000
DA:91:E0:F0:0:BB:2A:
max size: 56
interval: 1
Media output 0 locked: -35 samples shorter
 
But on the next 2 streams, I never get the last line about the media output beein locked.
 
That is like if above 6 streams, the talker was no more able to source the audio. I do not think this is a compute power issue since 8 streams worked well on previous generation XMOS.
Does someone have any idea where the issu may come from ?

Thanks

 

User avatar
Thomas
Experienced Member
Posts: 66
Joined: Fri Feb 05, 2010 12:34 pm

Post by Thomas »

This could be due to a performance issue.
To confirm this suspicion you can change the sample rate to 96000 in avb_conf.h:
#define AVB_MAX_AUDIO_SAMPLE_RATE 96000