• ベストアンサー

2重積分型ADコンバータの入力電圧範囲について

教育>科学 のカテゴリにて質問しましたが回答がもらえなかったのでカテゴリを変更して再度質問させていただきます。 先日、トラ技Beginners3巻「VBと製作で学ぶ始めてのパソコン応用工作」を見ながら、シリアルポートを使った2重積分型ADコンバータを製作しました。動作は一見問題なく、入力電圧が0~3.2Vくらいまでは(テスタとほぼ同じ値が)PCに表示されます。が、電圧を3.2Vより大きくすると、PCには明らかに実電圧よりも小さな値が表示されてしまいます。 ADコンバータの基準電圧が2.5Vなので、基準電圧より大きな電圧は変換できないのでしょうか?それとも積分回路のコンデンサか何かに問題があるのでしょうか? 私は電気電子素人でどうも雑誌の記事だけではわかりません。誰かご存知の方がいらっしゃいましたらご教示のほど、宜しくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • txrx
  • ベストアンサー率45% (83/184)
回答No.1

これだけの情報では、解かりません。 誰もがその雑誌を見ている訳ではありませんから。(-_-; 積分型のADコンバータは、コンデンサに充電した時間でAD変換を行います。 自作?のADコンバータであれば、bit数等は自由に決めることができます。 また電源電圧も自由です。そして内部回路も自由。 自由な条件が多すぎて問題を解決できません。 今考えられることは、入力電圧が電源電圧に近くなっているのでは?と言うことです。 一般的な回路では、入力電圧は、電源電圧を超えることはできませんし、アナログ回路においては、回路が動作するために入力電圧<電源電圧の関係が成立します。つまり、入力信号が電源電圧を超えていないとしても、電源電圧に近くなると期待する性能を得ることができません。 例えばOpAmpの電源を±12Vで設計すると実際に取り扱う事のできる電圧は、だいたい±10V程度になってしまいます。 そして、ディジタル回路と異なり、はっきりと使える範囲と使えない範囲が決まっていません。 限界に近付くと徐々に性能が劣化し限界付近でやっと使えなくなります。 その他にも、コンデンサへ充電する回路の精度も影響します。 コンデンサへ充電する回路は、電圧→電流変換回路を使用すると充電がリニア(入力電圧に対して正比例)で充電できますが、単純な実験回路等では、単に抵抗だけで充電することも考えられます。 この場合は、CR回路の特性でコンデンサ両端電圧が高くなるほど誤差が大きくなります。 ADコンバータの基準電圧は、特に関係ないように思われます。 積分型の場合、基準電圧の充電時間と入力電圧の充電時間を比較して変換するので、2.5Vに対して入力3.2Vは、適切な電圧に見えます。つまり大きく異なっていないので十分に精度を発揮するように考えられます。 ・・・と、あまりにも不明点が多い質問なので、回答も多くなってしまいます。まだまだ考えられることはありますが、この辺でご容赦ください。 一番良い質問は、実際の回路図を提示することです。

Kazyo4
質問者

お礼

大雑把な質問だったにもかかわらず、詳しい回答をいただきまして本当にありがとうございいます。 お礼とともに、まず不足していた情報をいくらか補足させていただきます。 (1)電源電圧:シリアルポートのRTS/DTR端子を常にどちらかはONさせて+5V(私のPCの場合)をOPアンプとスイッチICに供給。 また、負の入力電圧にも対応できるようにTXD端子をOFFさせて-5V(私のPCの場合)をスイッチICのVee、OPアンプのVssに接続。 (2)bit数:不明です。積分器出力(電圧符号コンパレータを介してDCD端子に接続)がゼロの時点から300msecの時間だけ入力電圧を積分した直後、逆符号の基準電圧を積分して積分器出力が再びゼロになるまでの時間T[msec]を計測し、Tと300の時間比から電圧を計算しているようです。時間計測には、PC内部のタイマIC(Beep音用1.193MHzのカウンタ)とWindowsAPIのtimeGetTime関数を併用しています。雑誌には10bit以上の性能が得られると書かれています。 (3)基準電圧:電源電圧とリファレンスダイオードで+2.5Vと-2.5Vを供給。 (4)回路図等、雑誌より抜粋した資料:フリーホームページスペースにアップロードしましたので、お時間があればごらんください。 <http://members.goo.ne.jp/home/zktmep> 私の拙い質問情報から想定・指摘していただいた回答の中で、私なりに考えてみましたところ、やはり入力電圧に対して電源電圧が不充分というのが当てはまりそうです。今回は回路の電源電圧は±5Vになると思いますが、仮に±5Vの入力電圧に対応させるためには、もっと大きな電源電圧を外部から供給する必要があるとわかりました。 あるいは#3さんの回答のように、入力電圧を分圧するよう改造できれば、それが一番簡単なのでしょうか。 コンデンサへ充電する回路の精度という所は勉強不足でいまいちよくわかりませんでした。コンデンサの特性を十分理解してませんが、その辺も怪しいのかなと思ったりはしましたが… 最後になりましたが、ご回答本当にどうもありがとうございました。入力電圧範囲を広げられるように改造してみようかなと思っています。本当に参考になりました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • 777_kenyu
  • ベストアンサー率68% (22/32)
回答No.3

> 明らかに実電圧よりも小さな値 というのが急に発狂するということであれば、 カウンタがあふれたということも考えられます。計数部分のクロックを下げてみたらどうなりますか。 今までの指摘にある様に飽和だったら、 入力電圧を分圧して下げるのが楽かと思います。

Kazyo4
質問者

お礼

ご回答ありがとうございました。 #1さんへのお礼の中に書きましたが、時間計測にはPC内部のタイマIC(1.193MHzで2バイト[65535]のカウンタなので60msecであふれます)に加えてWindowsAPIのtimeGetTime関数を併用することで、タイマICのカウンタが何周目かを数え、カウンタの周期以上の時間にも対応できるようです。なので計数部分のクロックを簡単には下げることができませんが、雑誌付録のVBプログラムにおかしいところがないか、もう一度見直してみます。 時間計測のプログラムに問題が無ければ、おっしゃる通り、入力電圧の分圧というのがやはり簡単そうに思えます。 大変参考になりました。

すると、全ての回答が全文表示されます。
  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.2

#1さんの回答に加えて、、 入力電圧だけでなく、回路内のすべての点で、電圧は電源電圧以内(正しくは、正常動作電圧範囲内)である必要があります。 たとえば、入力電圧が高くなって、積分回路の出力が回路の正常動作範囲を超えるようになると、実際の値より低い値を示すようになるかと。

Kazyo4
質問者

お礼

ご回答いただきありがとうございました。 確認したところ、今回の場合は、入力電圧が電源電圧以内に収まっていれば、回路内のすべての点で電源電圧以内に収まるようですが、参考になりました。

すると、全ての回答が全文表示されます。

関連するQ&A