目的
今回は、高速な電圧コンパレータを2つ使用してウィンドウ・コンパレータを実現する方法について検討します。続いて、この手法を採用した低消費電力のプログラマブル温度コントローラ「TMP01」をプログラムする方法を紹介します。
通常、ウィンドウ・コンパレータは2つの電圧コンパレータ(反転型と非反転型)で構成されます。それにより、2つの異なる電圧閾値の範囲内に入力信号が収まっているか否かを表す信号を出力します。上限の電圧閾値VREF(HIGH)を通過する信号が検出されると、一方のコンパレータ(オペアンプがベース)がトリガされます。また、下限の電圧閾値VREF(LOW)を通過する電圧が検出されると、もう一方のコンパレータがトリガされます。つまり、上限、下限を表す2つのリファレンス電圧を使用することになります。それらによって決まる電圧範囲をウィンドウと呼びます。
準備するもの
- アクティブ・ラーニング・モジュール「ADALM2000」
- ソルダーレス・ブレッドボード
- ジャンパ線
- コンパレータ:「AD8561」(2 個)
- NPN トランジスタ:「2N3904」(1 個)
- 小信号ダイオード:「1N914」(2 個)
- LED:色は任意(1 個)
- 抵抗:10kΩ(3 個)、20kΩ(1 個)、470Ω(1 個)
ウィンドウ・コンパレータ
まずはウィンドウ・コンパレータについて、具体的な例を基に検討を進めましょう。
背景
ここでは、図1の回路について考えます。
この回路では、値が等しい3つの抵抗R1、R2、R3で構成される分圧回路を使用しています。各抵抗で生じる電圧降下の値は同じです。つまり、各抵抗によって、リファレンス電圧VREFの1/3に相当する電圧降下が生じます。その結果、上限の電圧閾値VREF(HIGH)は2/3VREF、下限の電圧閾値VREF(LOW)は1/3VREFに設定されます。
まず、入力電圧VINがVREF(LOW)(1/3VREF)よりも低い場合を考えます。その場合、図中で下側に位置するコンパレータの出力はハイになります。その結果、ダイオードD2は順方向にバイアスされます。すると、NPNトランジスタQ1はベース電圧が正であることから飽和領域に入り、出力電圧はローのレベルになります。その結果、抵抗R5とダイオードD3によって電圧降下が生じることから、LEDには電源電圧よりもやや低い電圧が印加されます。このような回路の動作によって、LEDが点灯することになります。
続いて、VINがVREF(LOW)(1/3VREF)よりも高く、VREF(HIGH)(2/3VREFよりも低いケースを考えます。その場合、両方のコンパレータの出力がローになり、ダイオードD1、D2は逆方向にバイアスされます。つまり、Q1のベースには電圧が印加されません。その結果、Q1は切断された状態になり、抵抗R6にもR5、D3にもコレクタ電流は流れません。したがって、出力電圧には電源電圧V+が現れます。
VINがVREF(HIGH)(2/3VREF)よりも高い場合には、上側のコンパレータの出力がハイになります。それにより、D1は順方向にバイアスされます。すると、Q1はベース電圧が正であることから飽和領域に入り、出力電圧はローのレベルになります。その結果、抵抗R5とダイオードD3によって電圧降下が生じることから、LEDには電源電圧よりもやや低い電圧が印加されます。つまり、この場合もLEDが点灯することになります。
ハードウェアの設定
図1のウィンドウ・コンパレータの回路をブレッドボードに実装してください(図2)。
手順
1つ目の任意波形ジェネレータ(AWG1)を入力電圧VINとして使用します。具体的には、ピークtoピークの振幅が5V、周波数が100Hz、オフセットが2.5Vの三角波を生成するように設定します。AWG1の出力W1を回路に印加します。
2つ目の任意波形ジェネレータ(AWG2)は、5Vの固定値を出力するように設定します。その出力W2はリファレンス電圧として使用します。
この回路には、ADALM2000から5Vの電源電圧を供給します。
オシロスコープは、チャンネル1に入力信号、チャンネル2に出力信号が表示されるように設定してください。
図3に示したのが、図1の回路の入出力波形の例です。

この波形を見ると、入力電圧が上下限の閾値電圧の間にあるか否かによって動作が変化することがわかります。つまり、ウィンドウの機能が働いていることが見てとれます。
温度制御のアプリケーション
ウィンドウ・コンパレータを利用したアプリケーションの一例としては、シンプルな温度制御回路(温度センサー)が挙げられます。
背景
温度センサー「TMP01」は、図1に示した回路と同じようなコンパレータ回路を内蔵しています(図4)。外付けの抵抗R1、R2、R3として適切な値を選択すれば、このセンサーによって、温度が所望の範囲内(15°C~35°C)にあるか否かを監視することができます。
TMP01は、温度に比例した電圧を出力する温度センサーです。プログラムが可能なウィンドウ・コンパレータを備えていることを特徴とします。既定の温度に対応するセットポイント電圧を超えた場合に、2つのオープンコレクタ出力のうちの一方を有効化するようにプログラムすることが可能です。セットポイント電圧のプログラミングには、ドリフトの小さい電圧リファレンスを利用します。また、2つのオープンコレクタ出力を互いに接続し、1本のOR出力となるように構成します。それにより、周辺温度がウィンドウ内にある場合に論理レベルのハイが出力として得られるようになります。
TMP01のプログラム
ここでは、固定のセットポイントを使用する基本的なアプリケーションを例にとります。それには、シンプルな抵抗ラダーの分圧回路を利用します。所望のセットポイントをブログラミングする手順は以下のようになります。
- 所望のヒステリシス温度を選択する。
- ヒステリシス電流IVREFの値を計算する。
- 所望のセットポイント温度を選択する。
- コンパレータのSet HighピンとSet Lowピンに所望のセットポイント電圧を設定するために必要な個々の抵抗の値を計算する。
ヒステリシス電流の計算は簡単です。例えば、ヒステリシスを2°Cに設定する場合、IVREFの値は17µAとなります。次に、VPTATの温度係数を使用して、セットポイント電圧VSETHIGHとVSETLOW の値を求めます。VPTATの温度係数は、5mV/K = 5mV/([摂氏温度]+273.15)で求められます。25°Cの場合であれば1.49Vです。続いて、これらのセットポイントを基に、分圧用の抵抗の値を計算します。それには以下に示す式を使用します。
VSETHIGH = (TSETHIGH + 273.15) (5 mV/°C)
VSETLOW = (TSETLOW + 273.15) (5 mV/°C)
R1(kΩ単位)= (VVREF − VSETHIGH)/IVREF = (2.5 V − VSETHIGH)/IVREF
R2(kΩ単位)= (VSETHIGH − VSETLOW)/IVREF
R3(kΩ単位) = VSETLOW/IVREF
R1 + R2 + R3の合計値は、所望のヒステリシス電流IVREFをリファレンスから得るために必要な負荷抵抗の値と等しくなります(以下参照)。
IVREF = 2.5 V/(R1 + R2 + R3)
VREFは2.5Vなので、リファレンスに対応する負荷抵抗の値が357kΩ以上(出力電流が7µA以下)の場合、温度のセットポイントのヒステリシスは0°Cとなります。負荷抵抗の値がそれよりも大きい場合、出力電流が7µA未満に低下するだけで、デバイスの動作に影響はありません。ヒステリシスの大きさは、VREFに対する負荷抵抗の値を選択することによって決まります。
課題
1. 図5の回路を実装してください。
1a. VPTATの出力値を測定し、実際の測定温度をケルビンと摂氏の単位で計算してください。
2. 図6の回路を実装してください。
2a. コンポーネントの値を確認し、回路図を作成してください。
2b. ブレッドボードの回路から得られる情報を使用して、次のパラメータの値を計算してください。
- IVREF
- VSETHIGH
- VSETLOW
- TSETHIGH
- TSETLOW
2c. 温度のセットポイントのヒステリシスは何°Cになりますか。その値を変更するにはどうすればよいでしょうか。
2d. この回路はどのように動作しますか。LED1(赤色)とLED2(青色)はどのような場合に点灯するのでしょう。なぜそのようになるのか説明してください。
問題
1. 図1の回路について、VREF(LOW)とVREF(HIGH)を、R1、R2、R3、W2を使った式で表してください。抵抗の値がすべて等しい場合、VREF(LOW)とVREF(HIGH)の比はどのようになりますか。
答えはStudentZoneで確認できます。