Quantcast
Channel: JH7UBCブログ
Viewing all articles
Browse latest Browse all 440

ArduinoでAD9834DDSその3

$
0
0
 AD9834にデータを送る方法を説明します。
 
 AD9834へPSI通信で送るデータは、16ビット単位です。
 
 ですから、データは、コントロールワード+周波数データ(または、位相データ)の形で2回または3回送信します。
 
 コントロールワード(D15=0,D14=0)のD13が1の時は、28ビットモードで、コントロールワードに続く2回の連続した書き込みで周波数レジスタに完全なデータが書き込まれます。
 
 D13が0の時は、続いて書き込むデータを周波数レジスタの上位または下位に書き込みます。上位か下位かは、D12で指定します。
 
 周波数データの上位2ビット(D15,D14)は、01でFREQ0を10でFREQ1を指定します。
 
 以上をまとめると(28ビットモードのとき)次のようになります。
 
イメージ 1
 
 では、Arduinoでは、どのようにスケッチを書いたらよいのでしょう。
 
 Web上を検索しても日本語のサイトは、あまりヒットしません。そんな中、JA2GQPさんのブログにすばらしいスケッチが公開されていました。
 
 そのスケッチを参考にして(というよりコピーして)、とりあえずスケッチを書き、1MHzを発生させてみました。
 
イメージ 2
 
 
 回路図は、次のとおりです。
 
イメージ 3
 
マスタクロックには、SG-8002DB(67.108864MHz)を使いました。PLLですからそれほどの精度は望めませんが、値段も手頃なのでこれにしました。
 
 SG-8002DBに流れる電流は約16mA、AD9834は1MHz発生の時約40mAで、計、約56mAでした。
 
1MHzの出力波形です。AD9850DDSと比べるとギザギザが目立ちます。無負荷で0.6Vp-p程度の出力が得られました。
 
イメージ 4
 
SCLKとSDATAの波形です。
 
イメージ 5
 
 赤がSDATA、青がSCLKです。
 
 なお、コントロールワードのD1を1にすると(0X2002)、三角波を発生させることができます。1MHzの三角波です。
 
イメージ 6
 
 周波数を変えて実験をしました。上限は20MHz程度、下限は10Hz程度でした。スペックでは37.5MHzまで発生できるはずですが、 ??です。
 
 カウンタのせいか、ちょっと分かりませんが、20MHzまで使えれば、7MHzトランシーバのVFOとしては大丈夫でしょう。ただ、高調波が多いと思いますので、LPFは必須ですね。
 
 スケッチについては、次回書きます。

Viewing all articles
Browse latest Browse all 440

Trending Articles