• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

PC Engine APUx und NMEA GPS

hessijens

Well-Known Member
Themenstarter #1
Ich versuche meinen GPS Empfänger UART-GPS-NEO-6M unter Freebsd an der APU2 zum laufen zu bewegen. Ziel wäre damit eine Uhr für NTP bereitzustellen, was leider nicht funktioniert. Mit dem neuen BIOS habe ich den dritten und vierten Seriellen Port der APU2 aktiviert. Durch die Einträge in /boot/device.hints:
Code:
hint.uart.2.at="isa"
hint.uart.2.disabled="1"
hint.uart.2.port="0x3E8"
hint.uart.2.irq="4"
hint.uart.3.at="isa"
hint.uart.3.disabled="1"
hint.uart.3.port="0x2E8"
hint.uart.3.irq="3"
werden die Ports auch beim booten erkannt. Verbindet man den GPS Empfänger mit den (GPIO)Pins der J17 Header der APU
VCC->: 3.3V = Pin 2
GND: zur GROUND= Pin 1
TXD: zu RXD = Pin 7
RXD: zur TXD = Pin 8
PPS: zur DCD = Pin 9 (fraglich)
und aktiviert man in /etc/rc.conf den GPS Dämon mit:
Code:
gpsd_enable="YES"
gpsd_flags="-n"
gpsd_devices="/dev/cuau2"
Bekommt man auch Nachrichten mittels "gpsmon" vom GPS Empfänger. Der Empfänger sendet also Positionsdaten. Jedoch scheitere ich bei der Integration in den NTP Dämon. Ich bin mir hierbei nicht sicher wegen des PPS Pins. Der Manpage von uart zufolge wird der Puls am DCD ausgegeben, zumindest wenn sysctl dev.uart.2.pps_mode=2 ist, oder muss dieser auf 0x22 gesetzt werden?

Laut Internetberichte lauscht der NTPD an folgenden Clocks NMEA und PPS, was in der /etc/ntp.conf wie folgt umgesetzt ist:
Code:
# PPS
server 127.127.22.0dev.uart.2.pps_mode
#fudge 127.127.22.0 flag3 1

# NMEA
server 127.127.20.0 mode 17
#fudge 127.127.20.0 time2 +0.767
Die entsprechenden Symlink /dev/pps0 und /dev/gps0 sind in der /etc/devfs.conf gesetzt:
Code:
link   cuau2   gps0
link   cuau2   pps0
Beim Start des NTPD bekomme ich auch keinen Fehler, leider aber auch keine Zeit was mit "ntpq -p" überprüft werden kann, welche nur 0 zeigen. Mit den sysctl dev.uart.2.pps_mode und den fudge Optionen des ntp habe ich bereits gespielt, jedoch ohne Erfolg. Sehe ich den Wald vor lauter Bäumen nicht? Was habe ich übersehen? Geht das mit dem pps Signal überhaupt so? Müsste nicht wenigstens des NMEA Signal ankommen, auch wenn PPS nicht funktioniert? Sind die Reference Clock Driver im freebsd ntp überhaupt aktiv? Danke schon mal für Infos.

Ich habe auch schon den Versuch unternommen den GPS Empfänger an uart1 anzuschließen und das PPS über gpio wie bei den RPI Anleitungen zu beschaffen. Leider gibt der GPIO Bus unter freebsd-amd64 kein gpio-pps Kernel Module zur Auswahl. Es lässt sich zwar Kompilieren aber das Laden bricht mit Fehlermeldung ab. Ich vermute, dass owbus für amd64 bzw in Modul nctgpio nur teilweise implementiert ist und so die GPIO Module pps, gpioths, owtemp... wie für arm und mips unter amd64 unbrauchbar sind. Wobei ein DS1820Temperatur oder DCF11 Temperatur- und Feuchtigkeitsmesser an der APU auch recht hübsch wäre. Bisher gehen am nctgpio der APU lediglich die LED-Lichter an bzw. aus.