2007/07/15 世界最小?のネットワークアナライザー
オーディオ帯域のネットワークアナライザーがマイコン1個で作れると思いずーっと検討していました。 ただ、いままで使ってきたAVRではADCの性能が10ビット、最高77ksps(しかも最高のときは精度が落ちる)と低く、ADuC7026やSH2(どちらも雑誌の付録基板が余っていた)で試作してみようと思っていたところにdsPICの基板がトラ技2007年8月号に付録で付き、性能をみてみるとこの目的に十分のようでしたのでこれで試作してみることにしました。
性能は1Hz〜100KHzで80dB程度のダイナミックレンジを目標にしています。 ネットワーク測定(振幅、位相、群遅延)のほかにスペアナ、高調波だけ振幅測定し高調波歪を高速に測定するモードもつけたいと思っています。
パソコンをつかったスペアナにくらべ位相、群遅延が測れること、周波数レンジが広いことがメリット、DACが12ビットなのでダイナミックレンジが狭いことがデメリットです。
■試作した基板
2007/07/21 簡単な測定ができるところまでできました
dsPICははじめてなのでちょっと手間取りましたが、簡単な測定ができる程度までできました。
まだDSP部分(積和演算)を使っていませんし、C言語で全部書いていますがなんとか処理は間に合っているようです。 これから機能を追加するとともにDSP部分をつかったり、一部アセンブラーで書いたりしていこうと思います。
■TWIN−Tを測定してみたところ
今のプログラムでは低い周波数の測定時に直流(オペアンプのオフセット)の裾がかかってくるのを防ぐため窓関数をかけています。
信号生成とI軸、Q軸検出のために三角関数のテーブルを持っていますのでそれを使ってハン(ハニング)窓関数としています。
■ハン(ハニング)窓の特性
エイリアス問題をどうにかしないといけないことがわかりました。
■LPFの特性
回路図をアップできないので現状の写真です。
■今現在の基板
次に信号入力ですが、オペアンプのバッファにコンデンサを介して入っています。 オペアンプには2.9Vのバイアス電源(抵抗分圧+コンデンサ)から1MΩでバイアスをかけています。 オペアンプの出力はAN9につながっています。 AN8にはバイアス電源がつながっています。 バイアス電圧をよむことによりDC分をキャンセルしています。 バイアスにつながっている抵抗が1Mと大きいのでバイアス電流による誤差がでるようです。
RS232CのRXですがU1ARXとU1RXを1kでつないでいます。 TXはU1TXからデジトラで反転したものです。
13.5MHzの水晶をつなげるようにしていますが、今は内蔵CR発振のままです。
しかし、トラ技のこの基板はU1ATXに変な回路でLEDをつないでいるので使いにくいです。 素直に他の汎用ポートに別々にLEDをつければいいのに...ブートローダーはポート設定を勝手に変えてるし...ブートローダーのソースが公開されていないから改造もできないし...(ブツブツ)