DDS IC「AD9833」をArduino UNO R3で制御
備忘録としてアップしておきます。
2025年5月21日:Arduino UNO R4 minima 電源供給方法でクロックが変わる#4
この実験で使った「1MHz近傍周波数発振回路」です。
Arduino UNO R4 minima、あるいはRA4M1コアボードから
出力させた1MHzを、このDDS回路で出力した1MHzをmix
してビート音を出しました。
DDS IC AD9833は、モジュールじゃなく単体の石を
買ってありました。
25MHzの水晶もあったのですが、あえてATmega328P
から16MHzのクロックを出すようにして横取りしました。
全体の消費電流は25mAくらい
出力はフィルタやアンプを入れずにそのままです。
高速オペアンプを買ってあれこれ試して
みたいところです。
最低周波数が1Hz。 最小桁が0.1Hz。
最高周波数は5MHzあたり。
周波数をスイープする機能を入れてありますんで、
何かの実験で役立つかもしれません。
・制御スケッチ
・ダウンロード - ad9833_01.zip
※スケッチ追加修正してます
・sweep時のトリガ用(オシロでの観察)として
Rise時、PD4をHにしています。
Hの↑エッジで周波数 A->Bのスイープが
始まります。
↓エッジがWait-Hのタイミングになります。
ABCラジオ(AM 1008kHz)にビートをかけて
遊んでいるところ。 (ラジオを横に置いて)
液晶アクセスの「TWI」、AD9833アクセスの「SPI」。
ともにライブラリは使わずATmega328PのI/Oレジスタを
直接操作しています。
ATmega328Pの「SPI」なんて、ほんとに簡単。
(出力制御の場合)
I/Oポートを操作してる感覚で制御できますんで、
ライブラリなんて要りません。
要るのはATmega328Pのハードウェアマニュアル。
※関連
・2024年10月6日:おっと。map関数の計算桁に注意
| 固定リンク
「Arduino」カテゴリの記事
- UNO R4はanalogWrite(n,128)でデュティー50%の方形波が出るぞ(2025.06.03)
- DDS IC「AD9833」の出力にバッファアンプを(2025.05.27)
- DDS IC「AD9833」をArduino UNO R3で制御(2025.05.25)
- DDS IC「AD9833」の周波数レジスタ書き込みで(2025.05.23)
- Arduino UNO R3で周波数を計る(2025.05.16)
コメント