この記事でわかること
・オペアンプとの違いから説明するコンパレータの特徴と使い方
・定番IC(LM311、LM339、LM393、NJM2903など)の種類と選び方
・ヒステリシスや、ウィンドウコンパレータ等の各種回路
コンパレータは2つのアナログ電圧を比較した結果をH又はLのデジタル値で出力することから、
アナログーデジタル変換回路の役割を持ちます。
本記事では、コンパレータの特徴について、同じ回路記号のオペアンプとの違いから説明し、
コンパレータICの種類と選び方、定番ICのLM393を使った回路例を紹介します。
本記事はコンパレータの使用方法を参考程度に紹介するものであり、
解説するICの機能や回路の動作を保証するものではありません。
ここで紹介する方法が適切で無い場合がある為、
使用の際は、デバイスのデータシートを必ず確認の上、
記事にある回路の利用については自己責任でお願いします。
コンパレータとオペアンプの違いについて
コンパレータの内部回路はオペアンプと基本的には同じで、
非反転入力(以下、+入力)、反転入力(以下、ー入力)の2つの差動入力を持ち、
その電圧差を増幅して出力します。
この回路動作を用いて、オペアンプは入力信号を増幅する増幅器、
コンパレータは2つの信号を比較する比較器として使用します。
回路記号が同じなので、回路図を見た時、どちらなのかを判別する方法としては、
出力がー入力に接続(負帰還)されていればオペアンプ、
出力が+入力に接続(正帰還)、又は未接続(無帰還)ならコンパレータです。
(負帰還や正帰還は、抵抗やコンデンサを経由して接続される)

負帰還はネガティブフィードバックとも呼ばれ、
出力が増加するとー入力が増えることで、+入力との差を縮める働きをすることから、
オペアンプは+入力とー入力が同じ電圧になるイマジナリーショート(仮想短絡)
となるように出力電圧が動作します。

オペアンプについては下記記事で解説しています。
コンパレータは正帰還(ポジティブフィードバック)や無帰還なので、
ー入力に比べ、+入力が少しでも高ければ、増幅されて出力しますが、
増幅度は非常に大きいことから、コンパレータが出力可能な最大電圧(Hレベル)まで上昇し、
逆にー入力の方が高ければ、最小電圧(Lレベル)まで下降します。
従って、コンパレータの動作は以下となります。
+入力>ー入力の場合 Hレベル電圧を出力
+入力<ー入力の場合 Lレベル電圧を出力
コンパレータの出力には上記のように電圧を出力するプッシュプル出力タイプ(※)の他に、
オープンコレクタ出力タイプがあります。

※プッシュプルは上図の様に、NPNとPNPトランジスタを2段に接続した回路構成により、
出力から電流が流れだす動作(プッシュ)と、流れ込む動作(プル)を交互にすることから、
プッシュプルと呼ばれ、トーテムポール出力とも呼ばれます。
プッシュプルについては下記記事で解説しています。
オープンコレクタ出力は電圧を出力せず、内部の出力トランジスタがON/OFFするだけです。
+入力>ー入力の場合 出力トランジスタがOFF
+入力<ー入力の場合 出力トランジスタがON
このため、コンパレータの出力を次段の回路に接続しただけでは回路に電圧が入力されないため、
配線間にプルアップ抵抗を接続することで、プッシュプル出力と同様にH/L出力となります。
こんな面倒くさい出力にせずに、電圧をそのまま出力すれば良いと思うかもしれませんが、
オープンコレクタにすることで、次段回路の入力電圧レベルに合わせた出力が可能になります。
プッシュプル出力タイプはコンパレータの電源電圧で出力電圧が決まってしまいますが、
オープンコレクタならば、次段回路のH入力電圧レベルに応じた電圧でプルアップすることで、
コンパレータの電源電圧とは関係なく、出力電圧レベルを設定できます。
また、複数のコンパレータ出力を次段の回路に並列接続することもでき、
全てのコンパレータがHレベル時のみ、Hレベルが出力され、
一つでもLレベルならLレベルが出力されるワイヤードAND(論理積)が可能です。
オープンコレクタについては下記記事で解説しています。
オペアンプをコンパレータとして使う方法
先述した通り、オペアンプとコンパレータの内部回路は同じなので、
オペアンプ用ICで負帰還をしなければコンパレータとして動作しますが、
コンパレータ用ICに比べ、応答性が悪いです。

