Hello,
I
have a Garmin 18x LVC GPS receiver, which is connected to a serial
RS232 port using a DB9 connector. This receiver outputs 1PPS signal on
pin # 1 (DCD), in addition to the usual NMEA sentences on the
transmit/receive pin. The computer is running linux mint debian edition
(LMDE).
According to the setup instructions found here:
https://www.rjsystems.nl/en/2100-ntpd-garmin-gps-18-lvc-gpsd.php,
in step # 2 the author instructs to edit the setserial configuration
file in order to configure the serial port for "low_latency", explaining
that modern UARTs have internal buffers, which slow down the serial
port traffic by 5-10 ms. I question whether that really is necessary.
I
am not very familiar with the serial hardware design, but my
understanding is that the buffer is used for receiving and transmitting
data, and under certain conditions such as when the buffers become
nearly full, or when there is an error, or when there has been no data
sent/received for some time and it times out, the hardware asserts an
interrupt, which causes the CPU to retrieve and process the buffered
data. This is all in reference to the data, which is NMEA sentences in
my case. Is the 1PPS signal on DCD pin buffered as well? To me it makes
any sense to store the 1PPS signal in the buffer... but I am no expert
in this field, so not sure, and this brings me to my questions:
- Is the 1PPS signal buffered if "low_latency" is NOT set?
- Is it necessary to configure the serial port for "low_latency" if 1PPS signal is available on the DCD pin, when the goal is to maximize the accuracy of the 1PPS signal?
I value your expert opinions, thank you in advance!
Sviatoslav