文書一覧に戻る | TS-GPS01 | AE-GYSFDMAXB
GPS受信キット AE-GYSFDMAXB の NMEA データと PPS 信号を、レベル変換して RS-232C の RXD と DCD に出力させます。
RS-232Cレベル変換基板 AE-ADM3202 の CN1 の5番へ5V定電圧を供給しますので、基盤上の JP1 は短絡します。
下記の図の D-Sub9 のコネクターと、サーバーのシリアル・ポート D-Sub9 は、ストレート・ケーブルで接続します。
主な部品は、秋月電子通商で販売している以下のものです。
価格は、2020年1月時点です。価格改定されるかもしれませんので、ご自身でお調べ下さい。
部品 | 通販コード | 単価 | 数量 | |
---|---|---|---|---|
AE-GYSFDMAXB | GPS受信機キット 1PPS出力付き | K-09991 | 2,100円 | 1 |
AE-ADM3202 | 3V・3.3V・5V系-RS232レベル変換基板 | K-06464 | 500円 | 2 |
ntp.conf は、以下のように設定します。
GPS NMEA ドライバー ( Type 20 ) も、PPS 信号を参照することができますが、
ここでは、PPS ドライバー ( Type 22 ) を併用しています。
# GPS NMEA ( AE-GYSFDMAXB ) server 127.127.20.0 mode 16 prefer fudge 127.127.20.0 time2 0.125 # PPS server 127.127.22.0 minpoll 4 maxpoll 4 fudge 127.127.22.0 time1 0.0 flag2 0
fudge の time2 と time1 は、正しいと想定される時刻ソースと比較しながら適宜調整します。
GPSモジュール AE-GYSFDMAXB は、デフォルトの設定で使用していますが、NMEAセンテンスの出力対象を $GPRMC または $GPZDA のいずれかだけに設定変更すれば、時刻取得時のゆらぎを小さくすることができます。
ntpd を起動する前に、デバイスを準備します。
デバイスの番号(下記の ttyS0 のゼロの部分)は、利用する環境に合わせます。
# GPS NMEA ( AE-GYSFDMAXB ) ln -s /dev/ttyS0 /dev/gps0 # PPS /sbin/modprobe 8250 /sbin/setserial /dev/ttyS0 low_latency /usr/sbin/ldattach PPS /dev/ttyS0
ldattach を実行すると、/dev/pps0 が生成されます。
先に /dev/pps0 のシンボリック・リンクを作成すると、ldattach が /dev/pps0 を生成できないため動作しません。
Linuxのディストリビューションによるかもしれませんが、Linuxのカーネルの再構築しなくても動作します。
上記のデバイスの準備の後、/sys/class/pps/pps0 が生成されていることで確認できます。
Linuxのカーネルの再構築なしに動作したLinuxのディストリビューションのレポートを または
宛てにお送りいただければ、ここで紹介/掲載します。
ntp.conf で 127.127.22.0 を指定しているにもかかわらず、ntpq -p で照会したときに PPS のリファレンス・クロックがないときは、ntpd で Type 22 のリファレンス・クロック・ドライバーが有効になっていない可能性があります。
ntpd をコンパイルし直す必要があります。その際、timepps.h がないと Type 22 のクロック・ドライバーは有効になりません。
find /usr/include -name timepps.h で、timepps.h が見つからないときは、github から入手できます。
最終更新日:2020/01/13 | ![]() |
![]() |
Copyright(C) 2020, Takao Abe |