[ntp:questions] xGPS/oPPS

alex n alexvm22 at gmail.com
Sun Mar 11 18:16:58 UTC 2012


2012/3/11 unruh <unruh at invalid.ca>

> On 2012-03-10, alex n <alexvm22 at gmail.com> wrote:
> > 2012/3/11 unruh <unruh at invalid.ca>
> >
> >> On 2012-03-10, alex n <alexvm22 at gmail.com> wrote:
> >> >>
> >> >> >> Are both drivers using the same PPS signal?
> >> >> >
> >> >> >
> >> >> > Yes, it is so.
> >> >> >
> >> >> >
> >> >> >> If so, what do you hope to gain?
> >> >> >
> >> >> >
> >> >> > Why the same source (PPS)  may not be shared?
> >> >>
> >> >> You show it does. But why? It is the same source.
> >> >> Note that if this is not the same source-- ie is attached to
>  different
> >> >> interrupts ( parallel and serial ports for example) you will have
> >> >> interrupt contention. One of the interrupts will be seen by the
> computer
> >> >> as occuring first, and will be serviced first. Interrupts are turned
> off
> >> >> while the interrupt is serviced. Thus there is a 10-20us delay before
> >> >> the other interrupt is serviced. Ie, the two interrupts will not be
> >> timed
> >> >>  to  occur at
> >> >> the same time. They will have timestamps that differ by 10s of us.
> >> >> Now if it is the same interrupt that you are sending to two separate
> >> >> handlers, the question really is "why". There is no extra information
> >> >> that the two can give you.
> >> >>
> >> >>
> >> > As I understand ntp uses /dev/gpspps0 as pps source so all interrupts
> >> > things are placed into lower levels. For example I can run ppstest
> >> > /dev/pps0 at the same time with ntp and it works fine.
> >>
> >> If you are using /dev/pps0 for both sources, then as stated this is
> >> pretty pointless. It is the same source. It cannot give different
> >> answers.
> >>
> > You get no more information by reading it twice than by reading
> >> it once.
> >>
> >
> > But why we need different answers? nmea+pps (127.127.20.0 flag1 1 flag3
> 1)
> > and pps (127.127.22.0 flag3 1) drivers receive the same timestamp. ok.
> why
> > it is wrong?
>
> The two drivers appear to behave differently. The atom driver uses
> /dev/pps0 while the nmea driver it appears does not-- not sure what it
> does do to read the pps signal.
>

refclock_nmea driver call nmea_timer() function which uses refclock_pps()
for get "the PPS timestamp from the kernel..."
refclock_atom call refclock_pps() inside atom_timer() function... So both
drivers use the same function for getting pps timestamp.

Thanks,
Alex.


More information about the questions mailing list