USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

Synchronize front ends

Hello,

 

I'm interested in finding a way to get the front ends of 2 USRPs to start puting samples at the exact same time in the output ports for coherent TX.

My harware are 2 NI-2940 USRPs, these are x310 with WBX-120 daughterboards. Each USRP has 2 channels so it does 4 output channels.

For synchronizing their time I have connected an Octoclock-G, for PPS and 10MHz. As shown figure 9 on this document: https://www.ettus.com/content/files/kb/mimo_and_sy​nc_with_usrp_updated.pdf

The host PC is linux based intel i7 with 8GB RAM, it has dedicated ethernet interfaces of 1GB for each USRP, I got no underuns, no underflow neither. In any case if it happens I would like to be able to realign the samples again.

I'm programming to the API in c++ and I've been following Ettus Research tutorials for synch: http://files.ettus.com/manual/page_sync.html . I think I've covered everything written there. But I can't get the samples going out of the USRPs at the same moment. Not even in the 2 TX/RX ports of the same the same USRP.

The code I use "sampSyncTest.txt" is attached here (actually the extension is .cpp). With this I can get the output I want but not aligned at all.

 

My sampling rate is 8MSps, each sample lasts 125ns, but the delay between samples is about I was hoping that USRP had better timing accuracy than this.

To measure the time delay between samples I've coded a small software which sends a burst of 4 non zero samples spaced 7 samples between them, the whole burst lasts about 3.12us (25 samples) and it repeats each 30usec (240 samples). The distance between samples and between bursts in inside each channel is correct, but the time the samples come out in each channel is far from been synchronous with others channels. This can be seen in the attached scope screenshot. Also delays change if underuns happens.

 

Thus I wanted to ask what is the accuracy in time synch there would be between channels and between USRPs, I couldn't find specs about this in NI nor anywhere.
Also I would like to ask what i'm doing wrong in USRP configuration; is there some config I'm missing ? I've put some commands in the wrong order ?

 

Thank you very much in advance,

Pablo

Download All
0 Kudos
Message 1 of 3
(3,286 Views)

Hi PabIRT,

 

Most people on tese forums are familiar with LabVIEW, not C++. I recommend contacting Ettus support

0 Kudos
Message 2 of 3
(3,263 Views)

Well finally I could synchronize it, more or less. It still has underruns every now and then.

 

Most of the problem was in the host PC performance. It need a tight real time process control in order to keep the sample rate.

0 Kudos
Message 3 of 3
(3,192 Views)