広告
*[[秋月電子通商:http://akizukidenshi.com/]]のDDSキットを[[EZ-USB FX2>EZ-USB/FX2]]でコントロールする。 [#cf95024a]
パソコン制御のシグナルジェネレータにできる
**準備 [#z339ce3c]
-DDSキット買う
-DDSキットを作る。
-SDCCをインストール
-[[CycFX2Prog]]をインストール
--[[CycFX2Prog]]のサイトからサンプルファイルを取ってきてその中にあるヘッダーファイル(fx2regs.h)を使う
**接続 [#zb9c3e01]
-[[EZ-USB FX2>EZ-USB/FX2]]の5V端子をDDSキットの電源端子につなぎ、GNDをDDSキットのグランドにつなぐ
-[[EZ-USB FX2>EZ-USB/FX2]]の出力端子とDDSキットのシリアル入力(STB、DATA、SCK)をつなぐ。
--下のサンプルプログラムを使うときは以下のようにつなぐ
---STBをPB0
---DATAをPB1
---SCKをPB2
**[[EZ-USB FX2>EZ-USB/FX2]]用プログラム [#ud44e080]
↓このサンプルプルグラムをSDCCでコンパイルする
#ref(test_dds_1.c)
コンパイルは
sdcc -mmcs51 -I./include test_dds_1.c
とやる。ただし、この場合ヘッダーファイル(fx2regs.h)はソースと同じディレクトリにある「include」というディレクトリに入れておく。同じディレクトリやライブラリのパスにあるときは「-I./include」と言う部分は不要。
**書き込み [#y05745fd]
コンパイルすると「test_dds_1.ihx」というファイルができるので、[[EZ-USB FX2>EZ-USB/FX2]]をつなげた後rootになって
# cycfx2prog prg:test_dds_1.ihx
とする。
**使用 [#o75c1226]
rootで
# cycfx2prog reset delay:100 run sbulk:2,CMD-DATA
とする。
CMD-DATAは最初の1文字がコマンドで次の26個の0または1がデータ。データはLSBから並べる~
例えば1Hzの時は
f10000000000000000000000000
となるので
# cycfx2prog reset delay:100 run sbulk:2,f10000000000000000000000000
と実行する。~
3Hz時は
# cycfx2prog reset delay:100 run sbulk:2,f11000000000000000000000000
0が最後まで続く時は省略可能。つまり
# cycfx2prog reset delay:100 run sbulk:2,f11
でも3Hzが出力される。
**コマンド [#tb6664c4]
ほとんどの場合は上のようにfコマンドで良いと思う。
|a|出力をOFF。データはダミー|
|b|出力をON。データはダミー|
|c|4bitデータを出力|
|d|1chにデータを書き込む|
|e|1chのデータを出力|
|f|1chにデータを書き込んで出力|
広告 |