PICマイコン(PIC12F675)のHigh(Low)アクティブの考え方

組み込みエンジニア

こんにちは、ENGかぴです。

マイコンを使用する場合ハード/ソフト設計時にI/Oポートの使い分と、周辺機器の信号がHighの時動作をするのかLowの時動作をするのかを検討する必要があります。ハード/ソフトの意識が統一できていないと不良動作の原因となることもあります。

例えば外部機器がLOWのときに動作するもの(LOWアクティブ)であった場合、使用したいとき以外はHIGHになりますが、ソフトの極性を間違えて常にLOWにしていた場合外部機器が連続動作してしまうことになります。

PIC12F675を使ってマイコンの動きを勉強するためにPIC12F675の機能でできることについてまとめています。

PICマイコン(PIC12F675)で実現できる機能と解説リンクまとめ

HighアクティブとLowアクティブ

マイコンでDOを制御して周辺回路を操作する時DO出力がHighレベルの時に周辺回路が動作するのかLowレベルの時に動作するのかを確認する必要があります。

周辺回路を操作した時にDIがHighレベルになるのかLowレベルになるのかを把握しながらマイコンの処理を検討する必要があります。

HighアクティブとLowアクティブを使い分けた回路の例

アクティブの説明回路図
アクティブの説明回路図

マイコンのポートの設定は、2ピン:DIピン設定、3ピン:DIピン設定、4ピン:DO設定、5ピン:DO設定、6ピン:DOピン、7ピン:DOピンとします。また、SW1とSW2は押したときにONになるものとします。

マイコンは、周辺機器を接続しない場合はDO出力にしておくことが奨励されています。通常は使用しないDI電源電圧またはGNDに接続することが推奨されています。

DI設定のまま何も配線しない場合はピンが浮いている状態となりアンテナが立っているようなイメージとなりノイズで誤動作したり動作に影響を与えることがあります。

Highアクティブ

DIのHighアクティブの説明図

DIのHighアクティブについて説明します。SW1がOFFの場合はR2でプルダウンしているため3ピンのDIはLowレベルとなります。

SW1をONすると、R2に向かって電流が流れることによってR2の両端の電圧が5Vになります。

3ピンのDIは5Vが印加されるのでHighレベルとなります。マイコンの入力インピーダンスはCMOSタイプが多いため非常に高いため基本的に電流は流れないと考えて問題はありません。

周辺回路のSW1をONにする操作した時にマイコンがHighレベルとして処理するようソフトを決めた場合に3ピンのDIはHighアクティブで動作すると表現します。

DOについてHighアクティブについて考えてみます。ピン5のDOを操作した時にLED2が点灯/消灯する操作においてDOをHighレベルにしたときは、DOから5Vが出力されます。

電流はLED2とR4を経由して流れLED2が点灯します。Lowレベルに戻すとLED2は消灯します。

DOをHighレベルにしたときにLED2が点灯するのでLED2はHighアクティブで動作すると表現できます。

Lowアクティブ

DIのLOWアクティブの説明図

DIのLowアクティブについてせつめいします。SW2がOFFの場合はR1でプルアップしているため2ピンのDIはHighレベルとなります。

SW2をONすると、R1を介して電流がGNDに流れることから3ピンのDIはGNDに接続されるためLowレベルとなります。

周辺回路のSW2をONにする操作した時にマイコンがLowレベルとして処理するようソフトを決めた場合に2ピンのDIはLowアクティブで動作すると表現します。

DOについてLowアクティブについて考えてみます。ピン7のDOを操作した時にLED1が点灯/消灯する操作においてDOをLowレベルの場合は、R3とLED1を介して7ピンのDOに電流(シンク電流)が流れるためLED1が点灯します。

7ピンのDOをHighレベルにしたときは電流が流れなくなるためLED1は消灯します。

DOをLowレベルにしたときにLED1が点灯するのでLED1はLowアクティブで動作すると表現できます。

データシートではLowアクティブであることを表記するためにピンに信号名に/をつけたり#をつけたり信号名の上に ̄をつけたりしてHighアクティブと区別して記載されています。

DIについてはソフトでロジックを反転させることが可能ですのでアクティブ条件を変えることはできますが、回路図を見たときハードの動きに合わせておくほうが分かりやすいため、ハードとソフトの双方でロジックを合わせておくことを意識しておくとよいでしょう。

マイコンのI/Oポート

マイコンはポートと呼ばれる端子があります。これらは入出力ポート(I/Oポート)と呼ばれており、周辺機器と接続されます。

多くのマイコンは入出力のポートとしての機能やバスとしての機能、通信機能などを兼用しています。そのため、I/OポートをGPIO(General Purpose Input Output)と表現していることもあります。

スイッチを入切りしたりリレーを入切りしたりLEDを点灯消灯したりすることはI/Oポートを使用することで可能となります。厳密に言うと周辺機器を動かすために必要な電流値を考慮する必要がありますが、ソフトによってポートを制御することで実現できます。

I/Oポートは、DI(入力ポート)として外部の周辺機器から信号を受け取ってHighレベルであるかLowレベルであるかを判定したり、DO(出力ポート)は外部の周辺機器に向かってHighレベルやLowレベルを出力します。

I/Oポートの入力と出力は電源電圧によって範囲が決まります。電源をDC5Vと決めてPIC12F675を例にするとDIの判定電圧はHighレベルの範囲4.0V以上で、Lowと判定する範囲は1.0V以下となります。DO出力電圧はHighレベルで4.3V以上で、Lowレベルは0.6V以下になっています。

使用するマイコンによって条件は異なるので電源電圧に対する範囲をマイコンのデータシートなどで確認する必要があります。

マイコンのシンク電流と出力電流

シンク電流と出力電流
シンク電流と出力電流

マイコンのDOと周辺回路によってシンク電流や出力電流を計算するかが決まります。計算方法の一例を説明します。シンク電流が大きすぎるとマイコンを破壊してしまうこともありますし、出力電流が大きくなると電流が不足して動作を停止したり時には発熱により故障したりします。

シンク電流と出力電流の考え方については下記記事を参考ください。

PICマイコン(PIC12F675)のI/Oポートのシンク電流/出力電流の考え方

7ピンのDOをLowレベルにすると赤点線のようにGNDとつながるのでLED1に電流が流れて点灯します。この時の電流を計算します。

LEDはダイオードと同じで順方向電圧があります。この順方向電圧分と電源電圧のDC5の差がR3に流れます。この電流がマイコンに流れ込むシンク電流になります。一般的にLEDの順方向電圧は1.8~2.2V程度(赤、緑、黄色)なので2Vとします。

シンク電流 (出力電流)= ( 電源電圧-LEDの順方向電圧 ) ÷制限抵抗・・(A)

(A)を使ってシンク電流を計算すると、1.5mAになります。

PIC12F675の1ピンあたりのシンク電流は25mAまでが許容できることから問題なく動作させることができます。

出力電流についても同様に考えることができ(A)式のシンク電流を出力電流、R3をR4に置き換えて計算すると1.5mAになります。

PIC12F675の出力電流の上限である25mA以内であるため問題なく動作させることができます。

関連リンク

PICマイコンを使ってマイコンのレジスタの設定やMPLAB X IDEのプラグインであるMCCを使用して動作確認したことについてまとめています。

PICマイコン(PIC12F675)で実現できる機能と解説リンクまとめ

PICマイコン(PIC16F1827)で実現できる機能と解説リンクまとめ

GEEKJOB-未経験からITエンジニアに【オンライン無料体験】

最後まで、読んでいただきありがとうございました。

タイトルとURLをコピーしました