« DDS IC「AD9833」の周波数レジスタ書き込みで | トップページ | DDS IC「AD9833」の出力にバッファアンプを »

2025年5月25日 (日)

DDS IC「AD9833」をArduino UNO R3で制御

備忘録としてアップしておきます。
2025年5月21日:Arduino UNO R4 minima 電源供給方法でクロックが変わる#4 
この実験で使った「1MHz近傍周波数発振回路」です。

Arduino UNO R4 minima、あるいはRA4M1コアボードから
出力させた1MHzを、このDDS回路で出力した1MHzをmix
してビート音を出しました。
Ad9833_01
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)にビートをかけて
遊んでいるところ。 (ラジオを横に置いて)
Aa11_20250525180601

液晶アクセスの「TWI」、AD9833アクセスの「SPI」。
ともにライブラリは使わずATmega328PのI/Oレジスタを
直接操作しています。

ATmega328Pの「SPI」なんて、ほんとに簡単。
  (出力制御の場合)
I/Oポートを操作してる感覚で制御できますんで、
ライブラリなんて要りません。
要るのはATmega328Pのハードウェアマニュアル。


※関連
2024年10月6日:おっと。map関数の計算桁に注意

|

« DDS IC「AD9833」の周波数レジスタ書き込みで | トップページ | DDS IC「AD9833」の出力にバッファアンプを »

Arduino」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« DDS IC「AD9833」の周波数レジスタ書き込みで | トップページ | DDS IC「AD9833」の出力にバッファアンプを »