記事の詳細
周波数レスポンスアナライザ特集 第1章 周波数特性測定器の基本設計
まず全体の機能と構成を検討します。前提として与えられた課題は次のようになります。
- マイクとオーディオアンプの周波数特性が計測できること
- 電池動作が可能で測定器系と被測定器間のグランドが切り離せること
- 正弦波で測定し周波数範囲は10Hzから1MHzが必須範囲、測定レベルは-60dBから10dBとする
- 表示はグラフで表示すること
この課題を満足させるために必要な全体構成を考えていきます。全体の構成を考えるときの大きな課題は正弦波の生成方法とグランドの切り離し方です。
1-1 基本検討
(1) 全体構成の基本検討
最初の全体検討のメモが図1-1となります。
周波数特性の測定の際に、測定系と被測定器間のグランドを切り離すという条件から電池動作をさせることにします。これで測定器本体は被測定器と同じグランド系となり絶縁が不要になりますから簡単になります。電池には入手が容易なアルカリ電池を使うことにします。しかし、こうしたときの課題はグラフ表示をどのようにするかです。
グラフ表示をするには大型の液晶表示器が必須ですが、この駆動にはかなりの電力が必要となりちょっとアルカリ電池レベルでは苦しくなります。そこで、グラフ表示は測定器本体では行わずパソコンかタブレットで表示させることにします。このとき課題となるのは測定器本体とパソコンまたはタブレットとの接続方法です。
LANやUSBなどの有線ではグランドが切り離せませんから使えません。そこで完全に切り離すことができる無線を使うことにします。無線にはパソコンやタブレットに標準実装されているということからWi-FiかBluetoothが候補になりますが、測定器本体側の電池動作を考慮して、消費電力の少ないBluetoothを選択します。
パソコンとタブレットのどちらかの選択は、持ち運びとプログラムの作りやすさからタブレットを選択します。プログラムの作りやすさは筆者の理由です。
測定器本体と被測定器との接続は、BNCコネクタなどでは大型になって扱いにくいので、一般的なオーディオ用シールド線を使いRCAプラグ、ジャックで接続することにします。
電源は全体を5Vで動作させることにし、アルカリ電池の単3を4本使って6Vから3端子レギュレータで5Vを生成して全体を動作させることにします。
(2) 正弦波出力部の基本検討
次に測定器本体の中身の構成の検討です。検討メモが図1-2となります。
まず正弦波の出力方法です。最初の条件からマイクとアンプが相手ですからオーディオ用ということで、正弦波で測定することにし、測定する周波数範囲は10Hzから1MHzの範囲が測定できることが最低条件としました。入出力インピーダンスもオーディオ用では出力は600Ωが標準です。レベル測定の入力側は600Ωではなく10kΩ程度のハイインピーダンスとすることにしました。
この周波数範囲の正弦波を生成させるには、オペアンプを使ったアナログ発振回路が最も歪みの少ないきれいな波形が生成できますが、周波数を可変するにはコンデンサや抵抗の値を変える必要があり、マイコンから制御する方法が難しくなります。
そこで、デジタル方式で正弦波を生成することにします。メモリに正弦波のデジタルデータを用意し、それを一定間隔でD/Aコンバータに出力すれば正弦波を生成できます。歪の少ない正弦波とするには1周期を100分割以上にする必要があります。すると、1MHzの正弦波を出力するには100MHz以上で動作させる必要があり、PICマイコン内蔵のモジュールやプログラムでは実現が困難です。
しかし、これを実現する専用デバイスとして「DDS(Direct Digital Synthesizer)」というものがあります。これを使えば、高い動作周波数のものもありますから1MHzの正弦波も問題なく出力できます。
ここでは入手しやすさと価格とピン数とパッケージから、アナログデバイス社のDDSファミリの中から、75MHz動作のAD9834を選択しました。20ピンという少ピンでパッケージもTQFPですからピン間が狭いですが何とかアマチュアでもはんだ付けできます。最高750kHzまでは100分解能の正弦波が出力できます。
このDDSのマイコンとのインターフェースは3線式のSPIで、動作電圧は2.3Vから5.5Vの範囲で使えます。
次が、被測定器を通過したあとの正弦波の電圧レベルの測定方法です。測定レベルは-60dBから10dBを確保することが条件です。そうすると電圧レベルとしては2.19mVp-pから6.93Vp-pですが、小さな電圧の直流への変換が難しいのとデシベルという対数への変換が必要ですので、ここも専用ICを使うことにしました。
「ログアンプ」というICでDCから500MHz程度の交流信号を対数変換し直流信号として出力します。ここもアナログデバイス社のログアンプからAD8310というものを選択しました。このICにより-90dBから0dBの範囲を0.5Vから2.5Vの直線的に比例した直流電圧に変換することができます。ここでは20dBだけゲインを減らして-70dBから20dBの範囲で使うことにします。マイコンとの接続は直流電圧測定だけですからアナログ入力1ピンだけで接続できます。電源も2.7Vから5.5Vの範囲で使えます。パッケージは8ピンのMSOPとなっていてはんだ付けができます。
次にBluetoothの実現方法ですが、ここはマイクロチップ社のBluetoothモジュールを使って簡単化することにしました。最も安価なRN-42XVPというモジュールを選択しました。マイコンとの接続がUARTでBluetoothのプロトコルスタックはすべてモジュール内に実装されていますから簡単に使うことができます。
(3) プログラム全体の動作
この周波数特性測定器では、タブレットのプログラムと計測器本体のPICマイコンのプログラムが互いにBluetoothでデータを送受しながら機能を実行しますが、周波数特性を測定する際のデータ送受は図1-3の検討メモのようにすることにしました。
まず、タブレット側から計測開始コマンドを送信します。これを受信したPICマイコンはOK応答を返します。
OK応答を受けたタブレットは周波数設定コマンドで最初の設定周波数を送信します。PICマイコンは送られて来た周波数をDDSに設定し正弦波を出力します。一定時間後に被測定機器の出力レベルをA/Dコンバータで入力してそのレベル値を無線でタブレットに送り返します。タブレットはこれを受信して周波数特性グラフとして描画します。グラフ表示後、次の周波数に更新して再度周波数設定コマンドを送信します。これをグラフが右端になるまで繰り返して終了となります。
グラフはタブレットにNexus7(2013)を使うことにしましたので、画面全体の解像度が1920ドット×1200ドットですからグラフ領域として1500ドット×1050ドットを使うことにします。そうすると横軸は250ドット/ディケード、縦軸は150ドット/10dBということになり、周波数は10Hzから10MHz、レベルは-60dBから10dBが表示できます。
測定器本体の全体の制御はPICマイコンで行います、必須の内蔵モジュールはUARTと12ビットA/Dコンバータ、タイマ程度です。必要なプログラムもそれほど大きくはないですから8ビットPICマイコンで十分です。
そこで最新のF1ファミリから12ビットA/Dコンバータを内蔵したPIC16F178xファミリを使うことにしました。28ピンのDIPパッケージを使うことにします。選択可能なPICマイコンはPIC16F1783、PIC16F1786、PIC16F1788のいずれかとなります。
1-2 機能仕様
周波数特性測定器としての機能をまとめます。
まず全体の機能は表1-1のようにするものとします。できるだけ簡単な構成となるよう測定は1チャネルだけとし、一定の周波数を連続出力する機能、周波数をスイープして特性グラフを描画する機能、データをファイルとして保存し、読出しあるいは削除ができる機能だけとしています。
機能 | 機能内容 | 備考 |
---|---|---|
端末選択機能 | Bluetoothで接続する端末をリストから選択して接続 | Bluetoothモジュールがすべて実行する |
固定出力機能 | テキストボックスに入力した周波数を連続して出力し、被測定器の出力レベルをデシベル値で表示する | 設定周波数範囲は上限10MHz 1/10ステップで更新 |
スイープ機能 | 10Hzから10MHzの周波数を順に出力し、その時の被測定器のレベルを計測してグラフに描画する。同時にデシベル値も表示する | 周波数更新間隔は約50msec |
データ保存、削除 読出し機能 | 描画したグラフを配列データとしてファイル保存する。また読出して再描画もする ファイルを指定して削除もできる | ファイルの名前で保存、削除、読出しをする |
周波数特性測定器の入出力などの仕様は表1-2のようにしましたが、これらは大部分使用した機能ICの仕様となっています。
項目 | 仕様 | 備考 |
---|---|---|
電源 | アルカリ電池 単3×4本 またはDC6VのACアダプタから供給 消費電流 平均50mA(Bluetooth待機時) 最大80mA(Bluetooth送信時) | 消費電流値は通信中は変動する |
Bluetoothモジュール | Bluetooth V2.1+EDR対応 プロファイルはSPPでスレーブ動作 UARTとは115.2kbpsで接続 | マイクロチップ社製RN-42XVP |
正弦波周波数出力 | DDSによる正弦波出力 10Hz~10MHz 最小1/4Hzステップ 出力レベル 最大6.6Vp-p | アナログデバイス製AD9834 可変抵抗でレベル調整可能 出力はオペアンプで増幅する |
レベル入力 | ログアンプで入力 10dB~-60dB 分解能 0.1dB 周波数特性 DC~10MHz | アナログデバイス社製 AD8310 PICマイコンの12ビットADCで入力 |
表示 | 7インチタブレット Android V6.0 グラフ表示解像度 1500×1050ドット 横軸:10Hz~10MHzまで対数目盛 縦軸:10dB~-60dB | ASUS社製Nexus 7(2013) 表示解像度は1920×1200ドット |
1-3 通信データのフォーマット
タブレットを含めた全体のプログラムの流れは図1-3のようになっていますが、両者の間で行われるBluetoothの通信データのフォーマットを決める必要があります。
通信データをできるだけ確認しやすいように常に64バイト長の一定の長さで、コマンドにはASCIIデータつまり文字データを使うことにします。64バイトに満たないデータは0をパディングデータとして必要なバイト数だけ追加することにします。
実際の送受信データを表1-3のようにすることにしました。単純に開始コマンドとDDS用の周波数設定コマンドの2種類だけで、それぞれにPIC側から応答を返すことにします。
機能 | タブレット→PICマイコン | タブレット←PICマイコン |
---|---|---|
計測開始 コマンド | 開始トリガコマンド 「’S’、’T’、’E’」」 (常に64バイトで送信) | 応答返送 「’M’、’O’、’K’」 |
周波数設定 コマンド | 周波数設定値を4バイトのバイナリ値で送信 「’S’、’N’、F1、F2、F3、F4、’E’」 F1:設定周波数下位1バイト目 F2:2バイト目、F3:3バイト目 F4:4バイト目(最上位) | 応答として信号レベルを2バイトのバイナリ値で返す 「’M’、’N’、L1、L2、’E’」 L1:レベルの下位バイト L2:レベルの上位バイト |
著者略歴:後閑哲也
1947年 愛知県名古屋市で生まれる。
1971年 東北大学工学部応用物理学科卒業。大手通信機器メーカに勤務
2003年 有限会社マイクロチップ・デザインラボ設立
計測制御システムの開発コンサルタント
2012年 神奈川工科大学 客員教授