「天文屋のためのマイコン入門」デジタルの3つの状態
マルツパーツより部品が届くのが3月27日だそうです。まだ先なので、理屈の話をします。今日はデジタルの3つの状態についてお話します。
下図はマイコンとかデジタルICとかのデジタル素子をあらわします。
図のようにデジタル素子には普通、入力とか出力があります。今このデジタル素子に電源が投入されていて、動いているとします。そうすると、デジタルの出力は'0'か'1'です。もし電源が5Vなら、0Vか5Vです。
次に入力側を見てみましょう。入力ですから外部から、'0'を入力された状態と'1'を入力された状態の2通りがあります。
実はもう一つの状態があります。「何も接続されていない状態」
これを、ハイインピーダンス状態といいます。インピーダンスとは抵抗です。ハイインピーダンスとは抵抗が無限に高い状態、つまり絶縁状態ということです。
何も接続されていないから、'0'では、と考えるのは間違えです。その違いを体感してみましょう。デジタルテスタを用意して、電圧測定モードにします。
プローブを何も接続していないと、電圧表示は数mAから数百mAで安定しないと思います。これがハイインピーダンス状態です。
一方、プラスとマイナスのプローブをショートさせると0Vで安定します。これがデジタルの'0'です。
'0'は、0Vを出力してあるから0なのです。何も接続していない、あるいは何も出力していない状態は、'0'ではありません。
さて、ここからが重要ですが、デジタル回路は「ハイインピーダンス状態」を嫌います。理由は次の通りです。
1 ハイインピーダンス状態は不安定で、周りの環境に影響されやすく、'0'にでも'1'にでもなる。したがって、機械が予期しない動きをする。
2 入力側がハイインピーダンス状態の場合、周りの環境の影響により、一時的に大電流が流れ、ラッチアップという現象を起こし、デジタル素子を壊す恐れがある。
例題
一つ具体例を示します。
次はマイコンの入力ポートにスイッチを付けて状態を読み取る回路です。
スイッチがONの時は、5Vに接続されますから、入力ポートからは'1'が読まれるはずです。
スイッチがOFFの時は、何も接続されず、ハイインピーダンス状態になります。この場合は不安定です。'0'と読まれる確率の方が高いのは確かですが、'1'と読まれる確率もそう低くはありません。
ポート入り口近くに、抵抗を介しGNDに接続します。こうすると、抵抗を介しているとはいえ、GNDに接続されているので、'0'が確定します。このような処置をプルダウンといい、このとき使う抵抗をプルダウン抵抗といいます。
抵抗を間に入れる理由は、抵抗を入れないと、スイッチがONの時、ショートしてしまうからです。抵抗値は数K~10KΩくらいが普通です。
さて、今の例は正論理のスイッチ入力ですが、論理を反転した負論理のスイッチ入力の場合は次のようになります。
スイッチがONの時は、GNDに直結されるので、'0'が読まれます。
スイッチがOFFの時は、抵抗を介し5Vに接続されるの'1'が読まれます。
この場合はプルアップといい、抵抗をプルアップ抵抗と言います。
世の中、デジタル回路を見渡してみると、プルアップの方が圧倒的に多く、プルダウンはあまり見ません。理由の一つには、デジタルの世界では、負論理の方が多いからだと思います。私もマイコンとの付き合いが長いので、負論理の回路の方が普通に見えてしまいますが、一般の人からすると、正論理の方が分かりやすいでしょう。
さて、例題の2つ目です。次の図はマイコンの出力ポートに何かの装置がつながれています。何かの装置は、たとえばモーターとかです。
実は、多くのマイコンは電源投入直後は、ポートは入力状態になっています。つまりハイインピーダンス状態です。プログラムで初期化して、わざわざ出力状態にするのです。
ということは、電源を入れて、プログラムで出力に設定するまでの、ほんのわずかの時間ですが、ハイインピーダンス状態になってしまいます。
出力先が、LEDとかなら別にいいのですが、モーターとか動く物なら誤動作の原因になりますし、大きな機械なら、最悪、人命にだって影響するかも知れません。
そこで、電源投入直後の不安定状態を解消するために、次のようにプルップしてやるので正解です。
●プルアップ抵抗を内蔵しているものもある
マイコンのポートの中にはプルアップ抵抗を内臓しているものもあります。ただし、この機能を利用するのに、プログラムで初期設定が必要な場合があります。PICがそうです。
この場合、内蔵のプルアップ抵抗を使う場合は注意する必要があります。
1 電源投入から、初期設定は終わるまでは、プルアップがない状態であるので、機械の誤動作に注意する必要がある。
2 重要な装置を作る場合は、マイコンが壊れた場合も想定する。つまりマイコンが壊れてプルアップ機能が使えなくても、装置が不安定な動きをしないようにする。
以上のような理由から、よほどコストを削減したい場合を除き、プルアップ抵抗は外部に付けておいたほうが無難といえます。
最後にマイコンの未使用ピンの処理について話しておきます。マイコンの未使用ピンのうち、入力方向のもの(つまり全ポートも含む)は、ハイインピーダンス状態になっているので、'0'か'1'かに確定させておく必要があります。
5V、GNDどちらでも良いです。半田付けしやすいほうにすればよいでしょう。また抵抗を入れる必要はありません。
今日はここまで、お疲れ様でした。
| 固定リンク
コメント