Intel Open-AVB Talker to XR-AVB-LC-BRD Listener Problems

Sub forums for various specialist XMOS applications. e.g. USB audio, motor control and robotics.
Post Reply
e45tg4t3
New User
Posts: 3
Joined: Tue Oct 29, 2013 3:19 pm

Intel Open-AVB Talker to XR-AVB-LC-BRD Listener Problems

Post by e45tg4t3 »

Hello,

at first a short overview of what i've done and where i got stuck.
I am currently evaluating the Intel Open-AVB Stack (https://github.com/intel-ethernet/Open-AVB) with a linux x86 PC. I did a simple implementation of the IEEE 1722.1 standard, so that i got an external controller entity, which can be run on linux, and also did extensions to the simple_talker and simple_listener from the Open-AVB project.

I tested the two programs with each other, i.e. i got 2 PC's with 2 Intel AVB-Compatible ethernet cards and this worked. Further it is possible for me to record a stream from an XR-AVB-LC-BRD with the latest simple_avb_demo application on my PC. But when i want to stream from my PC to a XR-AVB-LC-BRD i got no output, altough i got the correct destination mac and stream id on the XR-AVB-LC-BRD and my PC sends out 1722 packets with data in them.

I've done one modification to the code on the XMOS to get only 2 Channels in the stream, on both, listener and talker side. I attached a Wireshark Capture of the setup, so maybe somebody sees something i forgot to submit from the PC that the XMOS-Software needs.

Short Summary:
Streaming from PC Talker to PC Listener is working.
Streaming from XMOS Talker to PC Listener is working.
Streaming from PC Talker to XMOS Listener is NOT working.

So i hope somebody see any problem here. If you may need any further logs or infos please don't hesitate to ask.

Best Regards and Thanks in advance

Ben
Attachments
x86_Talker_to_XMOS_Listener.zip
Wiresharrk Capture of stream between PC Talker and Xmos Listener
(1.58 MiB) Downloaded 353 times
x86_Talker_to_XMOS_Listener.zip
Wiresharrk Capture of stream between PC Talker and Xmos Listener
(1.58 MiB) Downloaded 353 times


User avatar
Andy
Respected Member
Posts: 279
Joined: Fri Dec 11, 2009 1:34 pm

Post by Andy »

Hi Ben,

I had a quick glance at the Wireshark capture and it looks OK.

Can you post the output from running the endpoint from JTAG with XScope enabled? The following command should do it:

Code: Select all

xrun --xscope bin/simple_avb_demo.xe
e45tg4t3
New User
Posts: 3
Joined: Tue Oct 29, 2013 3:19 pm

Post by e45tg4t3 »

Hi Andy,
here's the Output i get from the xscope

Code: Select all

PTP Role: Master
MAAP reserved Talker stream #0 address: 91:E0:F0:0:69:EE
DISCONNECTING Listener sink #0 -> Talker stream A0369F1C3B0B0000, DA: 91:E0:F0:0:AB:42
 Talker stream 0A0369F1C, DA: 91:E0:F0:0:AB:42
None XMOS Talker
CONNECTING Listener sink #0 -> Talker stream A0369F1C3B0B0000, DA: 91:E0:F0:0:AB:42
Listener sink #0 chan map:
  0 -> 0
  1 -> 1
Thank you and Best Regards

Ben
User avatar
Andy
Respected Member
Posts: 279
Joined: Fri Dec 11, 2009 1:34 pm

Post by Andy »

Hi Ben,

Have you modified the code at all? The line

Code: Select all

None XMOS Talker
shouldn't be printed by the reference design.

It looks like the media clock is failing to lock from the incoming stream. At a guess, this could be because the 48kHz 'media clock' on the PC is someway off 48kHz or is unstable.

One thing to check is if the stability count here is incrementing to above the threshold: https://github.com/xcore/sw_avb/blob/ma ... er.xc#L194
e45tg4t3
New User
Posts: 3
Joined: Tue Oct 29, 2013 3:19 pm

Post by e45tg4t3 »

Hello Andy,

yes i did modify the code to print this line. If i insert a simpleprint to check the stability count, like this

Code: Select all

  if (sample_diff < ACCEPTABLE_FILL_ADJUST &&
      sample_diff > -ACCEPTABLE_FILL_ADJUST &&
      (sample_diff - b.prev_diff <= 1 &&
       sample_diff - b.prev_diff >= -1)) {
    b.stability_count++;


  } else {
    b.stability_count = 0;
  }
  simple_printf("b.stability_count %d\n",b.stability_count);
  
  if (!locked && (b.stability_count > STABLE_THRESHOLD)) {
      int max_adjust = MEDIA_OUTPUT_FIFO_WORD_SIZE-MAX_SAMPLES_PER_1722_PACKET;
      if (fill - sample_diff > max_adjust || 
          fill - sample_diff < -max_adjust) {
i get this lines on the console repeatedly

Code: Select all

b.stability_count 1
b.stability_count 0
b.stability_count 0
b.stability_count 0
b.stability_count 1
b.stability_count 0
b.stability_count 0
b.stability_count 0
b.stability_count 1
So for me it doesn't look like the threshold is reached. May there be other things i should check?

Thanks and Best Regards
Ben
cchandini
Member++
Posts: 28
Joined: Fri Jul 29, 2016 8:25 am

Post by cchandini »

Hi e45tg4t3,

Were you able to fix this issue?
Even I am facing a similar problem. I am using a 3rd party device with XMOS. When XMOS AVB Endpoint is configured as talker and other device as listener, it works fine and I am able to get proper output.
When 3rd party device is used as talker and XMOS AVB Endpoint as listener, I cant hear anything at the output. I don't even know if it is receiving 1722 packets sent by talker or not.

Regards,
Chandini
Post Reply