まさはる's Weblog
|
| Macintoshとオーディオの話題 |
| « Arduino互換機を作ってみました(その2) | トップページに戻る | FETオーディオアンプ回路を作ってみました » |
2026年5月15日AD9833を使った正弦波発生回路を作ってみましたCategory : Arduino / Posted at 2026年5月15日 06:17以前作った、マイコンキット ドットコムの波形発生器キット「MK-200D」は、新たに自作した状態変数型正弦波発生回路に置き換わってから使わなくなったため、キットで使われていたアナログ・デバイセズのAD9833を使用したDDSモジュールを、単独で使ってみる事にしました。 ![]() AD9833 DDSモジュール(キット付属のもの) このAD9833はSPIで制御するので、前回作ったArduino互換機を早速使ってみることに。 これまで作った正弦波発生回路は1kHzしか出せなかったので、今回はスイッチにより3種類の周波数(例えば100Hz, 1kHz, 10kHz)を選択できるようにしてみました。また、アナログ回路の部分は、AD9833が単電源による動作のため0〜約0.6Vの波形を発生させることから、DC成分を取り除くカップリングコンデンサを入れたことと、2VPPへの電圧増幅と出力の振幅調整ができるようにしています。 で、一番大変なのはプログラムの方で、AD9833のデータシートを見ると結構難しそう...。なお、今回も使用したライブラリはSPIのみで、AD9833の制御は自力です。最初は周波数の設定データを手作業で作っていて、融通の利かないプログラムだったのですが、現在のバージョンでは関数の引数に周波数[Hz]を入れて呼び出せば、周波数の設定値が変更されるようになっています。また、スイッチに割り当てる周波数は、自由な値に設定する事が可能です。ちなみにソースはこちらです。 ![]() AD9833 正弦波発生回路 上が正弦波発生回路で、下が前回作ったArduino互換機です。上のタクトスイッチは左から100Hz、1kHz、10kHzに設定されており、選択されると緑、黄、赤のLEDが点灯するようになっています。 ![]() 100Hzに設定した場合のA点とB点(CH1(黄色)はA点、CH2(水色)はB点) ![]() 1kHzに設定した場合のA点とB点(CH1(黄色)はA点、CH2(水色)はB点) ![]() 10kHzに設定した場合のA点とB点(CH1(黄色)はA点、CH2(水色)はB点) 上から100Hz、1kHz、10kHzで、縦軸のスケールは全て同じです。AD9833から出力される周波数はかなり正確で、100.003Hz、999.969Hz、9.99995kHzとなっており、振幅は0〜0.6V弱ぐらいです。 ![]() 正弦波発生回路のアップ 相変わらず謎の立体交差配線がされていますが、ブレッドボード1枚に納めようとするとこんな感じの仕上がりに...。ま、そこは置いといて、使ってみるとスイッチ一つで出力する周波数が瞬時に変わるのはかなり便利です。これまでアンプの動作確認は1kHzでしかしていなかったので、今後は100Hzや10kHzも使ってみたいと思います。 (その後...) ![]() 100kHzに設定した場合のA点とB点(CH1(黄色)はA点、CH2(水色)はB点) まあまあ普通に出力されています。オペアンプの出力も2VPPになっています。 ![]() 1MHzに設定した場合のA点とB点(CH1(黄色)はA点、CH2(水色)はB点) AD9833の出力はまともなのですが、オペアンプが高周波に対応していないことから出力波形が歪んでおり、振幅も1.5VPPと小さくなっています。アナログ回路を高周波向けに改良すれば良くなりそうです。 ![]() 10MHzに設定した場合のA点とB点(CH1(黄色)はA点、CH2(水色)はB点) AD9833の出力はかなり歪んで、オペアンプの出力は0になっています。今回作った正弦波発生回路の場合は、100kHzぐらいまでで使うのが良さそうです。 (さらにその後...) ![]() 高速・超広帯域オペアンプ NJM2137D このオペアンプは電源電圧が±1.35〜±6V、スルーレートSR=45V/μs、利得帯域幅積GB=200MHzというものですが、最小安定ゲインが1V/Vなので単純に置き換えられそうという事で選定しました。 ![]() 1MHzに設定した場合のA点とB点(CH1(黄色)はA点、CH2(水色)はB点) 少し右にズっていますが、まぁまぁいい感じに。周波数を2MHz、3MHzと高くしていくともっと右にズレていき形が崩れていきます。ちなみに周波数の低い方(例えば100Hzとか)もちゃんと出ますが、今のところ高周波は用事が無いのでNJM4580DDに戻しました。 |
| « Arduino互換機を作ってみました(その2) | トップページに戻る | FETオーディオアンプ回路を作ってみました » |
|
|