[USRP-users] Phase sync with different frequencies

Marcus D. Leech mleech at ripnet.com
Mon Nov 27 15:03:45 EST 2017


On 11/27/2017 01:12 PM, Bakshi, Arjun via USRP-users wrote:
>
> I've redone my experiments using the octo-clock as the time/clock/PPS 
> source, but still can't get a reliable phase across multiple runs.
>
>
> If I could get confirmation that the following is possible or 
> impossible through timed commands, I'd have something to go on:
>
>
> I have 2 USRP N210s each with an SBX. I form 2 "links":
>
> link1 = tx of USRP-A connected to rx of USRP-B by a wire. tx/rx @ freq1
> link2 = tx of USRP-B connected to rx of USRP-A by a wire. tx/rx @ freq2
>
> All wire lengths are the same. I believe the wires are also from the 
> same manufacturing batch.
>
>
> Note that the frequencies being used on each link are different, so I 
> don't expect the phase value to be the same across the links. Just the 
> same for each link after restarting the USRPs.
>
>
> I would like to see the same phase X on link1 no matter how many times 
> I restart the 2 USRPs, and the same phase Y on link2.
>
>
> Thank you,
>
>
> AB
>
> ------------------------------------------------------------------------
> *From:* Bakshi, Arjun
> *Sent:* Saturday, November 25, 2017 10:40:54 PM
> *To:* John Shields; discuss-gnuradio at gnu.org; usrp-users at lists.ettus.com
> *Subject:* Re: [USRP-users] Phase sync with different frequencies
>
> Hi John,
>
>
> Thanks for the reply. In my setup I make one of the USRPs use the time 
> source and clock source as the MIMO cable, while both get an external 
> PPS signal. Thinking about it now, it may have been better to just 
> have everything from the external octo clock.
>
>
> My goal is to get the same channel 'X' on link1, and the same channel 
> 'Y' on link2, no matter how many times I restart the USRPs. Or every 
> time I restart I should get a*X and a*Y as my channels on the two 
> links where 'a' can change each time. Right now I observe 
> different/random channels on each link every time I restart.
>
>
> To clarify link1 = tx of USRP-A connected to rx of USRP-B by a wire. 
> tx/rx @ freq1
>
> link2 = tx of USRP-B connected to rx of USRP-A by a wire. tx/rx @ freq2
>
>
> My concern is that maybe trying to set the tx and rx chains to 
> different frequencies on the same daughterboard is not a "normal" 
> operation. I was able to observe the same channel over multiple 
> restarts when I use only 1 of the two links. But not when I use both.
>
>
> I'll re-do my setup with time/clock source as octo-clock and update on 
> Monday.
>
>
> Thank you,
>
>
> Arjun
>
> ------------------------------------------------------------------------
> *From:* John Shields <john.shields at xtra.co.nz>
> *Sent:* Saturday, November 25, 2017 10:07:14 PM
> *To:* Bakshi, Arjun; discuss-gnuradio at gnu.org; usrp-users at lists.ettus.com
> *Subject:* Re: [USRP-users] Phase sync with different frequencies
> Hi Arjun,
>              You mention that you have both units connected to 
> ‘external PPS source, and have a MIMO cable between them’. Not sure 
> where the Vref is coming from but I presume over the MIMO cable?
>              I wonder how you are setting the clock and time source 
> but I had an issue with my understanding of the behaviour of the MIMO 
> cable in a configuration of 2xN200 each with an SBX.
>              Firstly, while the documentation on MIMO doesn’t 
> explicitly mention/highlight it, the PPS is not distributed over the 
> MIMO cable – the RTC register of the master is copied to the slave 
> which means that the slave doesn’t actually ‘see’ a PPS over the MIMO 
> cable. This was not a big issue for me but it meant that operations 
> such as get_last_pps and setting the ‘sync’ on the slave to ‘unknown 
> PPS’ both fail though, get_time_now works, so your timed commands 
> should be good.
>              Secondly, while it is obvious when you think about it, if 
> the slave is receiving Vref over the MIMO cable there will always be a 
> fixed phase offset based, at a minimum, on the physical length of the 
> MIMO so the Vref offset is a function of the frequency.
>              Once I understood especially the second behaviour, my 
> system performed as I would expect.
>              I know that  your setup is different than mine (I was 
> just supplying the same signal through a splitter to each USRP and 
> measuring the phase offset), but wonder if this might explain your 
> observations?
>                      Kind Regards,
>                                 John
> *From:* Bakshi, Arjun via USRP-users <mailto:usrp-users at lists.ettus.com>
> *Sent:* Sunday, November 26, 2017 10:28 AM
> *To:* discuss-gnuradio at gnu.org <mailto:discuss-gnuradio at gnu.org> ; 
> usrp-users at lists.ettus.com <mailto:usrp-users at lists.ettus.com>
> *Subject:* [USRP-users] Phase sync with different frequencies
>
> 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-ATX @ 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.
>
> ------------------------------------------------------------------------
> _______________________________________________
> USRP-users mailing list
> USRP-users at lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> 
> 	Virus-free. www.avast.com 
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> 
>
>
>
>
> _______________________________________________
> USRP-users mailing list
> USRP-users at lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
You may get better phase coherence using INTEGER_N tuning:

http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2016-February/018450.html

If you're distributing clock and PPS from the Octoclock, there's no need 
for the MIMO cable, unless you're running in shared-ethernet mode.

Also, see the following app-note on device synchronization here:

https://kb.ettus.com/Synchronization_and_MIMO_Capability_with_USRP_Devices

But I'll comment that in the "real world" you'll never see RX and TX 
having phase-synchronous clocks, which is why receiver algorithms require
   PLLs to extract data from the carrier modulation.

Now, that's a *different* issue than having phase-synchronous TX and 
(independently) phase-synchronous RX in a MIMO system.  You need all
   receivers to be phase-synchronous with each other, and all 
transmitters to be phase-synchronous with each other.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20171127/d9a378b5/attachment-0002.html>


More information about the USRP-users mailing list