[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [gpsd-users] PPS problem with u-blox 8
From: |
Christian Rossi |
Subject: |
Re: [gpsd-users] PPS problem with u-blox 8 |
Date: |
Thu, 23 Nov 2017 12:46:52 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 |
Hello
> I use a Navilock NL-8005P MD6 (u-blox 8) with a SparkFun MAX3232 to
> convert the PPS data from a TTL level to an RS232 level.
Christian - if you're using the Ubuntu 14 package (from apt-get install
gpsd), you should instead download the gpsd source and build from that.
I try with the gps source but it's was not the solution.
Do you have PPS on DSR? It should be on CD, RI or CTS.
I have to connect the PPS signal on the CD pin to get the assert and
clear data on /dev/pps0.
With the DSR pin, ppscheck see the signal but there is nothing with ppstest.
Now with the PPS on the CD pin there are SHM(0) and SHM(1):
% ntpq -p
remote refid st t when poll reach delay offset
jitter
==============================================================================
+ntp-sop .GPS. 1 u 5 64 377 9.455 -1.090 0.110
+ntp-p1 .MRS. 1 u 8 64 377 9.209 0.016 0.126
SHM(0) .GPS. 0 l 1 8 377 0.000 7.109 6.854
*SHM(1) .PPS. 0 l 40 64 377 0.000 0.004 0.004
Thanks.
Some information with the problems :
I use a cable from Navilock with a D-SUB 9 jack with the PPS signal
connected to the DSR pin:
http://www.navilock.de/produkte/512_Connecting-cable/62621/merkmale.html
I thought that it would be enough to connect this cable to the computer.
But not:
- The PPS signal is not a TTL signal but a 0 - 0,7v. So I have to use a
pull up 10kOhm resistor to get the TTL level 0 - 5v:
http://www.navilock.de/service/fragen/gruppe_56_News/beitrag/107_Receivers-with-PPS-require-PULL-UP--Pull-Hi--10K.html#show
- The TTL is not compatible with the RS232 level so I add a SparkFun
MAX3232 to convert the PPS data from a TTL level to an RS232 level:
https://www.sparkfun.com/products/11189
- According to the documentation the converter create a propagation
delay of 0.15µs:
http://cdn.sparkfun.com/datasheets/Components/General%20IC/SP3232EBCA-L.pdf
- The DSR pin is not used by the LinuxPPS so I have to change to the DCD
pin.
- When I install Gpsd with the source I found a new version of ppscheck.
And I realise that with the RS232 converter a TTL 0v become an RS232 12v
and a 5v become a -12v signal. So the PPS signal was reversed:
% ppscheck /dev/ttyS1
1510050650 99182899 TIOCM_DSR
1510050650 999177604
- So I use the u-center software from U-blox to inverse the signal form
the receiver (Timepulse Settings: UBX-CFG-TP5) from rising to falling :
https://www.u-blox.com/en/product/u-center-windows
and now there is a 100ms rising signal:
% ppscheck /dev/ttyS1
# Seconds nanoSecs Signals
1511435590 000028403 TIOCM_CD
1511435590 100056073
- I also try the kernel module pps-ktimer.ko that generate a software
PPS signal. It's was ok so the problem was not the LinuxPPS.
https://github.com/atomic-penguin/linux/blob/master/drivers/pps/clients/pps-ktimer.c
It was complicated but thanks again for the solution.
--
Christian Rossi