Hi Rob,
Thanks for the heads up on the documentation bug. While digging through it
I also noticed a bug in the White Rabbit arguments. WR disciplines the
internal oscillator, so that must be explicitly selected. Below is the
correct clock/time combination to enable WR:
auto usrp =
uhd::usrp::multi_usrp::make("type=n3xx,clock_source=internal,time_source=sfp0");
-Daniel
On Thu, Aug 2, 2018 at 10:32 PM, Rob Kossler via USRP-users <
[email protected]> wrote:
> One more small thing.... The device arguments "time_source" and
> "clock_source" are not listed in the device arguments table in the UHD
> manual (http://files.ettus.com/manual/page_usrp_n3xx.html#
> n3xx_usage_device_args). They are, however, shown as examples in the
> clock/time synchronization section (http://files.ettus.com/
> manual/page_usrp_n3xx.html#n3xx_synchronization). Updating the table
> would be helpful.
>
> Rob
>
> On Thu, Aug 2, 2018 at 10:48 PM Rob Kossler <[email protected]> wrote:
>
>> I am learning to use the gpsdo capability of the N310 and I stumbled upon
>> something strange. I have a capability in my software for displaying a
>> message every time the "last PPS" value changes. Note that during startup,
>> I set the clock to zero on a PPS trigger.
>>
>> If I set "time_source=internal,clock_source=internal", I get the
>> following expected behavior
>> Mboard 0 last PPS time: 3
>> Mboard 0 last PPS time: 4
>> Mboard 0 last PPS time: 5
>> Mboard 0 last PPS time: 6
>> Mboard 0 last PPS time: 7
>> Mboard 0 last PPS time: 8
>> Mboard 0 last PPS time: 9
>> Mboard 0 last PPS time: 10
>> Mboard 0 last PPS time: 11
>> Mboard 0 last PPS time: 12
>> Mboard 0 last PPS time: 13
>>
>> But if I set "time_source=gpsdo,clock_source=gpsdo", I get the following
>> unexpected behavior
>> Mboard 0 last PPS time: 2.9998
>> Mboard 0 last PPS time: 3.9998
>> Mboard 0 last PPS time: 4.9998
>> Mboard 0 last PPS time: 5.9997
>> Mboard 0 last PPS time: 6.9997
>> Mboard 0 last PPS time: 7.9996
>> Mboard 0 last PPS time: 8.9996
>> Mboard 0 last PPS time: 9.9995
>> Mboard 0 last PPS time: 10.9995
>> Mboard 0 last PPS time: 11.9994
>> Mboard 0 last PPS time: 12.9994
>>
>> Note that the time is slowly "walking". It seems that the PPS and 10MHz
>> (driving the clock ticking) aren't synced. Any suggestions?
>>
>> BTW, I verified that the sensor "gps_locked" was true before running this
>> code. I included the source code below for this functionality.
>>
>> stop_signal_called = false;
>> std::vector<double> dbl_vec(usrp->get_num_mboards());
>> std::cout << "Press Ctrl + C to stop looping..." << std::endl;
>> while (not stop_signal_called) {
>> for (size_t iboard = 0; iboard < usrp->get_num_mboards();
>> iboard++) {
>> std::cout << boost::format("Mboard %d last PPS time:
>> %g") % iboard % usrp->get_time_last_pps(iboard).get_real_secs() <<
>> std::endl;
>> dbl_vec[iboard] = usrp->get_time_last_pps(
>> iboard).get_real_secs();
>> }
>> while (not stop_signal_called and
>> usrp->get_time_last_pps(0).get_real_secs() == dbl_vec[0])
>> boost::this_thread::sleep(boost::posix_time::
>> milliseconds(1));
>> }
>>
>>
> _______________________________________________
> USRP-users mailing list
> [email protected]
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>
>
--
Daniel Jepson
Digital Hardware Engineer
National Instruments
O: +1.512.683.6163
[email protected]
_______________________________________________
USRP-users mailing list
[email protected]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com