[USRP-users] B210 Timed Commands, Samples over time

Marcus D. Leech patchvonbraun at gmail.com
Thu Jul 2 21:11:17 EDT 2020

On 07/02/2020 08:29 PM, Sidd Subramanyam via USRP-users wrote:
> I am running a B210 USRP with the built in GPSDO. My goal is to collect a fixed number of samples (4 Million) at the start of every minute over the course of about an hour. I am setting up the script to make use of the STREAM_MODE_NUM_SAMPS_AND_MORE collection mode. For my application It is important that the collection starts precisely every minute, hence why I am synchronizing with the GPSDO. Because of this, I am attempting to tune the LO with the GPSDO every minute before the collection starts in order to keep the LO from drifting. Furthermore, right before starting the collection, I query the GPSDO for the location and log it as well. This seems to have a blocking effect on the whole USRP. How can I use timed commands to ensure that I synchronize time with GPS Time, tune the LO with the GPS 10 MHz, and start collection of my fixed number of samples, with a known time spacing between each of these so that I can minimize any LO drift by the time I start collecting my samples.
> Thanks,
> Sidd
Re-tuning will have *zero* effect on "LO drift".  The PLL synthesizer 
will be locked to your GPSDO output, which, once it has achieved lock-on to
   GPS will be very very small--roughly 1 part in 10^12.    Re-tuning 
will have zero effect on drift--the whole point of a PLL synthesizer (as 
is used
   in ALL modern radios) is that the frequency is set with digital 
registers that control the dynamics of a phase-comparator and charge-pump
   loop. The "drift" of the LO is *ENTIRELY* dependent on the reference, 
which in your case is the GPSDO output.

You only need to "synchronize to  GPS time" *ONCE* at the start of your 
session, after that, the time-of-day clock will count updwards at whatever
   the master-clock rate is, and with whatever precision is being 
delivered by your GPSDO.  There is NO reason to continually "re-synch", 
unless you
   lose GPS lock for an extended period--the "holdover" of the GPSDO 
on-board is quite good--a few PPB.

How are you querying the location information?  I think that's stored in 
a "sensor" register, and you should be able to asynchronously query it
   while samples are being streamed.  Now, if you have everything 
happening in a single *THREAD*, and you are making "sensor" queries, they
   are blocking calls, as far as I know.  But that's just a "how do I 
structure my threads" problem.

More information about the USRP-users mailing list