その理由ですが、負帰還を前提としたオペアンプ用ICは発振防止のため、
コンデンサによる位相補償回路が入っており、
帯域が制限(高周波領域での増幅度を低下)されているためです。
負帰還は出力がHなら、その逆となるL出力にする動作を行うことから、
入力信号が高周波で変化すると、出力がHとLでバタつく発振現象が発生しやすくなるため、
位相補償回路で高周波領域の増幅度を下げることで、応答性を下げています。
負帰還で使用しないコンパレータ用ICには位相補償回路が無いため応答性が良いことから、
通常はコンパレータ用ICを使いますが、応答性より検出精度を重視する場合は、
コンパレータ用ICに比べ、入力オフセット電圧(※1)や、入力バイアス電流(※2)が小さい
オペアンプ用ICを無帰還や正帰還にしてコンパレータとして用いるケースもあります。
(但し、コンパレータとしての使用を推奨しないメーカーもある)
※1:オペアンプやコンパレータの差動入力回路で、入力端子間の電圧差が0Vだとしても、
差動入力回路内で生じる微小な電圧差のことで、
オペアンプの出力電圧やコンパレータの検出結果に影響を与える。
※2:理想的なオペアンプやコンパレータは入力インピーダンスが無限大であり、
入力端子に流れ込む電流は0のはずだが、実際に流れる微小電流のことで、
入力バイアス電流が大きい程、入力電圧の電圧降下が大きくなる。
コンパレータとして使うオペアンプは出力電圧範囲が、ほぼ電源電圧(Vー ~ V+)となる
レール・ツー・レール(フルスイング)出力タイプを選びます。
これは、通常のオペアンプを使用すると、単電源動作の場合、
Lレベル出力電圧がGNDよりも1V程度高くなり、次段回路がTTLや3V系CMOSの場合、
Lレベル入力電圧が0.8V以下のため、Lと認識できなくなるからです。
一般的なオペアンプを使用する場合は、出力にNPNトランジスタを接続して
オープンコレクタ出力にする方法もありますが、入力の位相が反転して出力(※3)されます。

※3:+入力>ー入力で、出力トランジスタがONするので、プルアップでL出力となり、
通常のコンパレータ出力とは逆の動作となります。
また、入力電圧についても注意する必要があり、
一般的にコンパレータと比べ、オペアンプは同相入力電圧範囲(※4)が狭いことから、
単電源で使用した場合、GNDレベル付近の低電圧が入力されると、
同相入力電圧範囲外となり、出力が反転してしまう等の異常動作となる恐れがあります。
※4:オペアンプやコンパレータが正常に動作できる入力電圧の範囲のことで、
コンパレータの場合、この範囲外の電圧が入力された場合、
±入力電圧の比較結果とは無関係に、H又はLレベルに出力されてしまいます。
コンパレータICの種類と特徴
※ここに記載する電気的特性についてはメーカーによって異なる場合があるため、
使用の際は各ICのデータシートで確認して下さい。
また、本記事では、コンパレータの出力に接続されるLED等の負荷やIC等を総称して、「次段回路」と記載しています。
オープンコレクタ出力タイプ
<特徴>
・次段回路に電圧を出力したい場合は、プルアップ抵抗を接続する
プルアップ電圧を次段回路の電源電圧に合わせることで、
次段回路の入力電圧レベルに応じたコンパレータ出力にできます。
・複数のコンパレータ出力を次段回路に並列接続できる
ワイヤードAND出力が可能であり、ウィンドウ コンパレータを構成できます。
(ウィンドウ コンパレータについては後述)
・出力電流が大きい
出力L時にコンパレータ内の出力トランジスタに流れ込む(シンク)電流は、
定番コンパレータICのLM393で16mAあるので、LEDやリレーを直接駆動できます。
(但し、シンク電流が増えると、Lレベル出力電圧VOLが上昇するので注意)

