AD9851でシグナルジェネレータを自作する その2

2CH-シグナルジェネレーターの製作

2ch出力で周波数、位相、出力レベルを各チャンネルごとに設定可能なシグナルジェネレータを製作しました。出力できる信号は、周波数2[MHz],レベル10[Vpeak]、位相0~180°の範囲で設定することができるようになっています。また、これらの設定はUSBを経由してコマンドにて設定するようになっています。

製作するシグナルジェネレータについて

以前の記事で説明した「AD9851+IV変換回路」の構成で2Vpの正弦波を生成する回路が完成しました。

この回路を基本として、「レベル調整回路」、「フィルタ回路」を設けることでシグナルジェネレータとして使えるものに仕上げました。AD9851 を2つ使って2CH独立した周波数の正弦波を生成できるような回路構成とします。また、2つのAD9851を同期させることで位相の設定も可能な回路としました。

シグナルジェネレータの構成

ブロック図

回路図

制御基板回路図

アナログ基板回路図

制御にはTMS320F28035を用いました。以前製作したTMS320F28035ボードを用いました。C2000マイコン固有のペリフェラルが必要ということではありません。したがって一般的なSPIやUARTを備えたマイコンであれば、他のマイコンを用いても制御は可能です。ArduinoやRaspberry Piを使っても良いでしょう。

基板構成

1台限りの製作なのでユニバーサル基板上に製作しました。秋月電子の両面スルーホール・ガラス・ユニバーサル基板Aタイプ2枚に分けて回路を実装しました。1枚目は「電源+MCU基板」を実装した制御基板、2枚目は「DDS+レベル調整回路+フィルタ回路」を実装したアナログ回路という構成になっています。この2枚の基板間をフラットケーブルで接続して基板を重ねて用いる構成としました。

上:制御基板
下:アナログ基板

AD9851の同期

同期して制御する方法

アナログデバイセズが公開しているアプリケーションノート「AN-587」を参考にしました。

https://www.analog.com/media/jp/technical-documentation/application-notes/AN-587_jp.pdf

AD9851は同一のクロックで動作させます。FQ_UD信号をアサートすることでレジスタに設定した周波数値が出力されます。 D-FF(74HC74を使用)を挿入することで、FQ_UD信号をクロック(REF CLK)に同期化します。

Dフリップフロップ「74HC74」を用いた同期化回路

同期化のシーケンス

1.全デバイスの電源を投入し、共通のREF CLKを印加する。
2.共通のRESETを、5 REF CLK周期幅の最小ハイレベル時間で送信する。
3.FQ_UDを送信せずにDDS#1を希望の周波数で、0度の位相オフセットに設定する3.FQ_UD を送信せずにDDS#1を希望の周波数で、0度の位相オフセットに設定する。
4.FQ_UDを送信せずにDDS#2を同じ周波数で、90度の位相オフセットに設定する。
5.共通のFQ_UDをアサートする。これでDAC出力が設定されたように正しい周波数と位相オフセットで同時にアクティブになる。

2ch出力動作

各チャンネル独立して、位相、周波数、振幅の制御が可能なシグナルジェネレータが完成しました。

コメント

  1. 中納言 より:

    すみません、お伺いしたのですが出力信号のレベルはどのように変えているのでしょうか

    • yoshikiyo より:

      AD9851のRset端子(12ピン)に流れる電流値を可変することで出力信号のレベルを可変しています。