[USRP-users] Phase sync with different frequencies

Bakshi, Arjun bakshi.11 at buckeyemail.osu.edu
Sat Nov 25 16:28:50 EST 2017


Hi all,


I'd like to use the phase resync freature on the SBX to get reliable phase alignment in the following setup:


link_freq1 = USRP-A TX @ Freq1 ---> USRP-B RX @ Freq1
link_freq2 = USRP-B TX @ Freq2 ---> USRP-A RX @ Freq2

Where link_freq1 should always have phase X, and link_freq2 should always have phase Y. I measure the phase by first calculating the channel over a wire for that link. I then look at the phase of the channel.

The USRPs are connected to an external PPS source, and have a MIMO cable between them.


I've been able to use timed commands to get the same channel/phase every time (after multiple restarts) in a single link setup like:


USRP-A TX @ Freq1 ---> USRP-B RX @ Freq1


But my code for phase sync in the 2-link setup doesn't seem to work(copied below). I understand that the phase of each link's channel may not be the same as the frequencies are different. However is it possible to set it up so that the phase/channel over wire in link_freq1 is always X and that in link_freq2 is always Y? Or is that impossible because of some hardware constraints?


Thank you,


AB


code snippet:

## 2-channel usrp source and sink have been initialized, everything except

## center feqs have been set

## uhd_usrp_source_0 is a  multi usrp source block

## uhd_usrp_sink_0 is a multi usrp sink block
## both blocks have device args set to : "addr0=192.168.10.3, addr1=192.168.10.2"


## the following code is added in the init() function:

time.sleep(1)

future_cmd_time = self.uhd_usrp_source_0.get_time_last_pps() + uhd.time_spec_t(1.0)
##My guess is that both physical USRPs should see this time since MIMO+same external PPS

self.uhd_usrp_source_0.set_command_time(future_cmd_time)
self.uhd_usrp_sink_0.set_command_time(future_cmd_time)

self.uhd_usrp_source_0.set_center_freq(uhd.tune_request(cf), 0)
self.uhd_usrp_source_0.set_center_freq(uhd.tune_request(cf2), 1)

self.uhd_usrp_sink_0.set_center_freq(uhd.tune_request(cf2), 0)
self.uhd_usrp_sink_0.set_center_freq(uhd.tune_request(cf), 1)

self.uhd_usrp_source_0.clear_command_time()
self.uhd_usrp_sink_0.clear_command_time()


This is in the init() function. I don't re-tune the frequencies again after this.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20171125/0b190c35/attachment-0002.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: setup.png
Type: image/png
Size: 51872 bytes
Desc: setup.png
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20171125/0b190c35/attachment.png>


More information about the USRP-users mailing list