dsPIC33Fでオシロスコープ試作
dsPIC33Fを使用したオシロスコープを自作するための練習として、PICへの書き込みや入力アンプの回路動作確認も含めてテスト的な基板を試作しました。これまでマイクロチップ社のデモボード(16-Bit 28-Pin Starter Board)でしかPICマイコンを動かしたことがなかったので、少しずつ動かしながら、テスト基板を作成することにしました。

オシロスコープの目標スペック
dsPIC33Fの10bit ADコンバータの実験で、1チャンネルならば1Msps可能であることが分かったので、オシロスコープの目標仕様を次のようにしました。
- 2チャンネル同時サンプリング、ゲインとオフセットの調整可能
- サンプリング周波数500Ksps ※1チャンネル単独の場合は1Msps
- 各チャンネルとも直流と交流の両方を測定可能
- 直流の入力電圧範囲 0V~約3V ※最終的にはロータリースイッチ切替で0V~24V
- 交流の入力電圧範囲 約±1.5V ※最終的にはロータリースイッチ切替で±24V
オシロスコープの回路図
実験ということで、次のような回路を試してみることにしました。10bit ADコンバータの実験ではdsPIC33FJ12GP202を使用しましたが、dsPIC33FJ12GP202はデータメモリが1024バイトしかありません。600個程度のサンプリングを使用とすると、1チャンネルあたり750バイト( = 600 * 10bit / 8)必要であるため、dsPIC33FJ32MC202を使うことにしました。dsPIC33FJ32MC202は2048バイトのデータメモリを持っているため、2チャンネルでも大丈夫です。
一番迷ったのが、ADコンバータの入力アンプの回路です。OPアンプには、ナショナルセミコンダクターの汎用OPアンプLM324と新日本無線のNJU7034を試してみることにしました。LM324は4回路入りのOPアンプで、秋月では4個100円(1個あたり25円)で購入することができ、かなり安いです。一方、NJU7034も4回路入りのOPアンプですが、こちらはシリコンハウス共立で1個525円でした。両方とも単電源5Vで使用可能なため、とりあえずこれらで試しました。
入力アンプの回路だけを取り出すと次図のようになります。1チャンネルに二つのOPアンプを使用し、前段のOPアンプはゲイン調整とオフセット調整、後段はローパスフィルタ(LPF)を組み合わせた回路にしました。後段のLPFはトラ技などでよく紹介されている多重帰還型の2次ローパスフィルターです。OPアンプの電源電圧はできるだけダイナミックレンジを大きく取りたいため、Vccは5V、VeeはGNDに繋げています。単電源で使用するため、OPアンプのV+端子にはバイアス電圧として、1.65V(dsPIC33Fの電源電圧3.3Vの半分)を中心に可変抵抗で調整可能な電圧を加えるようにしています。

後段のLPFのカットオフ周波数fcは図中の抵抗R3,R4,R5、コンデンサーC2,C3により、次式のようになります。

C4/C5 = 9/2の場合、通過域が平坦なバターワース特性のフィルタになります。今回はカットオフ周波数fcが100KHzぐらいになるように、R3=R4=R5=5KΩ、C4=470pF、C5=100pFにしました。計算では、fc = 146KHzになります。上記回路をMicro-Cap9でシミュレーションしてみると、次のような周波数特性になりました。

緑線がゲインのグラフで、100KHzぐらいから減衰しており、1MHzでは約-40db(0.01倍)になっています。赤線は、前段のOPアンプを通過した時点でのゲインです。これ自体はOPアンプLM324をきちんとシミュレーションしたものではありません。黒線は位相を示しています。前段に22μFのコンデンサを挿入して、直流成分をカットするようにしているため、低い周波数の部分では位相が進んでいます。実際に回路を作る前に周波数特性がシミュレーションできるのは非常に助かります。
作成した試作オシロスコープで波形観測
SoftOscillo2で1KHzの正弦波を発生させ、波形を見ることにしました。PICのADコンバータで取得した波形データはRS-232Cを使用して、パソコンで表示するようにしています。表示するソフトは、自作オシロ用に作成した手作りのソフトです。

最初、ナショナルセミコンダクターのOPアンプLM324を使用しました。その場合の波形は次のようになります。明らかに波形の一部に歪がでています。

どこで歪が発生しているのかを探るため、SoftOscillo2で波形を見ようと、前段のLM324の出力部分にプローブを当てると歪の一つ(上側の歪:青い波形では正側の歪)がなくなり、後段のLM324の出力部分にもう一つプローブを当てるともう一つの歪(下側の歪:青い波形では負側の歪)もなくなりました。実験したわけではないですが、恐らく2箇所の部分にコンデンサを加えれば、綺麗な波形になると思いました。
LM324を使用した回路にコンデンサを加える前に、新日本無線のOPアンプNJU7034Dを試してみることにしました。その場合の波形は次図の通りです。なんとOPアンプを変えただけで綺麗な波形になりました。OPアンプの差がこんなところに如実にでるとは驚きです。

OPアンプをNJU7304Dにすれば、綺麗な波形を表示することができたので、これでOKかなと思ってたのですが、二つほど問題があることが分かりました。一つは直流を計測する場合です。直流の場合、0Vを中心に増幅(ゲイン調整)するのが普通だと思いますが、上記の回路ではOPアンプのV+端子にバイアス電圧を加えているため、バイアス電圧を中心に増幅されます。しかし、OPアンプを単電源でかつ反転増幅回路として動かしているため、バイアス電圧を0Vにすると電圧が負となり、正しい電圧が得られないことに気づきました。もう一つはシングルエンドの回路であることです。2チャンネル同時サンプリングをする場合、シングルエンドだと両チャンネルのGND側がショートされるため、測定したい回路によっては好ましくないことが多いことに気づきました。これらのことから、正負電源を使用した差動増幅回路(インスツルメンテーション・アンプなど)がいいと思えてきました。次回は正負電源のインスツルメンテーション・アンプを試そうと思っています。
最新の7件
OpenGL
電子工作
玄箱HG
- ClamAVのアップデート
- Smartyも入れてみる
- etchでPHP4->PHP5
- etchでのSamba設定
- etchでのメール設定
- 玄箱HGのetch化
- Webdruidでログ解析
- PEARも入れてみる
- 玄箱WEBのUTF-8化
- phpMyAdminでMySQL
- postmasterの変更
- ウィルスメール対策
- SPAMメール対策
- メールサーバ(IMAP)
- メールサーバ(Postfix)
- 猫にXOOPS
- PHPも入れてみる
- MySQLを入れてみる
- Subversion導入
- WebDav導入
- Apacheのrewrite機能
- Apacheディレクトリ設定
- Apache1.3->2.0
- ddclientの設定
- 静かな玄箱
- ユーザ追加
