ARMマイコンに内蔵された周辺デバイスの使い方を学ぶ−GPIO 出力編−:「mbed」で始めるARMマイコン開発入門(5)(2/3 ページ)
ARMマイコン「LPC1114」にはさまざまな周辺デバイス(ペリフェラル)が内蔵されていますが、今回は最も基本的な周辺デバイスの1つ、GPIOの出力について勉強します。
オープンドレイン
LPC1114のdp5とdp27は、内部でドレイン端子が接続されていないオープンドレインです。オープンドレインの話をする前に、ほかのピンが出力ピンとして設定されたとき、内部回路はどうなっているか見てみましょう。
図3をご覧ください。オープンドレインでない出力ピンは2つのMOS FETによってプラス側かグランド側のどちらかにつながった状態になっています。このような構造をCMOSといいます。MOS FETには3端子あり、それぞれの端子にはゲート(Gate)、ドレイン(Drain)、ソース(Source)と名前が付いています。この名前の付けかたは電子の流れを意識したものなので電流の流れとは逆になっています。
簡単に言えばこのMOS FETは電流の流れを制御するスイッチのようなものです。蛇口に例えるとソースが水が供給される水道管につながります。ドレインが水が出る蛇口、ゲートが蛇口を開け閉めするコックとなります。
この出力ピンに1をセットすると、上側のMOS FETのみがONになりプラス電源とピンがつながります。よってピンの電圧は電源電圧に近い値になります。図3のように配線された発光ダイオードは点灯します。一方このピンに0がセットされると、下のMOS FETがONとなりこのピンはグランドに接続されます。このピンの電圧をグランドレベルになり接続した発光ダイオードは消灯します。
ただ流せる電流はというと(MOS FETの能力によりますが)、この様なマイクロコントローラーに内蔵されているものの場合、数mAから数10mAといったところで、LEDを点灯させるのが精いっぱいです。それ以上電流を流そうとするとこのピンの出力段のMOS FETが破損する場合がありますので注意してください。くれぐれもGPIOを出力ピンに設定する場合、抵抗なしでLEDにつないだり、GNDや電源につながっていないか確認してください。CMOSタイプの出力ピン同士をつなぐことも禁物です。
それではオープンドレインの場合を見ていきましょう(図4)。オープンドレインはグランドにつながったMOS FETのみ構造となっています。オープンドレインの出力ピンを1にセットするとこのピンはグランドに短絡し、出力電圧はグランドレベル(ほぼ0V)となります。LPC1114の場合、プログラムでセットした値を反転してゲートに入力しています。
一方、このピンに0をセットすると、MOS FETはオフになり、どこにもつながっていない状態となります。これをハイインピーダンス状態といいます。この状態ではデジタル的に0とも1ともどっちとも付かない状態なので、図のようにプラス電源とピン間に抵抗を入れます。これをプルアップ抵抗といいます。この抵抗によりハイインピーダンス状態では1となり、0か1かが必ず決まります。
このピンに対してプログラムから0をセットした場合、ピン自体はハイインピーダンス状態ですが、このピンは抵抗を通してプラス電源に引っ張り上げられていますので、結果として出力は1となります。
ではこのピンにプログラムから1をセットした場合はどうでしょう。MOS FETはオンになりピンにつながったドレインはグランドに短絡します。一般的にプルアップ抵抗は数百Ωから数KΩですので、プラス電源から抵抗を介して流れてきた電流のほとんどはドレインからソースを通ってグランド側に流れます。結果として出力は0となります。
それではオープンドレインのピンに発光ダイオードをつないで見ましょう。まず図5のように発光ダイオードを接続してみましょう。プログラムから0をセットしたときはMOS FETのドレインはどこにもつながっていませんので、発光ダイオードはプルアップ抵抗から流れてきた電流で点灯します。プログラムから1をセットしたときはMOS FETがオンとなりドレインとソースがつながります。その結果今まで発光ダイオードに流れていた電流の大部分は内部のFET側を通ってグランドに流れ込みます。よって発光ダイオードは消灯します。
今度は図6の発光ダイオードのつなぎ方も見てみましょう。発光ダイオードのカソード側がオープンドレインのピンにつながっています。プログラムからこのピンに対して0を書き込んだとき、このMOS FETはオフですのでピンはハイインピーダンスの状態ですから、発光ダイオードのカソードからの電流はどこへも流れようがありません。よってこの発光ダイオードは点灯しません。1をプログラムから書き込んだ場合はどうでしょう。MOS FETはオンとなり発光ダイオードのカソードはグランドに落ちますので、電流が流れ発光ダイオードは点灯します。
ちなみにオープンドレインと呼ばれるのは出力段の半導体がMOS FETなので、その端子の名前にちなんでいます。出力段がバイポーラ型のトランジスタの場合はオープンコレクタと呼ばれます。
Copyright © ITmedia, Inc. All Rights Reserved.