[LinuxPPS] gpio-pps synchronisation -> discarded by intersection algorithm

Thomas Smits ts.smits at gmail.com
Mon Jan 9 18:52:07 CET 2012


Hi,

I tried to get our omap eval-board synchronised via pps signal from a
single GPS receiver.
I'm using NMEA and PPS-atom driver (PPS output from GPS receiver
connected to GPIO via level shifter).

NTP starts selecting GPS NMEA driver and PPS for synchronisation, but
I get "discarded by intersection algorithm" quite soon.
Then both sources are discarded.

     remote       refid       st t when poll reach   delay   offset  jitter
==============================================================================
xGPS_NMEA(0)     .GPS.         0 l   16   16  377    0.000   7.888  5.425
xPPS(0)          .PPS.         0 l   15   16  377    0.000   347.025  1.741

I tried out adding some offset values to the config for time1 at the
PPS source but didn't succeed really.
Is there a description on how to best compensate the offsets?

What triggered me is the high jitter reported for the PPS source. I
checked with the scope, HW-PPS jitter is less than 1 us.
For the capture of the signal a jitter of about 30us is reported
(dmesg and ppstest) which is in the range I expected
- I didn't fine-tune IRQ priority (yet), but that doesn't explain
jitter in the order of several ms.

Any hints?

(Some more details below)

Thanks,
Thomas

config:
>>>>>>>>>>>>>>
server 127.127.20.0 mode 17 minpoll 4 maxpoll 4 prefer
server 127.127.22.0 mode 1 minpoll 4 prefer
fudge 127.127.22.0 flag3 1 flag2 0 refid NMEA

tos minsane 0
<<<<<<<<<<<<<<


* target: omap3530 evalboard
* kernel: v2.6.32_OMAPPSP_03.00.01.06 (+ patches (including hardpps
and gpio client driver)
* PPS connected to gpio
* GPIO/IRQ registered at board file
* GPS receiver fastraxx IT520 (configured to RMC only, rate 1Hz, 9600
baud, PPS active )

I can see the PPS pulses being captured:

./ppstest /dev/pps0 trying PPS source "/dev/pps0"

found PPS source "/dev/pps0"
ok, found 1 source(s), now start fetching data...
source 0 - assert 1325872032.655478909, sequence: 14120 - clear
0.000000000, sequence: 0
source 0 - assert 1325872033.655435615, sequence: 14121 - clear
0.000000000, sequence: 0
source 0 - assert 1325872034.655422838, sequence: 14122 - clear
0.000000000, sequence: 0
source 0 - assert 1325872035.655410053, sequence: 14123 - clear
0.000000000, sequence: 0
source 0 - assert 1325872036.655366749, sequence: 14124 - clear
0.000000000, sequence: 0
source 0 - assert 1325872037.655353957, sequence: 14125 - clear
0.000000000, sequence: 0
source 0 - assert 1325872038.655310645, sequence: 14126 - clear
0.000000000, sequence: 0
source 0 - assert 1325872039.655297845, sequence: 14127 - clear
0.000000000, sequence: 0
source 0 - assert 1325872040.655285044, sequence: 14128 - clear
0.000000000, sequence: 0


/usr/sbin/ntpdc -c sysinfo
2012-01-06 17:55:34

system peer:          0.0.0.0
system peer mode:     unspec
leap indicator:       00
stratum:              1
precision:            -15
root distance:        0.00000 s
root dispersion:      0.02640 s
reference ID:         [GPS]
reference time:       d2b1b0fe.9497611e  Fri, Jan  6 2012 17:42:22.580
system flags:         auth monitor ntp kernel stats pps
jitter:               0.009781 s
stability:            0.000 ppm
broadcastdelay:       0.000000 s
authdelay:            0.000000 s



More information about the LinuxPPS mailing list