AD9851モジュールを使用したSWRアナライザーの試作について

最終更新時間:2018年05月19日 10時30分19秒

[公開:any]

[電子工作/AVR]
[電子工作/アマチュア無線]
[電子工作/測定器]
[AVR,AD9851,AD8307,ATtiny861A,アンテナ]

origin 2018-05-19


  • 実際にこちらで製作しました。(2020-05-04)

 前回、si5351aを使用したSWRアナライザーでは、ある程度の正確さでSWRを測定するには、si5351aの高調波をなんとかする必要があることがわかりました。今回、別の用途(VFO等)に使用するつもりで調達しておいたAD9851モジュールを使用してSWRアナライザーを試作してみました。AD9851は、DDSにより正弦波を生成しますので高調波は比較的少ないです。

 モジュールにはカットオフ周波数70MHzのLPFが実装されているので、そのまま使用できます。このモジュールは、型番HC-SR08というもので、かなり前にebayで2個セットで30ドル程度で入手したものです。若干値上がりしていますが、現在も同じものが入手できるようです。なお、同じ型番でAD9850を実装したものがあります。購入時は注意が必要です。また、秋月電子で取り扱いのある「サインスマートAD9851使用DDSモジュール」も基板は違いますがほぼ同じ性能だと思われます(これは未確認)。

HC-SR08

 AD9851モジュールの出力をスペアナで見てみました。細かなスプリアスが見えますが、測定に使用するには問題ないレベルだと判断しました。スパンを広くとっても問題となる高調波はありませんでした。

AD9851スプリアスAD9851スプリアス

 試作なのでブレットボードを使用しました。マイコンはAVRのATTiny861Aを使用しています。表示はaitendoで購入したI2C-OLEDモジュールです(最近、秋月電子でも取り扱いがあります)。SWRブリッジとログアンプのAD8307は、前回の試作でランド方式で作成したものの使いまわしで、小さな基板に実装してあります。

 測定方法は、測定端子(DUT)を開放(オープン)にした状態でAD8307の出力をAD変換で読み取り、その値から、測定対象を接続した場合のAD変換値を引いたものがリターンロスを示します。これは、AVRのAD変換のリファレンス電圧に内部基準値の2.56Vを使用すると、AD変換値は2.5mV単位(2.56/1024)となるので、AD8307の対数の傾き25mV/dBとの関係でダイレクトに換算できることを利用しています。(例:オープン時のAD変換値が700、アンテナ接続時のAD変換値が382の場合→ 700-382=318となり、リターンロスは、この値の1/10なので31.8dBとなります。)


 信号源(この場合AD9851モジュール)の出力レベルが周波数によらず一定であれば、測定端子を開放した時の値は、固定値でも大きな問題ありません。しかし、このモジュールはLPFの性能が悪いせいか、周波数が高くなるにつれて出力レベルがだらだらと低下します。(1MHzから70MHzで約15dBmも低下する)


 周波数を変更して測定するたびに開放時の値を事前に測定するのは面倒なので、あらかじめキャリブレーションすることで、開放時の値をフラッシュメモリに記憶するようにプログラミングしました。ここまでは表示にaitendoのI2C-OLEDを使用していたのですが、キャリブレーション機能を組み込むとSRAMやフラッシュの容量が不足するので、表示部を通常のI2Cキャラクター液晶に変更しました。
 キャリブレーション機能は、1MHzから70MHzまでを1MHz単位で自動スキャンさせ、それぞれの値を記録していくようにしています。フラッシュメモリに記憶するので一度行えば電源を切っても保持されます。キャリブレーションは10秒以内に完了します。当然のことながらキャリブレーション時は測定端子を開放しておく必要があります。


 試作した回路図です。I2C液晶はaitendoで入手したものです。3.3V用ですがコントロールチップのSPLC792Aが5Vに対応しているので、5Vで使用しています。プッシュスイッチは、周波数のステップ変更に使用しますが、長押しするとキャリブレーションを実行します。


 測定端子を50Ωで終端した時の1MHzと50MHzの測定結果です。AD9851モジュールの出力があと10dBm程度高ければよいのですが、50MHzでの出力レベルが約-16dBmと低いので、内部ロスなどを含めるとAD8307の性能からして十分なダイナミックレンジが得られません。実装方法などであと数dB程度は稼げると思いますが、とりあえず、SWR1.05が測定できれば十分であると判断しました。(AD9851の出力レベルを稼ぐにはアンテナアナライザーを作った時のように出力をトランスで受けるようにすれば可能です。)


 33Ωと75Ωで終端した時のSWRです。周波数を変更しても概ね1.5を示します。


 実際のアンテナのSWRを測定してみました。アンテナは未調整のマルチバンドモービルホイップです。真値(・・といっても自作のリターンロスブリッジとスペアナで測定したリターンロス)とSWRアナライザーの測定結果です。SWR最小時の周波数とリターンロスの値は概ね近似します。






 以下、参考資料


 ソースプログラムの一部です。AVRのTinyシリーズはハードウェアレベルでI2Cに対応していませんが、USIを使用してソフトウェアレベルでI2C対応することが一般的です。この部分のソースプログラムは、がた老AVR研究所さんのソフトI2Cマスターのライブラリを使用させていただきました。aitendoのI2Cキャラクター液晶の制御は、秋月電子のAQM0802AなどのメジャーなI2C液晶のコントローラーチップであるST7032と同じ制御なので、他のプロダクトからの使いまわしでOKです。浮動小数点の値をprintfで表示するには明示的にライブラリをリンクする必要がありますが、これを行うとバイナリが大きなサイズになりますので、sprintfで適当に表示文字列を作成するようにしています。


 

このテンプレートをデザインした者がへたれなので IE6 には非対応です。IE7FirefoxSafariOperaChrome など、モダンなブラウザを利用して下さい。


▲ページ Top へ...