-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Xmos Daisy Chain topology #31
Comments
As I recall your network setup is as follows: DC#1(talker 1) <-> DC#2 (talker 2) <-> PC (listener) and you want 1 stream from talker 1 with 4 channels to go to the PC, and you want 1 stream from talker 2 with 4 channels to go to the PC also. At the PC you are hoping for 8 channels of audio to show up, but this is problem number 1. Each stream is separate and in separate media clock domains, so you can have eight channels at the PC, but the setup would have to look like this without some sophisticated software: DC#1(talker 1) <-> DC#2 (talker 2) <-> PC (listener #1(stream1) & listener #2(stream2)) The above should work fine with the DC firmware, but the setup for each DC should be as below. Does this make sense? -Chris /******** Endpoint audio and clocking parameters ************************************************/ /* Talker configuration */ /** The total number of AVB sources (streams that are to be transmitted). /
/* Listener configuration */ /** The total number of AVB sinks (incoming streams that can be listened to) /
/** The maximum number of channels permitted per 1722 Talker stream / |
Thank you Chris. |
They are different streams, so they will not necessarily be any synchronization between the two talker streams. I suspect that you need the two talkers to be synchronized. If the stream should be synchronized, you need to take the audio from each listener (remember there are two listeners) and combine them in time. I am not really on an expert on what will be involved there, but all of the timing information should be available at the listeners to do that. -Chris From: pcub <[email protected]mailto:[email protected]> Thank you Chris. — |
@pcub does it make sense about synchronizing the audio data from two talkers? The listener will still have to combine them. The media clocks driving the ADCs on the XMOS DC can be synchronized to an incoming clock. I am not sure if every AVB endpoint can synchronize media clocks like this. AVB provides the capabilities with gPTP, but that does not mean that every entity will provide this capability. This is how I understand that topic. So on a XMOS DC, to synchronize a media clock the device needs to be a listener as well as a talker. Then a device needs to be set up to provide a stream with the master clock. This can be the PC or one of the DCs. Having the PC be the media clock master makes the most sense to me, so it also needs to be send a stream to the DCs. This is not trivial and requires a separate controller to set up the streams. I hope this makes sense. I don't believe there are any issues with the XMOS DC software to do any of this work. I am going to close this issue. -Chris |
I am connecting two daisy chain board each other without avb switch. One board is connected to linux machine (in which openavb is running).
I have two audio slice each connected to DC boards.
I want to record from 8 audio channels in which 4 channels per daisy chain board.
I want the setup like:
two DC as talkers and PC as listener.
But recorded signal does no look right form. I recorded simple 1khz sine wave.
I modified:
line 39: #define AVB_NUM_SOURCES 2
line 61: #define AVB_NUM_SINKS 2
in xmos source code.
xmos console output is as following:
PTP Port 0 Role: Master
PTP Port 1 Role: Master
Setting clock source: INPUT_STREAM_DERIVED
MAAP reserved Talker stream #0 address: 91:E0:F0:0:A0:56
MAAP reserved Talker stream #1 address: 91:E0:F0:0:A0:57
CONNECTING Talker stream #0 (229700617C0000) -> Listener 0:22:97:FF:FE:0:61:BC
MSRP: Register stream request 229700:617C0000
Added stream:
ID: 229700617C0000
DA:91:E0:F0:0:A0:56:
max size: 128
interval: 1
Talker stream #0 ready
Added stream:
ID: 22970061BC0000
DA:91:E0:F0:0:5F:CA:
max size: 128
interval: 1
CONNECTING Listener sink #0 -> Talker stream 22970061BC0000, DA: 91:E0:F0:0:5F:CA
Listener sink #0 chan map:
0 -> 0
1 -> 1
1722 router: Enabled map for stream 22970061BC0000 (link_num:0, hash:0)
MSRP: Register attach request 229700:61BC0000
Media output 0 locked: 166 samples shorter
Media output 1 locked: 166 samples shorter
PTP Port 1 Role: Slave
PTP Port 0 Role: Master
Media output 0 lost lock
Media output 1 lost lock
Media output 0 locked: 123 samples shorter
Media output 1 locked: 122 samples shorter
PTP sync locked
CONNECTING Talker stream #0 (229700617C0000) -> Listener A0:36:9F:FF:FE:4A:52:20
Added stream:
ID: 229700617C0000
Increasing port 1 shaper bandwidth to 10880000
Setting stream 0 1722 TX port to 1
Talker stream #0 on
Decreasing port 1 shaper bandwidth to 0
Talker stream #0 off
AP: MSRP_LISTENER 617C0000:1:0:0 MRP_EVENT_RECEIVE_LEAVE_ALL: MRP_LO -> MRP_UNUSED
in
1722 router: Enabled map for stream 22970061BC0000 (link_num:0, hash:0)
MSRP: Register attach request 229700:61BC0000
Media output 0 locked: 166 samples shorter
Media output 1 locked: 166 samples shorter
PTP Port 1 Role: Slave
PTP Port 0 Role: Master
Media output 0 lost lock
Media output 1 lost lock
I traced those messages and it is in media_clock_server.xc. There is some macros including stable threshold.
What is that threshold for? and min and max range?
What is the problem?
Thank you.
The text was updated successfully, but these errors were encountered: