プルアップ抵抗とは?
デジタル回路の信号としての電圧は、"Hi" または "Low" の電圧が常に印加されていなければならず、"Hi" と "Low" の中間電圧の状態では、誤動作を起こす場合がある。また、回路の入力端子がどこにも接続されていないような「浮いている」状態があると、周囲の静電気や電磁誘導による電流の侵入によって、高電圧が印加される場合もある。その対策として、プルアップ抵抗やプルダウン抵抗が用いられる。
MCLRを例に解説してみる
PICのMCLRは、電圧が ローレベル (VSSと等しい電圧) になった場合、PICがリセットされる端子
PICにリセットスイッチを付けてみる
この場合、S1をONにするとMCLRに掛かる電圧がVSSとなってPIDがリセットされる
だけど...
S1がOFFの場合どうなる?
S1がOFFの時、MCLRはどこにも繋がっていない(オープンな)状態となる
この時MCLRに掛かる電圧は 不定
→ 周囲の回路からの電磁誘導や静電気等のノイズによって電圧が左右される不安定な状態
基本的に、デジタル回路の端子に掛ける電圧は、ローレベル(VSS)かハイレベル(VDD)のどちらかで無いとダメ
→ 不定な電圧が掛かると、挙動が不安定になる
そのため、S1がOFFの場合にMCLRがローレベルで無いことを保証するために、VDD(ハイレベル)と等しい電圧を掛ける必要がある
これを プルアップ という
ちなみに、逆にハイレベルでない時にローレベルで固定するのは プルダウン という
プルアップ抵抗
上記ままの状態だと、S1をONにした時にVDDとVSSが直結されてしまう
抵抗がない状態で電圧を掛けると、オームの法則により無限の電流が流れる → ショート
(VDD-VSS)/0Ω = ∞A
実際は配線にも微細な抵抗があるので無限とは行かないが、非常に大きい電流が流れて、発熱やら機器の破損やらが発生する
そのため、適当な抵抗を挟んでS1がONの時にショートが発生しないようにする
プルアップ抵抗の抵抗値ってどれくらいで良いの?
色々要因があるけど、大体10kΩで良いらしい
要因?
本当にいろいろある
抵抗値が大きい場合の問題
- 極端に大きいとオープンにしているのと大差ない
- あまり大きいと、スイッチOFF時にも MCLRに掛かる電圧がHIGHとなる最低電圧 以下になる
-
Vdd-Vss=5V
の場合、(4V)以上になるような抵抗値以下でなければならない - MCLRに流れる最大電流(5μA)より、
Rp < 1V/5μA = 200kΩ
-
-
- 以下でも、制限ギリギリの抵抗値の場合、電磁誘導ノイズ等で回路電流が上下した時に、 MCLRがHIGHとなる最低電圧 以下になってしまう可能性があるので、余裕をもたせる必要がある
- 特にスイッチと回路の間に距離がある場合、導線がアンテナになって色々なノイズを受けるので影響が大きい
- スイッチでのデジタル入力。その2 - Aitem-Lab -
- 用語解説 電磁誘導ノイズ 用語集 インバータ FREQROL | 三菱電機 FA
- 抵抗値が大きいと、素早くON/OFFを繰り返す場合、PICの浮遊容量(回路上に意図しない形で発生した擬似的なコンデンサの容量)の為に、パルスが減衰してしまい、誤動作の原因となる
- 大きすぎると、
I=E/R
より、回路に流れる電流が小さくなるため、スイッチに流れる電流が最低電流(性能を保証する電流値)以下なってしまう
抵抗値が小さい場合の問題
- 極端に小さいとショートしているのと大差ない
- 抵抗が小さすぎると
I=E/R
より、スイッチON時の消費電流が大きくなる