文書一覧に戻る | TS-GPS01 | AE-GYSFDMAXB


ntpd で、トライステートの TS-GPS01 の1秒パルス信号 ( PPS ) を参照する

  1. ハードウェアと結線
  2. ntpd の設定
  3. デバイスの準備
  4. その他

1. ハードウェアと結線

TS-GPS01 の CN11 の PPS 信号をレベル変換して RS-232C の DCD に出力させます。
下記の図の D-Sub9 のコネクターと、サーバーのシリアル・ポート D-Sub9 は、ストレート・ケーブルで接続します。

Circuit diagram

TS-GPS01 のオープン・コレクタ出力は、次の部品で、RS-232Cレベルに変換します。
秋月電子通商 3V・3.3V・5V系 - RS232Cレベル変換基板 [AE-ADM3202] 通販コード K-06464
価格は、2015年5月時点で500円(税込み)です。価格改定されるかもしれませんので、ご自身でお調べ下さい。
TS-GPS01 の CN11 ピン4 は、オープン・コレクタ出力ですので、プルアップ抵抗を Vcc 間と接続します。


2. ntpd の設定

ntp.conf は、以下のように設定します。
GPS NMEA ドライバー ( Type 20 ) も、PPS 信号を参照することができますが、
ここでは、PPS ドライバー ( Type 22 ) を併用しています。

# GPS NMEA ( Tristate Ltd. TS-GPS01 )
server 127.127.20.0 mode 48 prefer
fudge  127.127.20.0 time2 -0.400

# PPS
server 127.127.22.0 minpoll 4 maxpoll 4
fudge  127.127.22.0 time1 -0.010 flag2 1

fudge の time2 と time1 は、正しいと想定される時刻ソースと比較しながら適宜調整します。


3. デバイスの準備

ntpd を起動する前に、デバイスを準備します。
デバイスの番号(下記の ttyACM0 や ttyS0 のゼロの部分)は、利用する環境に合わせます。

# GPS NMEA ( Tristate Ltd. TS-GPS01 )
ln -s /dev/ttyACM0 /dev/gps0

# PPS
/sbin/modprobe 8250
/sbin/setserial /dev/ttyS0 low_latency
/usr/sbin/ldattach PPS /dev/ttyS0

ldattach を実行すると、/dev/pps0 が生成されます。
ln -s /dev/ttyS0 /dev/pps0 を実行する必要はありません。
先に /dev/pps0 のシンボリック・リンクを作成すると、ldattach が /dev/pps0 を生成できないため動作しません。


A. その他

Linuxのディストリビューションによるかもしれませんが、Linuxのカーネルの再構築しなくても動作します。
上記のデバイスの準備の後、/sys/class/pps/pps0 が生成されていることで確認できます。
Linuxのカーネルの再構築なしに動作したLinuxのディストリビューションのレポートをemail宛てにお送りいただければ、ここで紹介/掲載します。


最終更新日:2015/05/05 Another HTML-lint W3C Validation LogCounter
Copyright(C) 2015, Takao Abe