LPRO−101 ルビジウム発振器モニター&周波数カウンター

おじさん工房 TOP へ     サポート掲示板へ

■ページ履歴

2011/02/13 LPRO−101 プロジェクト開始


2011/02/13

ルビジウム発振器(LPRO-101)のモニターを作りました。
また、どうせマイコンや表示器をつけるのにモニターだけではもったいないと思い周波数カウンターを追加しました。

モニターは LPRO-101 のロック状態(BITE電圧)、電源 ON してからの経過時間、XTAL VOLT、LAMP VOLT、ベース温度、を表示します。

周波数カウンターはレシプロカル方式です。
前に作ったレシプロカル方式の周波数カウンターとは異なり timer1 のキャプチャ機能を使いました。 この方法だと連続測定ができますので周波数データをあとからエクセルなどで計算しなおすことでゲート時間を変更(すなわち周波数分解能を変更)できます。 前から気になっていた GPS の 1pps の誤差もこれで測定することができます。

周波数カウンターで GPS 1pps やいろいろな発振器の時間変動を測定してみました。



■試作した基板

試作した基板

マイコンは ATMEGA168(右下の DIP28) を使いました。 レシプロカル方式では基準クロック周波数が高いほど分解能が高くなるのでマイコンのクロックは LPRO-101 の 10MHz を PLL(PI6C4512 ATMEGA168のすぐ左側にある SOIC8 の IC) で 2 逓倍した 20MHz としました。 GPS の 1pps の公称誤差 1us に疑問をもち、その検証のためなるべく分解能を高くしたかったためです。 残念ながら 20MHz(50ns) の分解能ではまだ不足でした。

右上のモジュールは携帯電話接続ケーブルから取り出した USB-シリアル変換です。 PL2303 が載っています。

真ん中辺りにある SOIC8 の IC 2個は TC7WU04 です。 1個は周波数カウンターの入力アンプとして、もう1個は 10MHz のバッファとして使っています。

左側は電源です。 AC アダプターからの 20V を 7805 で 5V にしています。 5V の消費電流は 60mA ぐらいと小さいのですがドロップが 15V あるので 7805 での消費電力は約 1W と意外に大きいため簡単な放熱器をつけてあります。


アンロック表示

LPRO-101 のモニター画面です。 電源 ON 直後のアンロック状態を示しています。 右側は経過時間です。
下の行は左から、XTAL VOLT、LAMP VOLT、ベース温度、です。 アンロック状態では XTAL VOLT が 0V 〜 14V ぐらいまでスイープしています。 このとき周波数は±数 10Hz 変動します。


ロック表示

5分ぐらいすると LOCK になります。 ロック状態では経過時間表示に時間( 0000h )がつきます。


周波数表示

周波数測定モードでの表示です。
左上の黒丸は測定結果がアップデートされると点滅します。 左下の X1 はプリスケーラーをつないだときに x n倍表示にするものです。
測定結果(内部カウント値と周波数)を常に USB を通して出力していますので適当な通信ソフトでログをとりエクセルでグラフを描けます(以下の測定でのグラフはこうしてつくったものです)。



設計データ





■GPSの1pps 特性測定

Aitendo で購入した GPS モジュール GPS9543 の 1PPS の誤差は UTC に対して ±1us となっています。 他の GPS モジュールでも誤差は ±1us となっているようです。

それで、以前からこの誤差 ±1us というのはどういうことなのか疑問に思っていました。

というのは GPS 衛星から送られてくる C/A コードのチップ周波数は 1.023MHz ですが、GPS モジュールではこの 1us ごとに位相が変化している C/A コードの位相変化点を正確に測ることで衛星からの距離を測りますので 1us をさらに何等分かして相関を計算する必要があります。 GPS の測地精度を 30m とすると 0.1us 以下の誤差である必要があるので少なくとも内部的には ±0.1us 以下の誤差で UTC に同期しているはずです。

そこで考えられるのは 1pps 出力するところで 1MHz のクロックで再同期化しているのではないかということです。 それで 1pps の周期変化、周波数変化を測って実際はどうなのかを見てみたいと思っていました。

GPSカウント

1pps の周期測定カウント誤差です。
もし 1MHz で再同期化していれば ±20 カウントの誤差が観測されるはずですが実際は定常状態では ±1 カウントの誤差しかでませんでした。 つまり 1pps は周期 50ns 以下(周波数 20MHz 以上)のクロックに同期しているといえそうです。


GPS誤差

青い線が 100 秒ゲートでの周波数誤差、緑の線が測定開始からの累積周波数誤差、赤が累積カウント誤差(右軸、x50ns すると累積時間誤差)です。
周波数カウンターのクロックは 20MHz なので、1秒ゲートで 50ppb(50e-9) 分解能、100秒ゲートでは 0.5ppb 分解能の測定になります。 1ppb は 10MHz に換算すると 0.01Hz(10mHz) になります。

3000秒から3200秒の誤差が大きくなっているところは GPS が衛星を補足しなかったためです。 そこを除けば、だいたい平均で -1.5ppb 程度になります。 これは使用しているルビジウム発振器 LPRO-101 の誤差と思われます。

GPS の周波数誤差は 100 秒ゲートだと ±1〜3 ppb ぐらいでうねっているようです。 誤差の変動が大きかったり小さかったりするのは衛星の補足状況によるのでしょうか。 累積周波数(緑色の線)をみると 1000秒ぐらい積分すれば 0.1ppb ぐらいの精度が得られそうです。

ただし、グラフの 260秒ぐらいのところと 2400秒ぐらいのところでカウント誤差(赤い線)に乱れがありますがこれは 1pps の立ち上がりが 0.1秒ずれて出力され、その後元に戻ったためです。 これは使った GPS モジュール特有の問題と思われますが、GPS を使った基準周波数源を作るときには考慮すべき点です。 また、他のモジュールではまた違った誤差があるのかもしれません。



■いろいろな発振器の特性測定

手持ちのいろいろな発振器の周波数安定度を測定してみました。

いろいろ発振器

左は TOYOCOM の OCXO、TCO-627B 10MHzです。 1994 年 12 月製造のようです。
右上は TOYOCOM の TCXO 12.8MHz です。
右下は普通の水晶(メーカー不明)10MHz です。

AVR マイコンで GPS と同じ 1pps(0.1秒H、0.9秒L)を発生させて測定しました。


いろいろ発振器周波数誤差

周波数のふらつきを見るため 3600 秒経過時の周波数誤差をゼロに補正しています。

ppb 単位(1ppb=0.01Hz@10MHz)でみると水晶も TCXO もふらふら変動しているのがわかります。 さすがに OCXO は安定で、100秒ゲートの GPS よりふらつきは少ないです。 GPS を基準とした信号発生器をつくるのなら 1000 秒オーダーで安定している必要があるので最低でも OCXO ですね。



■閑話休題





inserted by FC2 system