GPIOに入力される信号は、実際の回路においては電気信号ですので、何ボルト以下が0で、何ボルト以上が1になるかを知っておかないと、押しボタンスイッチの回路は作れません。マイコンのようなデジタル論理回路で0と1の2値の境をきめる値を「閾(しきい)値」(Threshold:スレシュホールド/スレショルド)といいます。マイコンの内部回路ではCMOSで信号を受け取りますので、CMOSを構成するPMOSとNMOSがオン/オフする電圧値が閾値になります。
図3を見てください。
GPIOの入力電圧レベルをGNDレベル(0V)から、徐々に高くし、電源レベルに至ったら、徐々に低くしていきます。GPIOは、入力電圧を最初0として認識していますが、ある電圧より高くなると1と認識するようになります。この境目の電圧が閾値電圧です。さらに、電圧が下がってきて、再び同じ電圧値に達すると、再び0と認識します。
一方、ノイズが入っても安定動作できるように、閾値を2つ持つGPIOもあります。
0から1へ変化するの閾値と、1から0へ変化する閾値を異なるようにしたものを「シュミットトリガ特性」といいます。
図4を見てください。
図3の場合と異なる点は、1から0へ変化する閾値と0から1へ変化する閾値が異なっているという点です。この2つの点の電圧差を「ヒステリシス特性(電圧)」と呼びます。
一度、1または0と認識したら、ノイズが入ってきても、その電圧の振れ幅がヒステリシス特性内に入っていれば、GPIOの認識する値(0/1)は変化しません。すなわち、ノイズに強いといえます。
リセット端子とか割り込み端子とか通信のクロック信号などで、ノイズ(電圧変動、チャタリングなど)による誤動作を防止するために用いられています。
入力特性の呼び名も各マイコンで異なりますが、一般的にHの閾値はVIH、Lの閾値をVILと呼んでいます。
Copyright © ITmedia, Inc. All Rights Reserved.