2014年08月16日

GPSによる高精度簡単周波数カウンタ

DSC00614.jpg

DSC00707.jpg

TS-130のVFOをDDS化して本体に内蔵し、バンド毎にバンドエッジをマイコンに組み込んで快適にワッチをしながら、いざ本体の再調整をと始めたら、意外とちゃんと校正した周波数カウンタを持っていなくて(±50Hz程度?)、もう少し精度の高い周波数カウンタが欲しくなりました。
丁度その時に、いつもお世話になっているOMさんからGPSの1pps信号を1/10してそこそこの精度が取れるらしいとご助言いただきました。
だいぶ以前にRockwellのTU30-D140というGPSボードを分けていただいていたのを思い出し、引越しの荷物のどこにあるか大変でしたが見つけ出すことができました。
早速GPSの動作を確認し、232C接続でPCから衛星を捕捉している様子が確認できました。1pps信号も出ています。

DSC00677.jpg

早速、1pps信号を1/10してゲート回路を通してマイコンに取り込み周波数を表示する回路図を作成し、一気に基板も作ってみました。

DSC00660.jpg

基板パターンを作成しながら、このGPSボードからは10KHz信号も出ており、これを使った基準信号発生器(GPS-DO?)も作れるではないかと、あちこちのサイトで目にするG3RUH OMさんのPLL回路も一緒にパターンに組み込みました。
但し、高級なVTCXOを所有している筈もなく、最近、秋月で販売している12.8MHzのVCTXCOが使えないかとダメモトで入れ込みました。通常は、10MHzのVTCXOが使用されていますので、最初に1/10分周してそのあと1/128分周して10KHzを生成し、比較器に入力しました。
ちゃんとケース入れもし長く使えるように仕上げてみました。

DSC00666.jpg

DSC00689.jpg

それらしく動き始めたところで、はたして当初の目論見どおり精度良くカウントしているのか知りたくなりました。当然、基準となる信号源も持ち合わせている筈もありません。
これは、お世話になっているOMさんからRb-OSC(ルビジウム信号源)を貸し出していただけることになり、宅急便で送っていただきました。
このRb-OSCは発送前の確認で0.001ppmなら大丈夫そうだということでした。
周波数は10MHzですから、0.01Hz以上の精度があることになります。

DSC00711.jpg
お借りしたルビジウム信号源

早速この信号源の周波数を測ってみました。
どんぴしゃです!気持ちが良いほどきっちり10MHzをカウントしています。
プリスケール1/16、ゲートタイム10Sの仕様で作ったので最小桁は1.6Hz刻みとなります。

DSC00687.jpg

これでは、信号源の精度に遠く及ばず、一部改造してプリスケール1/4、ゲートタイム80Sにして測定してみました。最小桁は0.05Hzになります。80Sだとカウントに1分半ほどかかりますが、見事に10.00000000MHzの表示がでました。10回に一回くらい±0.05Hzの表示となりますがこれは量子化誤差とのことです。確かに、1/16でも、1/8でも最後の桁は時々±します。と、いうことは、もっと精度が取れているのではないかと期待してしまうのですが、残念ながらプログラムに使用している変数の最大桁数を超えてしまい実験はできませんでした。
理屈の上では、ルビジウムよりもGPSの方が精度が高いようです。

DSC00689.jpg

いずれにせよ、1Hz以下の精度は当局的には必要ないと思われますので、これ以上の追求は無しとしました。

次に、このGPSモジュールの10KHz信号と秋月の12.8MHzのVTCXOを使用した12.8MHz基準信号発生器です。
自分の1ppsを使用した周波数カウンタでの測定ではしっかり12.8MHzになっています。
しかし、これ以外に精度の高い周波数カウンタは無く、もう一台GPS周波数カウンタを作ることにしました。

やっと、本題の「GPSによる簡単高精度周波数カウンタ」です。
こちらは、GPSモジュールにaitendoで販売されている1980円のモジュール(G315)を使用しました。アンテナ(DAM1575A4)も50%引き特売の750円のものを使用しました。
このGPSモジュールは10数ミリサイズの小型のもので、ピンピッチは1.27mmになっています。今回は変換基板を作り必要と思われるピンのみを出力しました。

DSC00684.jpg

小型にしたいと思い、ケースはタカチのW90×D135×H35mmに入るように基板を書いてみました。

DSC00694.jpg

今回は、プリスケール1/16⇔1/4の切り替え、ゲートタイム10S⇔80Sの切り替えスイッチも入れてみました。
回路図は下記の通りです。

GPS-FrequencyCounter aitendo140814.BMP

プリスケールによりますが、60MHz(1/16時)、15MHz(1/4時)位まで測定が可能です。
出来上がったaitendoGPSモジュールでの周波数カウンタの性能確認です。これもまず貸していただいているルビジウム信号源で10MHzを測定しました。当然ですが、どんぴしゃ10MHzです。

DSC00700.jpg

次に、TU30-D140 GPSモジュールの10KHzと秋月12.8MHzVCTCXOを使用した12.8MHz信号源の周波数測定です。
こちらも、どんぴしゃ12.8MHzとなりました。1/4プリスケール、80Sゲートタイムによる測定で12.80000000MHzとなります。最小桁は0.05Hz刻みです。同様に時々±0.05Hzの表示となります。

DSC00708.jpg

