[LinuxPPS] still the strangeness

Udo van den Heuvel udovdh at xs4all.nl
Wed Dec 20 11:46:26 CET 2006


Bernhard Schiffner wrote:
> Am Dienstag, 19. Dezember 2006 19:30 schrieb Udo van den Heuvel:
>
> Can you forward this mail to the ml please? (I'll forward this too.)

I did CC you; it was sent to the list. Just as this one.

[...]
> Here we are: 1,2 ms in ntpd operation is also good shape. (2.6.19!)
> With this value you confirmed, that ntp.xs4all.nl does something reliable.

:-)
Sure, but the GPS is way off.

> Your NMEA receiver needs fudge offset 172.000 until it fits to the others. 
> This is ok for pure NMEA-messages.

I use a Garmin GPS-18 LVC. It has PPS and also sends the NMEA messages.
Manual for the GPS-18 says in 4.4.1:
The rising edge of the signal is aligned to the start of each GPS second
within 1 us for all conditions in which the receiver has reported a
valid and accurate position for at least the previous 4 seconds.
The NMEA 0183 sentences that follow each rising edge of the PPS signal
tell when you were and where you were at that previous rising edge of
the PPS signal, beginning with the GPRMC sentence as the lead sentence
in any particular NMEA 0183 record.
Regardless of selected baud rate, the information transmitted by the GPS
18 series products is referenced to teh pulse immediately preceding the
NMEA 0183 RMC sentence.

The ntpd NMEA driver uses PPS pulses.

Now it depends of your 8250-setting when interrupt occurs.

I have:
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4, Flags: low_latency

Stuff worked OK.


>>> 8.) cat /proc/pps/0*/* to see the timing of assert and clear events
>> [root at epia etc]# cat /proc/pps/0*/*
>> 0.000000000 #0
>> 0.000000000 #0
>> 0.000000000 #0
>> 0.000000000 #0
>> 0.000000000 #0
>> 0.000000000 #0
>> 0.000000000 #0
>> 0.000000000 #0
>>
>> No changes there. No output.
> 
> Very bad. Seems something in Hardware.
> First (not meaningfull):
> Do you really have 8 serial devices? (konfig-option kernel)

4. assert and clear files for each port:

[root at epia redhat]# find /proc/pps
/proc/pps
/proc/pps/03
/proc/pps/03/clear
/proc/pps/03/assert
/proc/pps/02
/proc/pps/02/clear
/proc/pps/02/assert
/proc/pps/01
/proc/pps/01/clear
/proc/pps/01/assert
/proc/pps/00
/proc/pps/00/clear
/proc/pps/00/assert
/proc/pps/sources
[root at epia redhat]# cat /proc/pps/sources
id      mode    echo    name                    path
----    ------  ----    ----------------        ----------------
00      1133    no      pps_8250_0              /dev/ttyS0
01      1133    no      pps_8250_1              /dev/ttyS1
02      1133    no      pps_8250_2              /dev/ttyS2
03      1133    no      pps_8250_3              /dev/ttyS3


> Second:
> You must ensure, that the DCD-pin is working and read out by pps-software.
> This becomes hardware resarch:
> 
> With a meter: 
> measure on the receivers side of the cable between pin 5 (ground) and pin 1 
> (DCD), while the receiver is running. If everything works you must notice 
> a "flicker" every second.

With the digital multimeter I have it is hard to see. AC volts gives a
solid 2.4something and DC volts gives a fluctuating 0.0something.

> Check: pin 5-2 (Received Data): more flicker, if your receiver sends datagrams
> This confirms that your receiver sends a pps-signal.

I can also see the data in SNSRCFG (on the windoze PC) or using minicom,
hyperterminal etc.

> With a female SUB-D:
> connect
> 3+1 (TxD DCD)
> 7+8 (RTS CTS)
> 4+6 (DTR DSR)
> put this into your computer.
> Start minicom, type in some charakter. If you cat /proc/pps/0*/* you should 
> see "crazy" values, because every slope of every bit of every charakter you 
> send should be recorded there.
> With this you see that DCD is workable. May be on EPIA boards there is no DCD 
> connected internal.

Why does the ntpd reach status become 377 then?
Does the NMEA driver this on NMEA data only?

Kind regards,
Udo



PS: progress...

I did fiddle with everything. Upgraded firmware of the GPS18, checked
cabling, rebooted stuff, etc.
Now I see:

[root at epia redhat]# ntpq -pn
     remote           refid      st t when poll reach   delay   offset
jitter
==============================================================================
 127.127.1.0     .LOCL.          10 l   40   64  377    0.000    0.000
 0.001
*127.127.20.0    .GPS.            0 l   12   16  377    0.000    4.886
 0.670
-194.109.22.18   131.188.3.220    2 u  101  512   77    7.606  221.820
 1.413
-213.84.46.114   130.149.17.8     2 u  106  512   77   14.926  220.697
 0.536
-83.161.0.118    193.79.237.14    2 u  100  512   77   28.450  221.123
 0.590
+80.163.145.206  192.38.7.240     2 u   97  512   77   34.037  220.274
 0.940
-82.165.43.21    130.149.17.21    2 u   97  512   77   31.298  222.505
 0.865
+82.96.64.2      .DCFa.           1 u   99  512   77   15.178  241.844
 0.493


So this is a more clear 200 ms offset.
Changing flag2 does not really help.
Next step?



More information about the LinuxPPS mailing list