・出力の立下りに比べ、立上りが遅い
出力がL→Hになる立上り時は、トランジスタがOFFすると、
プルアップ抵抗Rを経由して次段回路に電流が流れ、
次段回路の入力容量Cを充電することで出力電圧Voutが上昇します。

従って、出力電圧の立上り時間は時定数CRで決まることから、
プルアップ抵抗や入力容量が大きいと立上りが遅くなります。
立下り時はONしたトランジスタを経由して入力容量Cが放電されますが、
プルアップ抵抗は関係ないので立下りは早いです。
このことから、オープンコレクタ出力タイプで高速検出を行う場合は、
HからLの立下りで検出するアクティブ・ローで動作する回路にします。
コンパレータの定番ICの多くは、このオープンコレクタ出力タイプです。
以下にロングセラーとなっている定番ICを紹介します。
記載するメーカー略称は以下の通り。
TI:テキサス・インスツルメンツ、 STマイクロ:STマイクロエレクトロニクス
ONセミ:ONセミコンダクタ、 日清紡:日清紡マイクロデバイス(旧 新日本無線)
ルネサス:ルネサスエレクトロニクス
<汎用タイプ>
LM393:最も広く使用されている2回路入りの8ピンIC
同じ型名でTI、STマイクロ、ONセミ、ローム等から販売されています。
日清紡はNJM393、ルネサスはUPC393となっています。
単電源2~36V、又は 両電源±1~18V
応答時間 1.3us
同相入力電圧範囲 (V‐) ~ (V+)ー1.5V
入力オフセット電圧 ±2mV (25℃ TYP値)
入力バイアス電流 250nA (25℃ TYP値)
使用温度範囲 -40~+85℃

LM339:LM339の4回路版の14ピンIC
LM393と同じメーカから販売されており、
日清紡はNJM339、ルネサスはUPC339となっています。

LM2903:LM393の温度範囲拡張版(125℃まで)
TIやSTマイクロなど、日清紡はNJM2903
NJM2901:LM339の温度範囲拡張版(125℃まで)
TIやSTマイクロなど、日清紡はNJM2901
<高速タイプ>
LM311:オフセット調整やストローブ機能を持つ1回路入りの8ピンIC
TI、STマイクロなど ルネサスはUPC311
単電源5~30V、又は 両電源±15V
応答時間が200nsと早い
エミッタフォロワ出力でも使用可能
オフセット調整端子によりオフセット電圧を調整可能。
ストローブ端子により出力のON/OFFを制御できる
同相入力電圧範囲 (V‐)+0.5V ~ (V+)ー2V
入力オフセット電圧 7.5mV
入力バイアス電流 250nA
使用温度範囲 0~70℃

LM319:2回路入りの14ピンで、応答時間80nsと高速
(オフセット調整やストローブ機能は無し)
TI、STマイクロなど ルネサスはUPC319
単電源5~30V、又は 両電源±15V
同相入力電圧範囲 (V‐)+2V ~ (V+)ー2V
入力オフセット電圧 8mV
入力バイアス電流 1000nAと大きく、汎用タイプより劣る
使用温度範囲 0~70℃

プッシュプル出力タイプ
<特徴>
・プルアップ抵抗なしで電圧を出力できる
出力電圧は電源電圧によって決まるため、コンパレータと次段回路の電源電圧が同じなら、
コンパレータ出力を接続するだけで良いです。
・出力の立上り時間と立下り時間の差が小さい
プルアップ抵抗を使用しないため、オープンコレクタ出力のような立上り時間の遅れが無く、
立下りと同程度の高速動作となることから、対称型の出力波形が必要な用途に適しています。
・出力電流が小さい
オープンコレクタ出力タイプに比べ、一般的に出力電流が小さいです。
(NJU7018で電源電圧3V時に±5mA)
電流が流れ過ぎるとHやLレベル電圧を維持できなくなります。
定番ICと言う程ではありませんが、20年以上前から販売されているものを紹介します。
NJU7109 1回路 5ピン
単電源1.8~5.5V
応答時間 110ns
同相入力電圧範囲 0~2.5V
入力オフセット電圧 4mV
入力バイアス電流 1pA(TYP値)
使用温度範囲 -40~+85℃

