[USRP-users] Receive samples at exact time_spec_t

Hojoon Yang omnibusor at kaist.ac.kr
Thu Nov 16 05:31:03 EST 2017

Hi.I use USRP B200 with external on-board GPSDO.1. I set the clock source and time soure to GPSDO    usrp->set_clock_source("gpsdo", 0);    usrp->set_time_source("gpsdo", 0);2. Set_time_next_pps and sleep 2 secs.    usrp->set_time_next_pps(uhd::time_spec_t(0.0), 0);    boost::this_thread::sleep(boost::posix_time::seconds(2));3. Issue the stream command to start the stream from 3.0 seconds.    uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE);    stream_cmd.num_samps = 100;    stream_cmd.stream_now = false;    const uhd::time_spec_t stream_time = uhd::time_spec_t(3.0);    stream_cmd.time_spec = stream_time;    rx_stream->issue_stream_cmd(stream_cmd);4. Start the Rx streams and check received time.    size_t num_rx_samps = rx_stream->recv(&buff.front(), buff.size(), md, 5.0);    ---------------------------------------------------------------------------------------------------    Received packet: 100 samples, 3 full secs, 0.000037 frac secs     Stream time was: 3 full secs, 0.000000 frac secs     Difference between stream time and first packet: 37.093750 usI command to start receving from 3.0 seconds, but the USRP B200 does not start at exact time(there are some delay, 37us).I guess it seems normal.(a)But is there any method to overcome this tiny difference? at least below 10 us.(b)Is the difference always same? If not, Could you tell me which things could change the difference? (c)Can I solve the problem If I set the stream time to 3.0s - 37us?It will be very appreciated if someone could answer the above three questions!Thanks in advance.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20171116/4e3d837f/attachment-0002.html>

More information about the USRP-users mailing list