オーディオクラフト工房(270)

更新日:2023年1月18日


オーディオ用周波数特性測定器を新しく作る
2023年の初めての記事になります。今年もよろしくお願いいたします。過去に何回かオーディオ用周波数特性測定器を作ってきましたが、今回新作バージョンになって登場です。今回はオーディオ帯域に限定して作りました。カラー液晶表示で更に使い易くなっていると思います。
(今回作製したオーディオ用周波数特性測定器)
(測定器の構成概要)
今回の特徴はカラー液晶で特性のグラフ表示が出来ることです。オーディオの周辺にPCがなくても周波数特性を確認することが出来てとても便利になりました。構成は過去の製作と同じで正弦波の信号発生と信号レベル測定器、特性表示液晶を内蔵しています。周波数は20Hz〜20kHzに限定しました。正弦波信号発生の周波数ステップはレンジによって異なりますが、最小1Hzステップが可能です。オーディオ用として割り切った結果です。
(内部構成のブロック図)
正弦波はDDS回路モジュールを使用します。OPアンプを通して出力します。信号レベルを測定するLOGアンプ回路は電子工作の実験室:http://www.picfun.com/を参考にさせて頂きました。この場をお借りして作者の方に感謝いたします。測定データはカラー液晶に表示します。記録を残すという意味でPCに接続してのグラフ表示も可能です。
(内部回路詳細ブロック図)
電源回路はLCフィルターでノイズ対策をしています。電源が安定することで綺麗な波形が出力されることを期待します。メイン制御と液晶表示はPIC32MXマイコンが行います。PIC32沼に入るとなかなか抜け出せませんね。
(DDS回路モジュール)
DDS回路モジュールはストロベリー・リナックスさんから購入しました。現在も購入出来ると思います。このモジュールは原発振の水晶発振器が特注の周波数になっていますので、マイコンからの周波数設定がとても簡単です。このモジュールは実装されている水晶発振器の関係からDC5Vでしか動作しません。PIC32MXマイコンは3.3V動作しますから、一度はあきらめかけていたのですが、DDSチップのデータシートを調べてみますと。ふむふむ。
(DDSチップ:AD9834データシート抜粋)
そりゃそうでしょう。3.3Vのマイコンからも駆動出来ますね。Hレベル判定が2.3V以上になってます。めでたしめでたし。
(マジョカランタンから摘出したカラー液晶モジュール)
カラー液晶モジュールはマジョカランタンから取り出したものを使用します。320x240ドットの液晶でパラレル制御なので高速処理が可能です。制御の方法などはソースを見て下さい。コネクタ接続はAitendoさんのコネクタ変換基板を使います。
(周波数特性測定器の回路図)
LOGアンプはAD8310を使用します。出力のOPアンプはMCP6H92を使用します。マイナス5Vの生成にはTPS60403を使用します。どのICも半導体入手困難により過去製作から取り出して使用しています。マイナス5V生成のICは大量のノイズをばらまきますので、LCフィルタを増強しています。これで良いのかどうかはちょっとわかりませんが、一応納得しています。測定データをPCに送り込むためのインターフェイス回路も付けています。PCとアイソレートするために回路を工夫しています。この辺りのPC接続については後日記事で詳しく説明したいと思います。
(PIC32MXの回路図)
マイコンはPIC32MXシリーズ品です。カラー液晶モジュール駆動には必須ですね。今までの自作ゲーム機でマイコンのプリント基板を作製していますので、それを利用しました。
(PICマイコンポート割り付け)
カラー液晶駆動に沢山のピンを使用していますが、それ以外はDDSモジュール駆動とADコンバータ読み取りがメインになります。
PIC32MXでのソフト開発ですので、Harmony 3を使います。詳しくは記しませんが、PIC32を使いこなされている方々には難しくないと思います。
(過去製作の周波数特性測定器の中身です)
当時はこの内容で楽しく製作に励んでいたのですが、近年はプリント基板化必須ですよね。GND周りが強化されてノイズが減ることを期待しましょう。
(大陸からの基板着弾です)
毎回PCBWayさんにお願いしています。ガーバーデータアップから約1週間で到着します。今回は回路設計の一部にミスがあったのでガーバーデータは公開いたしません。万が一同じ物を製作される方は回路図をベースに各自アレンジして下さい。私は基板のレジスト色を毎回緑以外にしています。赤色ってとても好きです。
(基板に部品を取り付けました)
基板サイズはギリギリで100mm以内に収めていますが、半分が電源のLCフィルターです。主要ICの周辺にはかなりの余裕があります。抵抗などでチップ部品の定数に入手困難な場合があるので、ディスクリートの金属皮膜抵抗を使っています。
(PIC32MXのマイコンカード基板)
自作ゲーム機で作ったマイコン基板を使います。PIC24Fは使用しませんのでワイヤージャンパーしてPIC32MXのピンに接続しています。
(AD9834の制御)
(制御信号)
(出力周波数の計算)
過去製作の記事の中でも説明していますが、上図にポイントを記します。ひとつのデータは16ビットで、周波数設定、周波数レジスタ下位、周波数レジスタ上位の順にICに送り込めば周波数が設定されます。周波数の正弦波信号を出力する時は周波数設定のDB6を[0]、しない時は[1]にすればOKです。詳しくはソースを見て下さい。
(各ボタンの操作一覧)
内部的に4つのモードが存在します。電源を入れるとmode=0 「CONTROL」モードになります。まだ正弦波は出力されていません。SW1を押す毎に出力ON/OFFのなります。このボタンを長押しすることでmode=2 「SWEEP」モードに入ります。液晶画面にボタンSWの機能を2文字で表示していますのでなんとか使えると思います。
(RANGE一覧表)
周波数レンジはSW2を押す毎に変化します。オーディオ帯域に限定していますので、レンジは4種類です。バンドパスフィルターの測定などには細かい周波数が調整出来ますので、重宝するのではないでしょうか。周波数は大まかにはボリュームで設定して細かいところはSW3/SW4で設定が可能です。
(今回の製作品の中身)
とてもスッキリとしました。余計なノイズが減っていると思いましょう。入出力端子、ボリューム、SW類は前回の製作品をそのまま使っています。
(mode=0 CONTROLモードの液晶表示です)
前回の製作は16文字2行の表示のみでしたが、液晶表示で見やすくなりました。液晶下部に表示しているのがボタンSWの動作を示しています。黄色表示が通常押しで、紫色表示が長押しになります。「FREQ.」のボリュームが周波数調整、「LEVEL」のボリュームが正弦波の波高値調整を行います。難しくはないと思っています。
(mode=2 SWEEPモードの液晶表示です)
今回はSWEEPモードに入っても直ぐにSWEEP信号は出力しないようにしています。一旦mode=3にしてからSW3を押してから出力します。詳しくは各ボタンの操作一覧で確認下さい。
(mode=0 CONTROLモード)
綺麗なカラー液晶表示でとても見やすくなりましたね。
(mode=2 SWEEPモード)
SWEEPモードでは液晶左上部にボタンの機能を表示しています。少し見にくいですが、ご理解下さい。SWEEPモードでもボタンの長押しはありますが、それは表示していません。下写真がSWEEPモードでの測定結果です。SWEEPモードの測定周波数は159ポイントです。1ポイント約1秒ですので、SWEEPには約2分の時間を必要とします。
(10dBステップ) (5dBステップ)
(4dBステップ) (2dBステップ)
SWEEPモードで測定中は固定画面になりますが、測定が終了するとdBの表示ステップを切り換えることが出来ます。拡大された部分はUP/DOWNボタンでグラフを上下に移動することが出来ます。SWEEPモードの結果表示は「FREQ.」のボリュームを動かすことで測定グラフ上をドットが動いて周波数に対するdB表示を行います。
(20Hz〜20kHz) (20Hz〜1kHz)
(100Hz〜1kHz) (1kHz〜10kHz)
周波数表示エリアの切り換えも出来ます。周波数の範囲は上のように4種類です。周波数範囲に特にこだわりはありません。この切り換えはmode=3にしてから行います。操作ボタンが4個しかありませんので工夫しています。周波数表示エリアを変えても測定グラフ上のドットを動かして周波数に対するdB表示を行います。
OPアンプから出力される波形も確認しておきましょう。
(1kHz、2.44Vp-p出力波形)
(1kHz、760mVp-p出力波形)
(1kHz、232mVp-p出力波形)
なんとか満足出来る波形になっているのではないでしょうか。でも正直なところ出力電圧が低い時のノイズ感がもう少し減ってくれれば良かったなと思います。
(実測したdB値と波形の振幅)
1kHzの周波数で振幅とdBの関係を実測しました。5[dB]=1.778倍ですからなんとかほぼ正しい比率になっていることが確認出来ました。
「SWEEP」モードでは周波数毎に測定レベルをグラフ化しますが、同時にデータの出力もします。この辺りは後日の記事で詳しく説明しますが、この測定器からの出力データは信号アイソレータを経由してインターフェイスを介してPCと接続します。
(測定器から出力する周波数と測定レベル)
周波数データ3バイト、測定レベル2バイトのデータをインターフェイスに送り込みます。すみません、今回の周波数上限は30kHzですが、過去の製作品と合わせるために上図内容としています。
インターフェイスを介してPCに送られたデータはVBアプリでグラフ化出来ます。これも後日の記事で説明させて頂きます。
(測定例:フォノイコライザーアンプのRIAAカーブ)
うんうん、なかなか良い測定が出来たと思います。ひとまずは自分的には満足な測定器が出来たと思います。やっぱり自作って良いですね。
一応PIC32MXのプロジェクトファイルを置いておきます。興味ある方はお試し下さい。ちなみにプログラミングの作法は全くのオリジナルですので、内容ご理解下さい。
PIC32MX_AUDIO_AN.zip
今後ともオーディオクラフト工房をよろしくお願いいたします。

オーディオクラフト工房へ戻る