これで、600円のVCTCXOで0.1Hz以上(?)の精度の基準信号ができたことが確認できました。
GPSを使ったカウンタや、信号源の最大のメリットは衛星にロックすれば、ソク精度が得られエージングが必要ないことと、衛星がなくならない限り経年変化が無いことです。
アマチュアにとってこれほどFBな基準カウンタや信号源が安く手に入れられることになりとても喜んでおります。
残念ながら、aitendoのGPSモジュールには10KHz信号が出ていないので信号源は作れていませんが、こちらは比較的新しいモジュールなので衛星へのロックは1分ほどです。TU30-D140はロックするのに40分ほどかかりますのでちょっと使うには不便です。

DSC00709.jpg
窓から2つのGPSアンテナを仮設した様子

今回のGPS周波数カウンタを作るにあたり、衛星へのロックを確認するのにいちいちPCをつなぐのは面倒くさいので、マイコンで衛星からのデータを読んで表示するようにしました。
表示の内容は、緯度や経度、時刻、ロック状態などありますが、表示の切り替えなど含めてこれからおいおいソフトをグレードアップしたいと思っています。

DSC00689.jpg

GPSを使用した基準信号発生器の記事は色々なサイトで見つけられますが、周波数カウンタはあまり無いようです。また、これらと衛星からの情報を同時に表示する自作記事もあまり見当たりません。
この盆休みはTS-130のDDS化改造の追い込みと思っておりましたが、GPSに明け暮れた休みとなってしまいました。しかし、ひょんなことから現時点市場で安価に手に入るGPSモジュールやVTCXOとマイコンを組み合わせた、安価で簡単で精度も高いものが得られたことはとてもFBでした。

【謝辞】今回の製作に辺り、すばらしい助言と、Rb-OSCを快く貸与いただきました JA9TTT/1 加藤OMには大変感謝いたしております。 
 Very TNX


posted by ja6irk at 15:47| Comment(4) | TrackBack(0) | QRP-HomeBrew
この記事へのコメント
こんにちは。
仕事?が早いですね。VFOの記事を興味津々で見ていたら、GPSに高精度カウンターとプログラムとケーシング、作業が早いので感心しています。

このアイテムは、私も前から興味があったのですが手付かずだったので、興味深く拝見しました。簡単に高精度が得られるようですね。私も勉強してみようと思います。シリアルの制御だったら、何とかなりそうです。

PLLはこれまた未知の分野ですが、これも面白そうです。1秒の出力に対して、PLLを掛けている方がいらっしゃいました。ロックが安定するまでに時間がかかってしまいますが、アマチュアなら実用になるかもしれません。これなら、aitendoのモジュールでもできそうです。

VFOの400stepのエンコーダー、使い勝手はいかがでしょうか。分解能はいいけど、早送りは辛いですよね。この辺りを工夫しているとも風のうわさ??で聞きました。
23日の懇親会に参加予定なので、直接うかがいます。
Posted by 本田/JK1LSE at 2014年08月17日 08:42
岩永さん、うまく行ったようでお目出度うございます。
高精度になると検証が難しくなりますが、Rb-OSCなら貸し出ししても精度が得られそうなのでお送りしました。 うまく行ってほっとしています。 それにしても、力作ですね。 Blogの方も。hi hi アイボールの際は色々お聞かせください。
Posted by JA9TTT/1 加藤 at 2014年08月17日 17:32
JK1LSE 本田さん、こんにちは。
コメントありがとうございます。
あるレベルの精度のカウンタが欲しくなったのは、中華DDSのOSCの125MHzのズレを調整したかったからです。5.5MHzを出してるはずが、出ていないようなので(通常のXTALは±20ppm程度ありますし)測ってみたくなりました。
TTT加藤さんからの助言で、この連休も手伝って一気に作ってしまいました。
精度の確認も、TTT加藤さんからRb-OSCをお借りできたので助かりました。
簡単に0.1Hz程度の精度のカウンタが手に入りとても喜んでおります。
ソフトもそれほど複雑ではありませんよ!
1ppsを利用した基準発振器はもう少し勉強が必要です(笑)
400ステップのエンコーダーは順調ですよ!
4倍カウントの1600ステップで使っています。
マイコンははや送りでもカウントは取り込んでいるので問題は無いのですが、LCDの表示が遅いためマイコンの駆動周波数をコンパイラをだまして使っています。これで、ぐるぐる回しても取りこぼしがありません。
懇親会出席されるとのこと了解です。
当局は会社のイベントと重なり、7時頃に遅刻して参加の予定です。宜しくお願いいたします。
Posted by jn3xby 岩永 at 2014年08月17日 18:32
JA9TTT 加藤さん、こんにちは。
連休も後数時間になってしまいました。
今回は大変ありがとうございました。
お陰様でFBな基準カウンタと発振器を手にすることができました。
中華DDSの125MHzは約2.35KHzズレていました。
但し、5.5MHz(7MHz)であわせると5.7MHz(7.2MHz)で18Hzほどズレています。
この原因がわかっていません。
DDSの1ステップは約0.029Hzですから、こんなにずれるはずが無いのですが....。
singleの計算ですので計算誤差が積み上がっているのかもしれません。
Blogの方は中身はありませんよ!単に記録写真を並べているだけです。
FLLはもう少し考えて見ます。
来週のアイボール楽しみにしております。
宜しくお願いいたします。
Posted by jn3xby 岩永 at 2014年08月17日 18:44
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/102455817

この記事へのトラックバック