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.