無線ブログ集
メイン | 簡易ヘッドライン |
GPS による基準周波数(時間)発生器をつくってみた (2022/9/18 20:53:00)
動機
とある理由で、正確な周波数を発生させたくなった。
アナログTV時代には、放送局が厳密に管理している数10ppt精度のカラーバースト信号 3.579545 MHz
を利用した秋月電子の10 MHz発生器キットもあったようだが、地上デジタルTVに移行してしまって使えない。
また大昔は、5/8/10MHzで短波の JJY
というのが有り正確な周波数基準として利用できたのだが、すでに2001年に停波してしまっている。
代わりに、電波時計にも利用されている40kHz/60kHzの 長波 JJY
が運用されています。
「24時間の周波数比較平均で10ppt = 0.00001ppm の精度」は魅力的ですが、
長波を受信できるバーアンテナ部品は結構いいお値段がするし、使いたい数 MHz
の周波数に大きく逓倍するのも面倒そうなのでパス。
いろいろWeb を検索してみると 、GPS
受信モジュールの秒パルス機能を利用する方法が最近の流行のようだ。
実験
電子部品通販サイトを漁ったところ aitendo で、
秒パルス 1PPSの出力端子
が出ている アンテナ付き u-blox NEO-6M GPS モジュール
が、千円位で売っている。
NEO-6M のデータシートによると 1PPS の精度は RMS で 30nsということなので1.0/30e-9 =
0.33ppm 位の精度は出そう。
いろんなWebの情報によると、NEO-6M
は設定アプリでデータシートに記載の「0.25 Hz to 1k Hz 」を超えた ”10 MHz” まで 1PPS
端子に出力する事もできるらしい。
ということで買ってきて、
ブレッドボードに仮組していろいろ触ってみる。
端子としては
- VCC : 電源 2.7V - 3.6V
- GND : グランド
- TXD : シリアル送信(最大電圧 3.6V)
- RXD : シリアル受信(最大電圧 3.6V)
- PPS : 秒パルス出力(LED カソードとも接続されている)
が出ている。
PC
と接続する為にUSB-シリアル通信変換モジュールも必要。
こちらは手持ちに有った、秋月電子の 超小型シリアル変換モジュール AE-FX234X を使用。
屋内の窓際に持っていって USB ケーブルを挿すとGPSモジュールのLEDが点灯。
最初は Cold Start
なので衛星を探しているが、数分でLEDが1秒に一回瞬滅するので測位完了が分かる。
u-blox
謹製の u-center という Win アプリを使うと衛星受信状態や緯度/経度/高度/速度がリアルタイムで分かります。
この u-center のメニューから、View -> Configuration View を開き。
"TP (Time Pulse)" ではなく "TP5 (Time Pulse 5)" の項目に、
GPS
にロックした時のパルス出力設定があったので、色々と設定したみたところ。
10 MHz 超までの GPS
同期パルスが出せた。
上部の設定は GPS で位置/時間情報が取得出来ないときの Time Pulse 設定で、
下に GPS Lock
時の同期パルスを出す設定がある。
PPS Time Pulse 出力周波数
GPS 同期時の PPS Time Pulse
端子の周波数設定
TP5 (Timepulse 5) の Frequency Locked をいろいろ変えて観察してみると。
u-blox の Application Note "
GPS-based Timing Considerations with u-blox 6 GPS receivers "
に説明されている通り、 48 MHz
を整数で割り切れない周波数ではジッタが発生する。
- 割り切れない周波数を設定すると、長区間の平均周波数は正確であってもジッタが発生する。
5
MHz
7 MHz
10 MHz
製作
回路
ブレッドボードで動作の確認ができたので回路図を作成。
- GPS の電源は USB からの VBUS 5 V をシリーズレギュレータで 3.3 V にして使用。
- GPS で 50 Ohm 負荷を直接駆動するのは厳しいので。インバータ 74HC04 でバッファ。
- 74HC04 の一個当たりの出力電流は 3.3V 電源では +- 3 mA 程度なので、2個パラ出力にすると共にアッテネータで負荷を軽くしてやる。
- アッテネータで電圧が小さくなるので、バルストランスを使用したBTL駆動にして電圧をかせぐと共に GND に流れ込む電流(ノイズ)を減らす。
- BNC出力に 50 Ohm 負荷ではなく高インピーダンス負荷を同軸ケーブルで接続した時も、50 Ohm 付近の負荷インピーダンスにする為に、50 Ohm Load ON/OFF スイッチを追加。
- パルストランスを使用した BNC 出力では、出力周波数が低くなるとインダクタンスが不足して矩形波が大きくサグるので。シングルエンド出力でバラ線を簡単に接続するため 2P のターミナルブロックも用意。
- (クリックで拡大)
部品その他
- パルストランス
秋月電子で売っていた デジタルオーディオ伝送用パルストランス PE-65612NL[PE-65612NL]
インダクタンス 2.5 mH なので、50 Ohm ラインでは 20 kHz 以上で使えそう。
- BNCジャックと2Pターミナルブロック
実装・組立
万能基板に組み上げて、USBを接続し動作確認。
を初めて使ってみる。
GPS ユニットと USB
シリアルコンバーターの LED が確認できるうえに。
普通のケースでは Micro USB
端子の穴をあけて固定するのが面倒なのだが。
この基板の上下だけをアクリル板で保護方式なら、うまくまとまる。
使用法
USBシリアルモジュールの Micro USB 端子に USB ケーブルを差すと電源が入り。
USBシリアルモジュールの青色 LED と、GPS モジュールの赤色 LED が点灯。
GPS
が位置情報を取得してロックすると、BNC ジャックと 2P ターミナルブロックに矩形波が出力される。
出力周波数およそ 100 kHz 以下では、パルストランスを使用した BNC 出力端子の信号ではサグが大きくなるので、2P
ターミナルブロックを使用するのが良いでしょう。
下の写真では、基板上の GPS
アンテナではなく外部GPSアンテナをケーブルで接続しています。
周波数設定について
GPS が位置(時間)情報にロックしている時の、PPS出力の設定は。
u-center のメニュー File > View >
Configuration View を開いて、
TP5(Timepulse 5) の
- Frequency Locked [Hz]
- Duty Locked [%]
で好きに設定できる。
色々周波数を変えて観測してみると、1 Hz から 20 MHz程度まで出力できる。
ただし、設定値により出力矩形波の状態が影響を受けるので、
用途に応じた適切な設定が必要です。
基本周波数近傍スペクトル
Spectrum Analyzer Settings
- Vertical 10 dB/Div. Max. 130 dB
- Horizontal 0.5 MHz/Div.
にして周波数設定による差を比較。
TP5(Timepulse 5) Settings
- Frequency Locked: 4,000,000 Hz
- Duty Locked: 50%
の時の 4 MHz 近傍スペクトル。
48 MHz /4 MHz は整数で割り切れるので綺麗な線スペクトルになっている。
TP5(Timepulse 5)
Settings
- Frequency Locked: 4,040,000 Hz
- Duty Locked: 50%
にすると、48 MHz を整数で割り切れないので出力波形にジッタが発生するため、スプリアスが盛大に発生。
波形としてはジッタが発生するが、長区間のカウント値は正確なのでカウンタの校正などの用途には使えるかも。
高調波スペクトル
出力波形は矩形波なので基本周波数だけではなく、その高調波も現れる。
Spectrum Analyzer Settings
- Vertical 10 dB/Div. Max. 130 dB
- Horizontal 10 MHz/Div.
にして出力 Duty による違いを観測。
TP5(Timepulse 5) Settings
- Frequency Locked: 8,000,000 Hz
- Duty Locked: 50 %
基本波 8 MHz と、3, 5, 7, 9, 11, ... 倍の 奇数次
だけの高調波が含まれる。
TP5(Timepulse 5) Settings
- Frequency Locked: 8,000,000 Hz
- Duty Locked: 20 %
と Duty を 50 %
ではない、正負非対称の設定にすると。
基本波 8 MHz と、2, 4, 6, 8, ... の 偶数次
の高調波も含まれるようになり整数次高調波が得られる。
受信周波数マーカーなどの用途にはこちらの方が便利。
出力周波数設定を記憶
GPS
モジュールに u-center で設定した値を記憶させる事もできます。
Configuration View の CFG(Configuration)
で、記憶させたい設定を選択し。
"Send" ボタンをクリックすると書き込んでくれます。
一度記憶させておけば記憶された設定値で起動されるので、
USB AC Adaptor やモバイルバッテリーで Micro USB
端子に電源供給さえすれば、
PC 不要のスタンドアローンで使えます。
GPS 非ロックの LED 表示
GPS モジュールの赤色 LED のカソードがモジュールの PPS 端子に接続されているので、
PPS 端子が Low
の時に光ります。
私の場合、 TP5 (Timepulse) 設定のロック時の周波数設定の上にある設定を
として、GPS が非ロック時に LED
がチカチカ点滅して分かるようにして使用しています。
PPS端子が Low で点灯なので、
- LED の点灯 Duty = 100% - Duty Cycle 設定
となります。
IC-705 の受信周波数精度を確認してみる
実運用上で IC-705
の受信周波数ズレを実感している訳ではないが、試しに受信周波数精度を確認してみる。
8 MHz
の出力周波数設定にして、その漏れを通電して暖めておいた IC-705 で受信してみる。
CW
モードでサイドトーン設定と同じ音程になるように受信周波数を調整してみると。
私の個体では 8,000.03 kHz
となりました。
次に IC-705
の受信周波数を 8,000 kHz に固定したまま、基準周波数調整の値を変えて合わせると
基準周波数調整の値は、 80 % がビッタリになりました。
ズレていたとはいえ 3.75 ppm = 30 Hz/8 MHz
程度ですから、アマチュア無線機なら出荷調整基準内で基準周波数発振器の初期変動を考慮しても許容範囲内で良品なんでしょうね。
おわりに
単にモジュールを組み合わせただけですが、校正要らずというか米国が常時校正してくれている GPS
信号を利用して、家の中で一番正確な周波数基準を獲得できました。
それも格安で出来て大満足。
execution time : 0.024 sec