ノイズと中立信号

中立信号ってなんだ?

少し回路が組めるようになった時、ふと疑問に沸く点があります。
マイコンの入力信号が無いとき、つまり何も繋げていない時はソフトウェア上では0か1かどっちで認識されているんだろう? また、オシロスコープを始めて触ったとき、何も繋がっていないのにこの信号は何?
何も繋がっていない時の信号を中立信号と呼んでいます。しかしネットで調べても色々な文献で調べてもそのような呼び方は見当たりません。 もしかしたら筆者との携わった人の間だけで知られた言い方かもしれません。正式な言い方で無いと分かっていても状況と中立信号という単語から伝わるのでずっとその言い方をしていて、回路を組む時にはそれを認識しておく必要があります。

世の中にはさまざまな電波が飛び交い、周辺にはさまざまな家電や機器が稼働し、いたるところで磁界も発生しています。
つまりそれらの電波や磁界は製作している電子回路にも影響しています。 その影響している信号が中立信号の基であり、一般的にノイズと言われる信号です。

何も繋げていないオシロスコープに表示される信号はノイズであり、マイコンの場合はソフト上で確認してみるとONだったりOFFだったりして定まりません。
マイコンに供給される信号電圧が0.5Vの場合、マイコンは「1なのか?それとも0?」と不安定な状態になってしまいます。

プルアップ?プルダウン?

そこでマイコンなどのデジタル回路の入力に関して、「レベル固定(1か0)」や「ノイズの影響を排除」するためにプルアップやプルダウンという抵抗を入れます。

プルアップ抵抗では・・・
SWがOFFの時、INはVCCに接続されHighになっています。 INにはほぼ電流が流れないので、Rの両端の電圧は等しくなっています。(IN端子はVCCと同じ電圧) SWをONにすると、INはGNDに接続されLowレベルになります。

プルダウン抵抗では・・・
SWとRの位置が逆になっていますね。
SWがOFFのとき、INはGNDと接続されています。 このときマイコンはLowレベルと判断します。

5Vの回路を組む場合、プルアップには4.7k~10kΩ、プルダウンには1kΩがよく使用されています。弊社で組む回路の場合、マイコンへの入力信号はプルアップとし、Lowレベルかどうかで0又は1の判定処理をしています。もう少し具体的に説明するとマイコンの電源にもよりますが0.15V以上なのか、それ以下なのかで判定し、0Vに近いほうをHi、つまりONとして処理しています。電圧がかかっていないほうをONという事は一般的に電圧がかかっているのがONと考えてしまう常識に対して反転しています。

デフォルトはプルアップでしょ。

というのも回路によっては100m先の機器と接続していた場合、手元のマイコンではプルアップやプルダウンの抵抗に加え、線の特性も考慮しなければならなくなります。経由する電線が長いという事はその線の抵抗による電圧降下やノイズが影響の影響を受けることとなります。そういった場合、プルダウンとした回路の場合は100m先の機器でONとしても手元のマイコンで取得する電圧は4Vを切ることはよくあり、その道中のコネクタの数やノイズによってはだんだんと判定の電圧による0.15Vに近くなります。
その点で電気の特性上、プルアップの回路にしておいたほうがONにした時の0.15V以下に収まる安定性が高く、回路全体としても安定性が高まります。
また、状況によってマイコン側のプルアップを50Ωとし、スイッチONしたときに0.1A程度流すことでノイズの耐性を上げるといった組み方をする場合もあります。

最後に・・・

このプルアップをデフォルトにするのかプルダウンをデフォルトにするかは設計者や会社によって考え方が違うようです。筆者も取引先によってはプルダウンで電圧がかかった場合にONとするのがデフォルトと指示される場合もあり、当然ながらそれに合わせる場合もあります。
個人的な経験上プルアップの回路としたほうが安定すると考えていますが絶対ではなく推奨的として柔軟に対応事も必要と認識するのが望ましいでしょう。