「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



引き続き、Arduinoと5110液晶を使ったオシロを
少しずつ進める。



ソフト周りばかり考えていたので、少し逸れて、
アナログ回路周りももう少し詰めていくことに。


基本的には、プローブ越しに1MΩで受けた電圧を、
オペアンプで増幅してから、折り返しノイズの
影響が出ないようにアンチエイリアシングフィルタ
を掛けて、ADCから取り込むという流れにする目論見。

オペアンプ周りの設定と、それに関する電源周りを
考えておく必要がありそう。




電源は、正負電源を使うのが吉なんだろうと思う
んだけど、負電源を作るのが面倒だったり、
アンプの出力が0~5Vに収まらないときのADC側
の対処とかも面倒。
なので、手を抜いて、R-to-Rアンプで5V単電源を
想定してみる。


いくつか候補はあるけれど、オフセット電圧とか
バイアス電流とかモロモロ考えて、
http://akizukidenshi.com/catalog/g/gI-06840/

全部NJU7043Dを使って行うと想定してみる。本当は、
もうちょっとオフセットの小さいオペアンプがいい
んだけどな…。




まず、電源。

5V電源の抵抗分圧で2.5Vを作り出し、CRフィルタで
スパイクやリプルを除去。それをオペアンプ1回路
使ってボルテージフォロアで2.5V電源としてみる。
アナログ側の「A-GND」と仮定。

当然、この2.5V出力をオシロのプローブ部分の
GND側にも使っちゃう。

オシロ自体が独立した電源で動いてないと、2.5Vが
あちこちにショートして危険極まりない状態に。
たとえば、USB-シリアルでPCと繋ぎつつ、PC内の
電圧を計ろうとしたら大変。
A-GNDと称する2.5V出力があちこちに…。

なので、電池駆動とか、モバブーとかを電源として、
「単体オシロ」として使うことを想定。
(絶縁型のシリアルとか使えば、PCとかと接続する
 のも無理ではないけど)

まぁ、回路を手抜きするための、一つの方便として
こんな形で進めてみる。PC接続オシロは、もう既に
持ってるから、こんなもんでも充分なのだ。オイラ
的には。




次、アンプ部。

最初の段。
普通はインスツルメンテーションアンプを組むの
がいいんだろうけど、面倒なので、ボルテージ
フォロアで済ませると仮定。

各オペアンプは2.5Vを仮想GNDとして扱うので、
増幅の中心は2.5Vとなるんだけど、ADCで入力後に、
2.5V電位(入力値では512あたり)を、ソフト的
にはGND電位として扱えば、特に問題にならないはず。



続いて2段目。
入力信号のレンジに合わせて増幅する部分。切り替え
は、マニュアルスイッチでカチャカチャ切り替えを想定。
増幅幅用の抵抗を切り替える寸法。

UIの表示内容とかも想定しながら、それなりに使い
やすそうな増幅の倍率を、E24系列で実現できそうな
範囲で考えてみる。
4倍、2.5倍、4倍、2.5倍…としていくと、小数桁が
べらぼうに細かくならずゴキな感じ。750Ωと3kΩの
組み合わせとかかな。

入力のレンジを何V~何mV程度に設定するかにもよる
けど、初段のボルテージフォロアの出力を、一旦
分圧でちょっとだけ小さくしておいてから、改めて
レンジに合わせて増幅するのがヨサゲかなぁ。

ちなみにここは反転増幅。



3段目。折り返しノイズを削るフィルター。

ざっくりと、ADCのナイキスト周波数を10kHzと
置いてみて、カットオフ周波数を8kHz、3次の
チェビシェフ特性のフィルタに掛けることを想定
してみる。

ゲインリプルをあまり大きくしたくないので、
1.5dbと置いてみると、10kHzで-10db、12kHzで
-40dbくらいになるみたい。
本当は、もうちょっと急峻なフィルター使って、
カットオフを10kHzギリギリにしたいんだけど、
こんくらいで勘弁しておいてやるか…。

欲を言えば、10ビットADCのデータをFFT掛けると、
-60dbくらいまで見れるはずだから、もっと急峻
なのがいいんだけどな…
ゲインリプルをもっと大きくとるか、もっと高次の
フィルタにするか…。いずれにしても、Arduino側
の性能の制約で、ナイキスト周波数はこれ以上は
殆どあげられないんだよな。

ちなみにここも反転増幅。2回の反転で正転に戻る
寸法。



オフセット調整も欲しくなるんだけど、ここまでで
4個のアンプを使ってて、さらに1個というと奇数に
なってナニなので、アタマを切り替えて、2.5V電源
を作り出す抵抗の分圧部分を若干上下出来るように
しておくことで、お茶を濁すかな…




DC信号はこんな感じでなんとかなりそうな気がするけど、
AC信号はどうしようかなぁ。

とりあえず、プローブに外付けでコンデンサ通して、
DCカットする方法かなぁ。
1MΩで受けるとすると、タイムスケールが数秒~数十秒
まで扱うと考えると、計算では10uF程度でカットすれば
よさそうかなぁ。

内蔵にすると処理が面倒っぽいし、扱う周波数によって
容量を変えないと、実用上困りそうな気がするし。




あと厄介なのは、ADC周りのノイズかな。

オペアンプの出力は、アンプ自体のPSRRに任せて、
それなりのノイズ除去が期待できると仮定しつつ、
ADC側の参照電圧のリプルは検討要。

まぁ、小さいレンジをそのまま拾うわけじゃなく、
増幅後の電圧を入力するわけだから、電源に載る
リプルより、スパイクとかについて有効に対応
しておくのが吉なのかな。

AREF端子へのリプルフィルタ(100Hz前後を想定)を
バカ正直に計算してみたら、文字通り馬鹿みたいに
デカイLCRフィルタが必要になっちゃいそうなので、
そこそこであきらめるかな。



モロモロ考えつつも、実際に動かしてみると、
色々とトラブったりするんだよな。まぁ、まずは
動かしてみて考えよう。動かすための部品を買い
漁ってこないとな。

まぁ、db表示のFFTはともかく、波形自体の表示は
「縦48ドット」なので、あまり追求しても得るモノ
があまり多くないはずだと思うんだけどな。





http://www.dfrobot.com/index.php?route=product/product&product_id=1084#.U1qsslfzEvw

DFrobot社から、128×64ドットの液晶シールドも
出てるのか。
ドット数から見て、ST7565系のコントローラかな。

まぁ、NOKIAの5110液晶みたいに、いつなくなるか
判らない廃盤の携帯用の液晶より、汎用性のあり
そうなST7565の方が、使い勝手はいいだろうな。

オイラのオシロも、一通り動くようになったら、
メモリの許す範囲で、ST7565でも動くように
改造版も作りたいところ。




http://www.switch-science.com/catalog/1714/
スイッチサイエンスに、LPC1114搭載のmbed基板が。

ナカナカ良いな。安いし、RAMが8KB載ってるし。



コメント ( 0 )