【概要と性能仕様】
USB2.0対応のPIC18F2550と、アナログデバイスのDDSチップであるAD9834を
組み合わせて、約100kHzまでフラットな出力の正弦波発振器を作ってみました。
1Hz単位で任意の周波数をパソコンから設定して出力させたり、任意のスイープ
をさせたりすることが可能です。
製作した発振器の仕様は下記のようになっています。
項 目 性能仕様 備 考 電源 DC7〜12V
消費電流 約100mAACアダプタから供給 出力周波数 正弦波または三角波
周波数範囲
5Hz〜100kHz フラット
最高出力周波数
約350kHz
出力分解能
10ビット(〜50kHz)
9ビット(〜100kHz)
8ビット(〜200kHz)
出力電圧 出力インピーダンス
約600Ω
出力電圧(負荷600Ω)
0V〜2V
可変抵抗で
任意に設定周波数設定 手動
ロータリーエンコーダで任意
リモート
USB接続
PC側ソフトウェアで操作刻みは10Hz単位
設定は1Hz単位で自由
【全体構成】
この低周波発振器の全体構成は下図のようになっています。
28ピンのPIC18F2550にUSBを直接接続し、PCから送られてくる周波数を
AD9834に出力します。
これでAD9834で設定周波数の正弦波を生成します。この正弦波をローパス
フィルタに通して高い周波数成分をカットします。
その出力を可変抵抗で電圧調整したあと、出力アンプに入力し増幅してから
外部出力としています。
電源は外部からACアダプタ等でDCを供給し、3端子レギュレータで5Vを
内部の供給しています。つまりセルフパワーとしています。100mA程度の
消費電流ですのでバスパワーとしても問題ないでしょう。
AD9834は50MHzの外部発振器からのクロックで動作させます。これで最高
速度で動作することになります。
PICは外部に20MHzのクリスタルを接続し、内部は48MHz動作としています。
これも最高速度での動作となります。
外部機器としては、現在の出力周波数を表示する液晶表示器と、ローカルで
周波数が可変できるようにロータリエンコーダを接続しています。
【AD9834の概要】
アナログデバイス製のAD9834は、小型のDDS機能を持つLSIチップで、
下図のような外観とピン配置となっています。
AD9834の仕様は下表となっています。
項目 仕様・機能 備考 電源 単電源
2.3V〜5.5V
消費電流
5.8mA〜8mA
スリープ時
0.5mA出力 D/A出力
正弦波/三角波
最大出力電圧・電流
0.6V 3mA
出力周波数範囲
0〜25MHz
分解能 0.2Hz
位相変調と周波数変調が可能
D/A分解能 10ビット
クロック50MHzのとき
スプリアス 広帯域:-60dB
狭帯域:-78dB全高調波歪み 外部インター
フェース3線式SPI
最高速度40MHz
周波数設定 28ビット
位相設定 12ビット外形 20ピンTSSOPフラットパッケージ
AD9834の内部ブロック構成は下図のようになっています。基本はDDS
ブロックで指定された繰り返しで正弦波のアドレスを生成し、ROM内の
正弦波データを読み出します。そのデータをD/A変換してアナログの
正弦波に変換しています。
周波数の設定データはSPIインターフェースで転送し、データ長は28ビット
となっています。
位相変調のための位相シフトデータもSPIで転送され、データ長は12ビット
となっています。
【インターフェース仕様】
AD9834のSPIによる外部インターフェース仕様は下記のようになっています。
このSPI転送では16ビット長で転送が行われますので、PICのSPIモジュールは
8ビット長ですからそのままでは使えません。
そこでSPIではなくI/Oピンうぃ使ってソフトウェア制御としています。
16ビット長の転送データのフォーマットと機能内容は下記となっています。
【回路】
上記の仕様で設計した回路は下図のようになります。
AD9834との接続は、PIC側をSPIでは無くI/Oモードとしましたので、接続ピンは
任意にできます。
USBとの接続は、今回はセルフパワーのみとしましたので、D-とD+を直接
USBのBタイプのコネクタに接続します。
【組み立て外観】
実際に組み立てた本発振器の基板は下記のような写真の外観です。
基板全景で、右上がUSBのコネクタ、PIC18F2550
左中央はAD9834を変換基板に搭載したものです。
さらに左側が出力アンプです。
左上側がローパスフィルタ部分です。
右下側が電源部とリセットスイッチ、ロータリエンコーダ
のコネクタなどです。
パターン側です。
出力アンプの入出力用カップリングコンデンサには
電解コンデンサと大容量セラミックコンデンサを並列に
して、低周波から高い周波数まで減衰しないようにしています。
基板に液晶表示器とロータリエンコーダを接続したところです。
この他に出力電圧調整用の可変抵抗と出力ジャックなどが
接続されます。
下記がケースに組み込んだ写真です。
右下のつまみがロータリエンコーダで左右回転で周波数を
上下させます。その隣が出力電圧調整用のボリュームです。
そして矩形波出力端子、正弦波または三角波出力端子と
なっています。
右上のスイッチは電源スイッチです。
背面にUSBのコネクタがさせるように四角の穴をあけました。
内部配線の様子です。
出力のボリュームへの配線、出力端子への配線が直接
になります。
液晶表示器とロータリーエンコーダをコネクタ接続としました
ので大分楽に配線できます。
【出力波形】
実際に出力した正弦波の波形写真とFFT変換した写真です。
出力のローパスフィルタだけで特別な対策なしで40dB程度のスプリアス
を得られています。