コンパレータの使い方
<電源供給方法>
コンパレータの電源供給方法にはオペアンプ同様、単電源と両電源があり、
基本的にはどちらの使用も可能で、例えば絶対最大定格が36Vと記載されていた場合、
単電源と両電源、それぞれの場合において印加できる電源電圧は下図の通りです。

単電源と両電源どちらにするかですが、
以前は0V付近の入力を行うためには両電源にする必要がありましたが、
現在は単電源でも入力電圧が0Vも可能なタイプ(※)があります。
※レール・ツー・レール、フルスイング、グランドセンス等と呼ばれています。
入力電圧に負電圧を入力する場合は両電源にします。
※以下、説明に使用する回路は単電源の場合について記載します。
<入力電圧範囲>
±端子に入力可能な電圧の範囲は、電源電圧よりも若干狭くなっており、
同相入力電圧範囲として規定されています。
例えば、データシートに同相入力電圧範囲が、
+13.0~ー14.5V(両電源±15V時)と記載されている場合、
入力電圧は+電源よりー2V、ー電源より+0.5Vの範囲内で使用する必要がある為、
単電源で使用する場合、入力電圧が0.5V以下だと異常動作となる恐れがあります。
<バイポーラ型とCMOS型について>
コンパレータ(オペアンプも)は半導体の種類によって、
バイポーラトランジスタで構成されるバイポーラ型と、
MOS FETで構成されるCMOS型の2種類に分けられ、一般的に以下の特徴を持ちます。
バイポーラ型 :高耐圧、低ノイズ、広帯域、入力オフセット電圧が低い
CMOS型 : 低消費電力、高速、入力バイアス電流が小さい
使用するコンパレータが、バイポーラ又はCMOSどちらなのかについては、
一般的な表記として、電源端子(+/ー)の記号がバイポーラなら VCC/VEEで、
CMOSなら VDD/VSSです。
コンパレータの基本回路
コンパレータの基本回路は基準電圧Vrefに対し、
入力電圧Vinが高い場合にVoutがH出力する非反転型と、低い場合にH出力する反転型があります。

・非反転型
入力電圧Vinを+端子、基準電圧Vrefをー端子に接続
Vin>Vrefなら、Vout=Hレベル電圧
Vin<Vrefなら、Vout=Lレベル電圧
・反転型
入力電圧Vinをー端子、基準電圧Vrefを+端子に接続
Vin<Vrefなら、Vout=Hレベル電圧
Vin>Vrefなら、Vout=Lレベル電圧
オープンコレクタ出力タイプの場合、
Hレベル電圧はプルアップ抵抗に接続する電源電圧(※)になり、
Lレベル電圧については、単電源時なら0V(※)になりますが、
両電源時については、LM311にあるようなエミッタ出力端子が無い場合は、
Lレベル出力が負電圧になるので注意して下さい。
※厳密には、プルアップ抵抗に流れる電流による電圧降下で電源電圧より少し低く、
出力トランジスタの出力飽和電圧により、完全に0Vにはならない。

反転型、非反転型どちらを使うかについては、
オープンコレクタ出力の応答性がH→Lの方が早いことから、
基準電圧より入力電圧が高い時に検出する場合は反転出力を使い、
低い時に検出する場合は非反転出力を使います。
<プルアップ抵抗の決め方>
オープンコレクタ出力タイプにおいて、
出力L(トランジスタON)時に完全な0Vにならない理由は、
トランジスタにはコレクタ・エミッタ間飽和電圧Vce(sat)があり、
コレクタ・エミッタ間に僅かに電圧が残るためです。
オープンドレイン出力の場合でも、FETのON抵抗Ronがあるので、
ON抵抗×ドレイン電流により、ドレイン・ソース間に電圧が発生します。
このVce(sat)はコレクタ電流が増えると上昇するため、プルアップ抵抗が小さすぎると、
オープンコレクタ出力に流れ込む電流が増えることで、
Vce(sat)が上昇して、次段回路でLレベルと認識できなくなる恐れがあります。
コンパレータのデータシートにおいて、Vce(sat)は出力飽和電圧や、
Lレベル出力電圧VOL等と記載されています。

