ADCの入力振幅をプログラマブルに変更:Design Ideas アナログ機能回路
マイコンのA-Dコンバータのアナログ入力端子には、マイコンの電源電圧以下の信号しか入力できない。従って、より広い電圧範囲のアナログ信号を扱いたい場合には、外部回路が必要だ。さほど精度を要しない用途の場合には、より簡易的に入力電圧範囲を変更したい。そこで、マイコンの内蔵ポートの出力を切り替えるだけで、入力電圧範囲を0V〜5Vから0V〜20V、−10V〜10Vに切り替える方法を紹介する。
昨今の1チップマイコンには、A-Dコンバータを内蔵しているものが多い。しかし、その場合A-Dコンバータのアナログ入力端子には、マイコンの電源電圧以下の信号しか入力できない。従って、より広い電圧範囲のアナログ信号を扱いたい場合には、外部回路が必要となる。すなわち、分圧回路を用いたり、オペアンプを用いてゲインを変更したりすることにより、データシートで規定されているアナログ入力電圧まで信号の範囲を狭めてやらなければならない。加えて、入力電圧範囲の切り替えも行いたい場合には、分圧回路の定数をリレーやFETを用いたスイッチによって切り替えることになるため、回路規模が大きくなってしまう。
さほど精度を要しない用途の場合、もっと簡易的な方法で入力電圧範囲を変更できるほうが望ましい。そう考えて、筆者は簡易型のデータロガーを作るに当たり、外部スイッチを使わずにマイコンの内蔵ポートの出力を切り替えるだけで、入力電圧範囲を0V〜5Vから0V〜20V、−10V〜10Vに切り替える方法を考案した。
図1に示した回路は、米Microchip Technology社のマイコン「PIC」を用いることを想定したアナログ電圧入力回路である。図中のAIN端子を0VからVCCのアナログ入力モードに設定し、DOUT1、DOUT2はデジタル出力に設定する。
この回路の基本的な仕組みは以下のようになる。まず、R1〜R3の抵抗は、入力電圧を分圧する役割を果たす。ここで、分圧抵抗の接地点をハイインピーダンス出力が可能なデジタルI/Oポートに接続する点がポイントである。これにより、使用する抵抗を選択し、接地電圧を0V、VCCと切り替えることができるようにする。言い換えると、この回路では、DOUT1、DOUT2の出力をハイ、ロー、ハイインピーダンスに設定することにより、外付け抵抗を変更することなく、分圧比を変更して入力範囲を切り替えることが可能になる。しかも、正の電圧だけでなく、負の電圧入力範囲も設定できる。さらに、両方のポートをVCC、0Vとすることで、接地電圧を中間点に設定し、正負両電圧に対応したモードも実現可能だ。なお、この例でPICを用いた理由は、同製品では入力保護用のダイオードの最大電流が規定されているため、外部の保護ダイオードを省略できるからである。
この回路ではアナログ入力1つについて、抵抗を3本用いるだけで9種類の入力電圧範囲を設定できる。特にR1=R3=20kΩ、R2=10kΩとした場合には切りの良い分圧比になり、最大分圧比は1/4となる。その主な入力電圧範囲を表1に示す。この表はデジタル出力ポート(DOUT1、DOUT2端子)の状態によって決まる分圧比と入力電圧範囲を表している。
モード | DOUT1 | DOUT2 | 分圧式 | 入力電圧範囲 (Vin) |
---|---|---|---|---|
1 | Z | Z | AIN=Vin | 0〜5 |
2 | Z | L | AIN=Vin/2 | 0〜10 |
3 | L | Z | AIN=Vin/3 | 0〜15 |
4 | L | L | AIN=Vin/4 | 0〜20 |
5 | Z | H | AIN=Vin/2+VCC/2 | −5〜5 |
6 | H | L | AIN=Vin/4+VCC/2 | −10〜10 |
7 | H | H | AIN=Vin/4+VCC×3/4 | −15〜5 |
注)R1=R3=20kΩ、R2=10kΩとした場合の例。A-Dコンバータの電圧入力範囲(AIN端子)は0V〜5Vとし、DOUT1/DOUT2の状態はH=5V、L=0V、Z=ハイインピーダンスとする |
まず、モード1ではDOUT1、DOUT2端子の出力がハイインピーダンスであり、これに接続した抵抗は無効となる。つまり、A-Dコンバータへの入力を分圧せずに直接接続している場合と等価になる。モード2では20kΩの抵抗2本を用いて0V〜10Vを0V〜5Vに変換する。モード4は20kΩと、(20kΩと10kΩの並列合成抵抗である)6.67kΩの抵抗による分圧回路により、0V〜20Vを入力できる。モード5はR3接地点を5Vとすることにより、分圧範囲が負電圧まで広がっている点を特徴とする。最も興味深いのはモード6で、−10V〜10Vの範囲を0V〜5Vに変換できる。また、なるべく負電圧範囲を広げたい場合にはモード7が有用であろう。
もちろん、ここで示した抵抗値はほんの一例であり、他の値でも構わない。例えばR1=10kΩ、R2=2.4kΩ、R3=2.7kΩとした場合には、最大分圧比は約1/9となる。従って、モード4では0V〜45Vを、モード6では−22.5V〜22.5Vを0V〜5Vに変換することが可能である。
表2に示したのは、実際に回路を試作し、デジタルテスターで分圧誤差を測定した結果である。
Vin(V) | モード | AIN(V) | 理論値(V) | Error(%) |
---|---|---|---|---|
3.000 | 1 | 2.999 | 3 | 0 |
3.000 | 4 | 0.751 | 0.75 | 0.1 |
12.03 | 4 | 3.001 | 3.0075 | 0.2 |
3.000 | 6 | 2.402 | 2.4085 | 0.3 |
−6.01 | 7 | 0.975 | 0.985 | 1.1 |
注)VCC=3.317Vで、1/6W型、誤差1%の金属被膜抵抗を使用。抵抗値はR1=R3=20kΩ、R2=10kΩ |
この結果から、最大1%程度の誤差が発生していることが分かる。誤差要因として考えられるのは、デジタルポートの出力抵抗である。その値は、データシートを参考にすると、ソース方向で約200Ω、シンク方向で約70Ωと計算できる。この出力抵抗値は、試作回路で用いた抵抗R2に対し、1%以上の誤差に相当する。従って、これが誤差の主原因になっていると考えられる。試作回路でも、特に負の入力電圧においてはDOUT1/DOUT2の出力電圧が、VCCから出力抵抗分だけ低下していることが確認できる。しかしながら、本稿で例にとったような簡易的な用途であれば、この分圧回路は十分使用できることが分かる。
Design Ideas〜回路設計アイデア集
【アナログ機能回路】:フィルタ回路や発振回路、センサー回路など
【パワー関連と電源】:ノイズの低減手法、保護回路など
【ディスプレイとドライバ】:LEDの制御、活用法など
【計測とテスト】:簡易テスターの設計例、旧式の計測装置の有効な活用法など
【信号源とパルス処理】:その他のユニークな回路
※本記事は、2008年7月29日にEDN Japan臨時増刊として発刊した「珠玉の電気回路200選」に掲載されたものです。著者の所属や社名、部品の品番などは掲載当時の情報ですので、あらかじめご了承ください。
「珠玉の電気回路200選」:EDN Japanの回路アイデア寄稿コラム「Design Ideas」を1冊にまとめたもの。2001〜2008年に掲載された記事の中から200本を厳選し、5つのカテゴリに分けて収録した。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 駆動能力が足りない! 出力電流を手軽に稼ぐ法
オペアンプICに個別トランジスタを“ちょい足し”して性能を高めたり機能を拡充する定番回路集。今回は、オペアンプ単体の駆動能力を超える、大きな出力電流を負荷に供給する方法を紹介します。インピーダンスの低い安価なスピーカーを駆動するといったケースに活用できます。 - 発振器の周波数を1個の可変抵抗で変える
正弦波発振器の課題を解決する回路を提案する。 - SAR型A-Dコンバータの入力バッファ回路
SAR型A-Dコンバータの性能を引き出すには、アナログ信号入力部に、オペアンプを使用した適切なバッファ回路を配置する必要がある。この入力バッファ回路は単純な構成のものでもかまわないのだが、その定数設計は意外に複雑な作業となる。そこで本稿では、最も単純な構成の入力バッファ回路を例に、定数決定手法の詳細を解説する。