こんにちは、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になるものとします。
DI設定のまま何も配線しない場合はピンが浮いている状態となりアンテナが立っているようなイメージとなりノイズで誤動作したり動作に影響を与えることがあります。
Highアクティブ
DIのHighアクティブについて説明します。SW1がOFFの場合はR2でプルダウンしているため3ピンのDIはLowレベルとなります。
SW1をONすると、R2に向かって電流が流れることによってR2の両端の電圧が5Vになります。
3ピンのDIは5Vが印加されるのでHighレベルとなります。マイコンの入力インピーダンスはCMOSタイプが多いため非常に高いため基本的に電流は流れないと考えて問題はありません。
DOについてHighアクティブについて考えてみます。ピン5のDOを操作した時にLED2が点灯/消灯する操作においてDOをHighレベルにしたときは、DOから5Vが出力されます。
電流はLED2とR4を経由して流れLED2が点灯します。Lowレベルに戻すとLED2は消灯します。
Lowアクティブ
DIのLowアクティブについてせつめいします。SW2がOFFの場合はR1でプルアップしているため2ピンのDIはHighレベルとなります。
SW2をONすると、R1を介して電流がGNDに流れることから3ピンのDIはGNDに接続されるためLowレベルとなります。
DOについてLowアクティブについて考えてみます。ピン7のDOを操作した時にLED1が点灯/消灯する操作においてDOをLowレベルの場合は、R3とLED1を介して7ピンのDOに電流(シンク電流)が流れるためLED1が点灯します。
7ピンのDOをHighレベルにしたときは電流が流れなくなるためLED1は消灯します。
データシートではLowアクティブであることを表記するためにピンに信号名に/をつけたり#をつけたり信号名の上に ̄をつけたりしてHighアクティブと区別して記載されています。
DIについてはソフトでロジックを反転させることが可能ですのでアクティブ条件を変えることはできますが、回路図を見たときハードの動きに合わせておくほうが分かりやすいため、ハードとソフトの双方でロジックを合わせておくことを意識しておくとよいでしょう。
広告
PR:わからないを放置せず、あなたにあったスキルを身に着けるコツを教える テックジム 「書けるが先で、理解が後」を体験しよう!
マイコンのI/Oポート
マイコンはポートと呼ばれる端子があります。これらは入出力ポート(I/Oポート)と呼ばれており、周辺機器と接続されます。
多くのマイコンは入出力のポートとしての機能やバスとしての機能、通信機能などを兼用しています。そのため、I/OポートをGPIO(General Purpose Input Output)と表現していることもあります。
スイッチを入切りしたりリレーを入切りしたりLEDを点灯消灯したりすることはI/Oポートを使用することで可能となります。厳密に言うと周辺機器を動かすために必要な電流値を考慮する必要がありますが、ソフトによってポートを制御することで実現できます。
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になります。
出力電流についても同様に考えることができ(A)式のシンク電流を出力電流、R3をR4に置き換えて計算すると1.5mAになります。
関連リンク
PICマイコンを使ってマイコンのレジスタの設定やMPLAB X IDEのプラグインであるMCCを使用して動作確認したことについてまとめています。
PICマイコン(PIC12F675)で実現できる機能と解説リンクまとめ
PICマイコン(PIC16F1827)で実現できる機能と解説リンクまとめ
最後まで、読んでいただきありがとうございました。