LM393の場合、電源電圧Vcc=5V、出力電流IOL=4mA時に、VOLが400mVとあるので、
Lレベル出力を400mV以下にしたい場合、プルアップ抵抗の下限Rminは下記式で求めます。
(VccーVOL)/IOL<Rmin
(5Vー0.4V)/4mA≒1.15kΩ
プルアップ抵抗はE24系列から選択すると、1.2kΩ以上にする必要があります。
上限Rmaxについては、出力H(トランジスタOFF)時に次段回路に入力電流Iinが流れると、
プルアップ抵抗Rによる電圧降下(R×Iin)が発生するため、
抵抗値が大きすぎると次段回路への入力電圧が低下してHと認識できなくなります。

このため、次段回路に入力電流Iinが流れ、プルアップ抵抗による電圧降下があっても、
必要とするHレベル電圧VOHより高くなるようにします。
Vccー(Rmax × Iin)>VOH
式を変形すると、
(VccーVOH)/Iin > Rmax
次段回路が74HCシリーズ等のCMOSロジックICの場合、
H入力に必要な電圧が3.15V以上、入力電流が1uAとすると、
(5Vー3.15V)/1uA=1.85MΩ > Rmax
となり、プルアップ抵抗は1.85MΩ以下にする必要があります。
以上の結果から、
1.2kΩ<プルアップ抵抗 < 1.85MΩ
となります。
抵抗値が小さい程、ノイズによる影響を小さくできます(※)が、
その分、抵抗の消費電流が増える為、一般的には4.7kΩや10kΩが使われています。
※プルアップ抵抗値が大きいと、僅かなノイズ電流でも電圧降下が大きくなるため。
プルアップ抵抗の決め方については下記記事で詳しく解説しています。
<基準電圧回路>
基準電圧Vrefを生成する回路は、基本的には抵抗分圧ですが、
精度を要求する場合は、シャントレギュレータによる定電圧回路を使用します。

シャントレギュレータの使い方については下記記事で解説しています。
<応答速度について>
コンパレータに入力されてから比較結果が出力されるまでの応答速度については、
一般的に、オーバードライブ電圧が5mV時の応答時間がデータシートに記載されています。

オーバードライブ電圧とは、コンパレータへの入力電圧と基準電圧の電位差であり、
この電位差が大きい程、応答時間が早くなることから、
応答性を向上させたい場合は、検出時の入力電圧と基準電圧の差が大きくなるようにします。
コンパレータの空きピン処理
LM393等の複数回路入りのICにおいて、未使用回路の入力をオープンにすると、
異常動作が発生する恐れがあり、それが同一IC内の使用回路にも影響を与える場合があるため、
空きピン処理を行う必要があります。

オペアンプについては、出力をー端子に接続するボルテージフォロワ(※)にして、
+端子をGNDに接続します。
※ゲイン1のバッファ回路として動作させる際に使用します。
コンパレータはオペアンプとは異なり、±端子を同相入力電圧範囲内に設定します。
通常の方法としては、±端子ともにGNDに接続します。(単電源、両電源とも)
但し、メーカーによっては、別の処理方法を指定している場合があるので、それに従います。
コンパレータを使った各種回路
ヒステリシス付きコンパレータ
別名、シュミットトリガとも呼ばれるこの回路は、出力を+入力に戻す正帰還にすることで、
ノイズ等の流入により、入力電圧Vinが基準電圧Vref付近で変動した場合でも、
出力Voutが変化しないようにします。

出力がL→Hになる時の入力電圧をVth+、H→Lになる時を入力電圧をVth-とすると、
その差(Vth+ーVth-)をヒステリシス幅Vhと呼び、
出力を反転させるにはVhだけ余分な電圧が必要になります。

