今岡通博氏による、組み込み開発に新しく関わることになった読者に向けた組み込み用語解説の連載コラム。第3回で取り上げるのは「プルアップ抵抗」だ。
今回の連載「今岡通博の俺流!組み込み用語解説」はプルアップ抵抗について深堀りしてみたいと思います。
実は、前回はトランジスタの解説をしたのでその次の段階としてオープンコレクタについて書こうと思ったのですが、これを説明する前にプルアップ抵抗について話しておかないと次には進めないと感じたのです。組み込み技術者の中にはI2CやSPIあるいはUARTなどに興味のある読者が多いとは思います。そんな方々にとってはさらに遠回りに感じるかもしれません。ですが、連載各回の記事に興味を抱いてもらって最後まで読むモチベーションを持続してもらう何らかのメッセージを提示するのがこの「はじめに」の役割と思っています。
何らかの入力デバイスをマイコンの入力端子に接続してその値を観測する際に、その値が不安定だった経験はないでしょうか。このとき、大いに役立つのがプルアップ抵抗です。
例えば、タクトスイッチをマイコンの入力端子に接続して、そのタクトスイッチが押下されているか否かを判断する回路とプログラムを作ったとします。このとき、タクトスイッチが押下されるとグランドに短絡するという設定の場合に、マイコン側ではタクトスイッチの押下を0の値として検知するのですが、押下されていないときの値がやたらバタつく経験をしたことはないでしょうか。これは、マイコンの入力端子がハイインピーダンス状態、いわゆる非常に高い抵抗値を持っていて、+電位あるいは0V電位ではなくどこにも接続されていない状態であり、マイコン側で入力端子の電位が決まらない状態になります。そのような状態は非常に不安定でさまざまな誤動作の原因になります。
その対策に用いられるのがプルアップ抵抗です。電気/電子技術者から組み込みエンジニアになった方、また逆にソフトウェアや情報工学系からこの分野に飛び込んだ方、そしてその双方を経験している方も本連載の読者だと想定していますが、今回はソフトウェア系から組み込み分野に来た方にはぜひ知って頂きたいと思います。最後まで楽しんで頂ければ幸いです。
図1はプルアップ抵抗を用いた典型的な入力回路です。
マイコンの入力端子にタクトスイッチ(SW)を接続しています。加えて、マイコンの入力端子の付け根にプルアップ抵抗(R)を接続し、抵抗の一端をマイコンの供給しているプラス電源(VCC)に接続します。タクトスイッチ(SW)の一端はマイコンの入力端子に接続しSWのもう一端はグランド(GND)に落とします。
まずは、タクトスイッチが押下されていない状態から見ていきましょう。この状態ではプルアップ抵抗を介してプラス電源(VCC)につながっているだけの状態です。ですからマイコンの入力端子にはプラス電源の電圧が加わっている状態です。ですから、入力端子の値が読み込まれると1が検出されます。
次は、タクトスイッチが押下された状態を見ていきます。マイコンの入力端子はタクトスイッチを介してグランドに落ちます。このため、マイコンの入力端子の電圧は0Vまで落ちるので、その値を読み込めば値は0となります。ここで考慮するのはプルアップ抵抗の値ですが、仮に2kΩとしましょう。また仮にVCCの値を5Vとすると、5÷2000の2.5mAがタクトスイッチを通してグランドに流れ込みます。しかし、マイコンの入力端子の電位はグランド電位、すなわち0Vとなります。
それでは、プルアップ抵抗がない場合にはどうなるのでしょうか。タクトスイッチが押下された状態から見ていきます。プルアップ抵抗がある場合と同様に、マイコンの入力端子はタクトスイッチを介してグランドに落ちるので、マイコンの入力端子はグランド電圧まで落ち、0V電位が入力端子にかかります。それで端子の値をマイコンが読み込むと0となります。
一方、プルアップ抵抗なしでタクトスイッチが押下されていない場合、マイコンの入力端子はどこにも接続されていない状態になります。このとき、入力端子は高いインピーダンス状態となり、周囲の電界に値が翻弄(ほんろう)されてしまいます。要は、マイコンの入力端子が0か1か決まらない状態に陥ってしまうのです。デジタル回路ではこのような状態は絶対に作ってはなりません。
プルアップ抵抗があれば、タクトスイッチが押下されていてもそうでもない場合でも、マイコンの入力端子の電位がハイかローの2値を必ず決められるようになるのです。
Copyright © ITmedia, Inc. All Rights Reserved.