中華DDSの実験 ソフト編



AD9850とマイコンはシリアルモードとパラレルモードの2種類の接続モードがあります。
シリアルモードは40ビットのデータを1ビットのシリアルデータで送るのに対してパラレルモードでは1バイトのデータを5回に分けて書き込みします。
パラレルモードの方が書き込み回数が少なくて済むので高速に周波数の変更ができる利点がありますが、書き込みにワンチップマイコンを使用するので少しでも使用ピン数を減らしたいのとマイコン内蔵のむSPIモジュールを使用することでそれなりに高速な書き込みが可能なのでここではシリアルモードで書き込みします。

電源起動時にAD9850は最初パラレルモードで起動します。 シリアルモードにするには下図のようにD2(Pin2)を0Vに、 D1(Pin3)と D0(Pin4)を+VCCに接続してW_CLK信号をHI,LOとしその後FQ_UD信号をHI,LOします。
W_CLK信号のON,OFFは1回だけとは規定されていないのでシリアルモードでの書き込みを行うことでも代用可能です。

シリアルイネーブルシーケンスとシリアル書き込み方法
シリアルデータは通常SPIでは上位データから書き込むことが多いですが下位データから書き込むのでこれに注意してください

データはATmega168のSPIモードを使用して書き込みします。
前半はSPI及びAD9850の初期化です。
前に書いたようにAD9850の初期化はほとんどの場合実行しなくても動作するようですが一応念のために書いています。

後半はAD9850に周波数データの書き込みをしています。
周波数データは最初の1バイトの書き込みはメインプログラムからの指令で書き込み、2バイト目以後はSPI転送完了割り込みで順次書き込み指定の文字数転送で完了します。
ここでは書き込み方法だけの解説なので具体的なデータの内容はAD9850のデータシートを見てください

SPI転送のプログラム

ご意見、ご質問等はこちらまで。



メニューへ