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.


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to