シュミットトリガ回路をシミュレーションしてみた

チャタリングを防ぐために、シュミットトリガを使うことがあります。
本記事では、オペアンプ(コンパレータ)を使ったシュミットトリガ回路をLTspiceシミュレーションします。

シュミットトリガ

電子工作をする場合、押しボタンを使うような場面も出てくることでしょう。

ボタンを押す際には、チャタリングが生じます。すなわち、高速のON/OFF動作が発生します。

ウィキペディアによれば、Contact bounceとも呼ばれ、機械的振動に起因するらしいです。水銀スイッチを使うと、チャタリングが発生しないらしいので、きっとそうなのでしょう。

チャタリングが発生すると、ボタンを何回も押したことになり、誤動作につながります。

チャタリングを回避する方法の一つとして、シュミットトリガを使う方法があります。

ヒステリシス

ヒステリシス

シュミットトリガは、出力状態が反転するのに伴って入力閾値が変わり、ヒステリシスを発生します。このヒステリシスの範囲であれば、入力が揺らいでも出力が反転しません。
コンパレータを使ったシュミットトリガは、ヒステリシスコンパレータとも呼ばれます。

チャタリングをシミュレーションしてみよう

チャタリングをシミュレーションしてみましょう。

チャタリングのシミュレーション

チャタリングのシミュレーション

まず、遷移の遅い波形V1を作ります。ここでは、振幅が1Vで200Hzの正弦波にしましょう。

次に、揺らぎV2を重ね合わせます。これも正弦波にしましょう。振幅が0.3Vで、10kHzにすることにします。(いきなり具体的な値を書いていますが、何度かカット&トライしています)

信号源インピーダンスは、高速回路をちょっと意識して、25Ωにします。

コンパレータにはオペアンプを使うことにします。オペアンプは位相補償がかかっているので、動作が少し遅くなりますが、究極の特性を要求しているわけではないので、よしとします。

Edit → Componentを選んで、入力欄にopとタイプしたらOP07が選ばれました。ウェハ段階で入力オフセット電圧をトリミング調節している、高精度で使い易いOPAMPなので、これを使うことにします。

OP07の電源は±3~±18Vということなので、手ごろな±5Vとしました。

OPAMPの出力端子は、動作に影響を与えないように、1GΩを接続しました。

チャタリング

チャタリング

入出力にINとOUTという名前を付け、シミュレートしてみると、それらしくチャタリングしてくれました。

シュミットトリガ回路を設計してみる

では、シュミットトリガ回路を設計してみましょう。

シュミットトリガ(ヒステリシスコンパレータ)

シュミットトリガ回路(ヒステリシスコンパレータ)

先ず、OPAMPには、最大で1mAくらいを流すこととしましょう。もう少し大きくてもいいですが、これくらいが相場です。

OPAMPの出力の最大値、最小値は、それぞれ正負の電源電圧付近となるので、(R3とR4の)合計値として大体5kΩ位を付ければよいことになります。

前節で、チャタリングをシミュレーションした回路の閾値は、グランドレベルでした。しかし、今度は、正の値の信号入力を上げていく途中で、閾値を負の値に変更したいので、反転入力に信号を入れます。すなわち、閾値は、出力をR3とR4で抵抗分割して作ります。ここでは、閾値を出力振幅の約1/10にすることとします。

以上をざっくりと勘案して、R3、R4をそれぞれ4.7kΩと470Ωにすることにしました。この中間の電圧を非反転入力にフィードバックすれば、できあがりです。

シュミットトリガ回路のシミュレーション波形

シュミットトリガ回路のシミュレーション波形

シミュレーションしてみました。
確かに、出力が反転するタイミングで、閾値が変わり、チャタリングが無くなっています。

オペアンプの出力電流

オペアンプの出力電流

オペアンプの出力電流は±800uAくらいでした。出力電圧がRail to Railでなかった(電源電圧までの出力が出なかった)ため、設計より少し小さい電圧でしたが、まずまずの結果でしょう。
めでたしめでたし。

でも、ちょっと待ってください。
INとOUTの電圧をそれぞれ横軸と縦軸としてプロットしてみましょう。

入出力特性

入出力特性

10kHzの正弦波を重畳しているので、いびつなヒステリシスになっていることは多めに見ることとして、直線部分が主に第2象限と第4象限にあることに気付きます。

前述のシュミットトリガのグラフは主に第1象限と第3象限に直線部分がありました。よって、どうしてもそちらと同様の形状にしたいのであれば、出力にインバータを1段入れる必要があります。

インバータを入れずに第1象限と第3象限に直線部分を作るシュミットトリガ

ウィキペディアに示されたシュミットトリガ回路

ウィキペディアに示されたシュミットトリガ回路

ウィキペディアでシュミットトリガを調べると、インバータを入れずに第1象限と第3象限に直線部分を作るシュミットトリガの構成が書かれています。

閾値電圧は、出力電圧をR1とR2で分圧した電圧とのことですので、R2をR1の約10倍に選んで220Ωとしました。

ウィキペディアに示された回路のシミュレーション波形

ウィキペディアに示された回路のシミュレーション波形

この回路構成でも、確かにチャタリングはなくなります。

ただ、出力のレベルは、入力電圧にかなり影響されています。この影響を避けるために出力にツェナダイオードを入れるようです。(ウィキペディアには、電源電圧の変動を受けないようにツェナダイオードを入れると書いてあるので、本来の理由はそちらなのかもしれませんが、この出力波形を見ると確かに入れたくもなります。)

ウィキペディアに示された回路の入出力特性

ウィキペディアに示された回路の入出力特性

入出力でヒステリシス波形を書くと、確かに、第1象限と第3象限に直線部分があります。

ウィキペディアに示された回路の出力電流

ウィキペディアに示された回路の出力電流

出力電流はおおよそ±15mAでした。オペアンプで出せない電流ではありません。ただ、入力電圧に依存して変わることが見て取れます。

まとめ

シュミットトリガの構成を2通り示し、どちらの構成でもチャタリングの発生を防げることをシミュレーションで示しました。

自分が実際に使うとしたら、前者の構成を選びます。理由は、(1)閾値が明確であること、(2)出力電流を入力電圧や入力インピーダンスとほぼ無関係に設計できることです。

コメント

タイトルとURLをコピーしました