2012/02/10

[電子工作]aitendoのDDSモジュールを動かす

,
aitendoで売っている、AD9850がのったモジュールを使ってみました。
このモジュールには、Analog DevicesのAD9850(datasheet)というDDS ICが乗っていますが、海外のサイトにこのICのArduino向けライブラリがあったので、それを使って動作確認してみました。

 AD9850のライブラリはこのページの一番下、「AD9850 Arduino Library.」からZipでDLできます。これを解凍し、Arduinoのlibrariesフォルダの中に入れる(arduino-0021/libraries/EF_AD9850のような感じ)と、Arduino IDEの[Sketch]→[Import Library]で選択できるようになり、使えるようになります。

 ※2012-12-23追記 : ArduinoIDEの更新に伴い、"WProgram.h"が"Arduino.h"になりました。そのため、ライブラリがそのままではコンパイル通らないことがあります。その時は、EF_AD9850/EF_AD9850.hの"WProgram.h"を"Arduino.h"にしてみてください。

ハードウェア

ライブラリの使い方、モジュールとArduino間の結線も、上で紹介したページに書かれています。DDSモジュールのピン配置は、このページにあります。一応書いておくと、
DDS module - Arduino Duemilanoveで
GND - GND
Vcc - Vcc(3.3V)
D7 - Digital 8
CLK - Digital 9
FQUP - Digital 10
REST - Digital 11
です。一応Vcc=3.3Vなので、Arduino側のI/O電圧も3.3Vにしました。5Vな方は自分で調べてください。

ジャンパの設定は、J1、J3がジャンパ。J2は無くても大丈夫っぽいです。

ソフトウェア

プログラムは簡単で、
#include < EF_AD9850.h >

EF_AD9850 AD9850(9,10,11,8);

void setup()
{
  AD9850.init();
  AD9850.reset();
  AD9850.wr_serial(0x00, 1000);
}

void loop()
{
}
です。これも上のページのサンプルコードこのまんまですね。
 これを実行したところ、DDSモジュールのOUT-GND間からsin波が出力されました。クリスタルイヤホンを直繋ぎでも確認できます。

 AD9850は"それなりに"高性能なDDSで、最大60MHzまでのsin波を出力することができます。わざわざ発振器を買わなくても、手軽な信号源とすることができるので便利ですね。簡易network analyzer(作例pdf)を作る試みをしてる人もいるみたいです。
#まだデータシート見てないのに動かせるなんて…
(2014/05/01 加筆修正)

0 コメント to “[電子工作]aitendoのDDSモジュールを動かす”

コメントを投稿