ヒステリシス付きコンパレータは、基本回路と同様に、非反転型と反転型がありますが、
ヒステリシス幅を求める式は異なるので注意して下さい。
R1とR2の値については、オープンコレクタ出力タイプの場合、
Rpによる電圧降下が無視できるくらい小さくなるように、
R2はプルアップ抵抗Rpよりも十分大きな値にします。
(Rpが数kΩに対し、R2は数百kΩ程度)
R2が決まれば、R1は設定したいヒステリシス幅から求めることができます。
ヒステリシス幅Vhが大きい程、ノイズに強くなりますが、
その分、入力信号の変化を検出できなくなるため、通常、Vhは数10mV以下にします。
<補足>
上記で示した(1)~(4)式になる理由については以下になります。

ウィンドウ コンパレータ
オープンコレクタ出力タイプのコンパレータ2個を使い、
1つは反転型、もう1つを非反転型にすることで、
入力電圧Vinが設定した電圧範囲(ウィンドウ)内の時のみ、H出力します。

ここでは、2回路入りICのLM393を使用しており、
CH1とCH2のオープンコレクタ出力同士を接続することで、ワイヤードAND出力となり、
両CHのコンパータが共にH出力時のみVoutがHになります。
コンパレータを使ったソレノイド電流制御回路
コンパレータを使った具体例として、ソレノイドに流れる電流を制御する回路を紹介します。

Vinに0~3.3Vのアナログ電圧を入力し、ソレノイドに流れる電流を0~1Aの範囲で制御します。
回路図にはオペアンプとコンパレータが混在していますが、
負帰還のLM358はオペアンプ、無帰還と正帰還のLM393はコンパレータとわかります。
LM358、LM393共に2回路入りICであり、
LM358は1回路未使用なので、オペアンプの空きピン処理をしています。
オペアンプを使用しているのは、マイコン等のアナログ出力は出力電流が小さいため、
次段回路(ここでは抵抗分圧やコンパレータ)に十分な電流が流せないと
コンパレータへの入力電圧低下が起きることから、
ボルテージフォロワでバッファを構成し、出力電流の供給能力をアップさせています。
ボルテージフォロワの出力電圧は入力と同じVinで、これを抵抗分圧し、
Vin=3.3V時に0.68Vとなるようにしているのは、
ソレノイド電流が1A時に検出抵抗0.68Ωにより検出電圧0.68Vになるためです。
1段目のコンパレータ(1/2)では、Vinを分圧した指令電圧と検出電圧を比較し、
指令電圧の方が高ければ出力Hとなります。
2段目のコンパレータ(2/2)はヒステリシス付きとなっていて、
1段目コンパレータ出力が3.06V以上で出力L、2.96V以下で出力Hにすることで、
チャタリングを防いでいます。
先程、紹介したヒステリシス付きコンパレータとは若干回路構成が異なりますが、
基本的な考え方は同じで、ヒステリシス電圧は以下の様にして求めます。

2段目により、出力論理が逆転するので、指令電圧の方が高ければ、
コンパレータ出力はLとなります。
次にデジタルトランジスタ(デジトラ)を設けることで、
ソレノイドをON/OFFするパワーMOS FET(TK15A20D)に十分なゲート電流を流します。
L393では15mA程度しか流せませんが、
RN1425ならFETのゲート電流(本回路では12V/220Ω=55mA)に十分対応できます。
デジトラの選び方については下記記事で解説しています。
指令電圧の方が高い2段目コンパレータ出力L時は、1段目デジトラがOFFとなるので、
2段目デジトラはONとなり、MOS FETがONし、ソレノイドに電流が流れます。
検出電圧の方が高ければ、MOS FETがOFFとなって電流は流れなくなります。
FETのゲート抵抗の選び方については下記記事で解説しています。
1段目コンパレータが指令電圧=検出電圧となるように動作することで、
指令電圧Vin(0~3.3V)に比例したソレノイド電流(0~1A)を流すことができます。
各種ダイオードを使用していますが、その選定理由は下記記事を参照して下さい。