I am not specifying MCR so it should be 125e6, I believe.

On Tue, Aug 7, 2018 at 10:29 AM Daniel Jepson <[email protected]>
wrote:

> Rob,
>
> That is indeed strange behavior. The GPSDO for the N310 has changed from
> previous products to produce a 20MHz reference instead of 10MHz. Either
> way, the PPS should arrive every 20e6 ticks of the reference clock from the
> GPSDO, whether it is locked or not. It appears that the PPS is around 8us
> (160 ticks at 20MHz and 1000 at 125MHz) short of a full second, if I'm
> deducing things correctly from your data.
>
> What master clock rate are you specifying?
>
> -Daniel
>
> On Thu, Aug 2, 2018 at 9:48 PM, Rob Kossler via USRP-users <
> [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

Reply via email to