ポート・GPIO

信号を入力する場合の使い方

マイコンに信号を入力したい場合、どのようなことに注意すればいいでしょうか。
たとえばマイコンに“L”信号を入力したい場合を考えてみましょう。
出力部が“H”を出力している場合、“L”信号と“H”信号が干渉してしまうため、
入力部の入力電圧はどちらになっているかわかりません。


そこで、制御部にてトライステートの出力部を“ハイインピーダンス”出力にします。
“ハイインピーダンス”出力では“H”を出力するPMOSも“L”を出力するNMOSもOFFされているため、
マイコンに入力された信号に干渉せずに済み、正常に入力部に信号入力が可能となります。

さて、ここで出力部をハイインピーダンス出力にする方法を、
ラピスセミコンダクタのマイコンML62Q1000シリーズを用いてご紹介します。
ML62Q1000シリーズでは、Pn1OEというSFRを0に設定すればハイインピーダンス出力にすることが
できます。また、入力部を有効にするPn1IEというSFRがあり、これについては後ほど説明します。

VIL・VIHについて

さて、入力部の入力端子に電圧を入力するということはわかっていただけたと思いますが、
どこからどこまでの電圧が“L”として検出され、どこからどこまでの電圧が“H”として
検出されるでしょうか?
その答えは、データシートに記載されているVIL(Voltage Input Low)
およびVIH(Voltage Input High)にあります。
ここでラピスセミコンダクタのマイコンML62Q1000シリーズのデータシートでVIH1とVIL1を
見てみましょう。
VDDはマイコンの電源電圧です。

VILには、入力電圧が“L”として検出される範囲(例:VIL=0~0.3xVDD)が、
VIHには、入力電圧が“H”として検出される範囲(例:VIH=0.7xVDD~VDD)が記されています。
また、上記例での0.3xVDD~0.7xVDDに入力すると貫通電流が流れ、
最悪“H”として検出されるか、“L”として検出されるかわからなくなります。
貫通電流については後ほど説明します。
ちなみに、一般論ですが、外からくる信号はどんな信号が来るかわからないので、
VILとVIHの範囲はできるだけ広くなるように設計されます。

マイコン設計者がお答えします!技術的問い合わせフォーム