[USRP-users] How good can USRPs with internal GPSDOs being synchronized?

Chi chengchibt at gmail.com
Wed Sep 4 07:50:09 EDT 2013


Hi all,

I am trying to synchronise two USRP N210 with the goal of receiving
time-aligned samples.
I've modified the rx_samples_to_file.cpp code according to this page:
http://files.ettus.com/uhd_docs/manual/html/sync.html

It seems that the signals at the USRPs have between +0.2 and -0.2 us time
difference.
This time difference seems to be random, as it changes every time I run a
new experiment.

Does anyone know why the samples receive at these two USRPs are still not
aligned?
I thought the time difference should be less than 100ns. What's the right
way to minimize the
time difference??

Best regards,
Cheng Chi

------------------------------------------------------------------------------------------------
Here is the setup and the code snippet that I've add to the example
rx_samples_to_file.cpp.

- USRP N210 with internal GPSDO module, daughtherboard is DBSRX2
- Signal generator outputs a common signal and connects to the two USRPs
through equal length cables

Transmitter part: Common signal is FM signal with 1MHz bandwidth, carrier
frequency is 1.6GHz.
Receiver part: Sampling rate is 5Msps


1. For Common Reference Signals
{{{
usrp->set_clock_source("gpsdo");
usrp->set_time_source("gpsdo");
}}}

2. For synchronising the Device Time
Because each N210 has an internal GPDSO module, the device times are
automatically synchronised

3. For Synchronising Channel Phase

To align CORDIC:
{{{
    uhd::stream_cmd_t stream_cmd((num_requested_samples == 0)?
        uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS:
        uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE
    );
    stream_cmd.num_samps = num_requested_samples;
    stream_cmd.stream_now = false;
    stream_cmd.time_spec = uhd::time_spec_t(time_to_receive);
    usrp->issue_stream_cmd(stream_cmd);
}}}

To align LOs in the frontend:
{{{
    uhd::time_spec_t cmd_time = usrp->get_time_now() +
uhd::time_spec_t(0.1);
    usrp->set_command_time(cmd_time);
    usrp->set_rx_freq(1.6e9);
    usrp->clear_command_time();

}}}
For DBSRX2, does this method for aligning LO work?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20130904/eb09e8c5/attachment-0002.html>


More information about the USRP-users mailing list