2016年8月10日水曜日

ネットワークアナライザ開発 その1 Arduino AD9851 DDS

 EMドライブ作成のためRF回路の理解が必要だと思います。何から手を付けたらよいか分からないので、取り急ぎArduinoを使用したDDS発信機を動作させてみます。

 回路を作る技術はまだないので、秋月のAD9851モジュールを購入し使用。
 http://akizukidenshi.com/catalog/g/gM-09945/
 接続図はこちらを参照してください。

説明書通りピンを接続し、サンプルスケッチをダウンロードします。














サンプルスケッチは10KHzを出力するプログラムでした。スペクトラムアナライザーで計測したところ、出力は-16dBmでした。10dBmのアッテネータを取り付けているため、実質-6dBm出力と思われます。スペック上の出力はサイン波10MHzが1Vp-pとのことですので、dBmを以下の計算式より求めます。

 正弦波実効値Vrms = Vp-p / (2√2)
 電力P(mW) = Vrms^2/R x 1000 (R=負荷)
 レベルP(dBm) = 10 x Log(P(mW))

 となるので

 正弦波実効値Vrms = 1 / (2√2) = 0.353 Vrms
 電力P(mW) = 0.353^2/200 x 1000 = 0.623045 mW (モジュールの負荷は200Ω)
 レベルP(dBm) = 10 x Log(0.623045) = -2.05 dBm

 となります。

 計測値では-6dBmでしたので、4dBmほどロスしているようです。スペクトラムアナライザーが50ΩでDDSモジュールの負荷が50Ωですのでインピーダンス不整合が理由かと思われます。他サイトで50Ωと200Ωのリターンロスが4.437dBmとのことでしたので、ほぼ理論値かと思います。

今後、ネットワークアナライザのような機能を作成してみたいので周波数を掃引させてみます。スケッチのloop部分を以下のように書き換えました。100kHzずつ10msで書き換えます。

#include <EF_AD9850.h>
//BitData - D8, CLK - D9, FQUP - D10, REST - D11
EF_AD9850 AD9850(9, 10, 11, 8);

void setup() {
  AD9850.init();
  AD9850.reset();
  AD9850.wr_serial(0x01, 10000); //10KHz
}

void loop() {
  for(int Freq_sweep = 0; Freq_sweep <=400; Freq_sweep++){
    AD9850.wr_serial(0x01, Freq_sweep*100000);
    delay(10);
  }
  delay(10000);
} 


掃引する動画はこちら

 このDDSは40MHz位までの発信が可能とのことです。これを局発としてネットワークアナライザでいう反射測定を行える機能を実装していきたいと思います。

0 件のコメント:

コメントを投稿