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

組み込みエンジニア

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

マイコンには入力ピンと出力ピンがあり、周辺回路と組み合わせる際は入力電圧/出力電圧、シンク電流/出力電流について押さえておく必要があります。PIC12F675を使ってマイコンの電圧範囲やシンク電流/出力電流の考え方を説明しています。

I/Oポートの入力ピンの電圧範囲と出力ピンのシンク電流と出力電流の考え方はマイコンを問わず同じです。

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

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

マイコンのI/Oピンのシンク電流と出力電流

マイコンには電気的に超えてはいけない範囲があります。絶対最大定格で定められた値になります。この値は一瞬たりとも越えてはなりません。超えてしまった場合かなりダメージを受けていると思ったほうが良いでしょう。

多くの場合は発熱して煙が出て壊れてしまいます。絶対最大定格に関係の大きいI/Oピンのシンク電流出力電流について説明していきます。I/OピンをDOで使用するのが前提になります。

I/Oピンごとのシンク電流と出力電流

シンク電流の説明図

DOピンは出力ですが7ピンをLowにすると外部から電流が流れてきます。

これをシンク電流(引き込み電流)と言います。シンク電流は、output current sunkで表現されています。

DOピンは基本的にインピーダンスが低くなるため、外部からシンク電流が流れ込むときは電流制限のため抵抗を実装するようにします。

Low出力しているピンに電源電圧を直接印加することは電源をショートさせているのと同じことになるため注意が必要です。

①のシンク電流を見るとPIC12F675のDOピンに引き込める電流の上限が25mAになります。

これを超えると該当のDOピンが発熱してマイコンが壊れるしまう可能性があります。

出力電流(ソース電流)の説明図

DOはマイコンから外部に向かって電流を流します。

これを出力電流(ソース電流)と言います。出力電流は、output current sorcedで表現されています。

マイコンの出力電流は多くても一般的に10mA程度なのでLEDを点灯させる程度の出力しかできません。マイコンのポートの電圧が5VだからとDCモーターをつないでも電流が不足するためモーターを回すことはできません。

負荷が重い(消費電流が高くなる)ものを接続すると外部機器に電流を供給しようとするため出力電流が大きくなり(途中で出力制限がかかるのが一般的)発熱し故障してしまいます。

データシートを確認するとPIC12F675のDOピンが出力できる電流の上限が25mAになります。(I/Oピンの合計のシンク電流と出力電流ないの①を参照

DOポートを操作することでモーターを回転させたりフォトカプラを動かしたりする場合はトランジスタなどを使用して電流を増幅して接続する必要があります。

I/Oピンの合計のシンク電流と出力電流

引用:PIC12F675データシート(絶対最大定格)
引用:PIC12F675データシート(絶対最大定格)

①は各ピンごとの規定ですが、②はすべてのピンの合計になります。仮に6つの出力ピンがあったとします。①の規定を満足しながらも②を満足しないケースを考えてみます。

シンク電流:
DOピンのすべて(6つ)に22mAをシンク電流を流すと①の条件は満足できていますが、②の合計で見たとき22×6=132mAとなって②を満足できません。

出力電流:
DOピンのすべて(6つ)に22mAの出力電流を流すと合計132mAとなり②を満足できません。

①と②を満足できるように設計する必要はありますが、I/Oピンのシンク電流や出力電流は可能な限り小さくすることが望ましいです。

多くの電流を流そうとすると電力演算の式からW=I×Vから消費電力が大きくなってしまいます。消費電力が大きいということは熱を持つことになり最大値が③に規定されています。

③値についての参考としてNoteによる式がありますが、これは簡単に言うとそれぞれのピンの消費電力の合計が800mWを超えてはならないと定義しています。

消費電力は最大の1/2もしくは1/3に抑えるようにマージンをもって設計します。PIC12F675を使用する場合、余裕をもって1/3に抑えようと設計すると約267mW以下になるように回路の構成を考えることが理想的です。

マイコンの入力ピンと出力ピンの電圧範囲

マイコンは基本的に初期化をしなければ入力ピンで使用する設定になります。以下入力ピンを(DI)・出力ピンを(DO)とします。CPUにとってDIとは外部から電圧を受ける端子であるということです。

DOとはマイコンから外部に向かって電圧を出力するピンであるということになります。DIピンとDOピンをまとめて表現するときはI/Oピンともいいます。

ここでDIとはDigital Inputの略称で、DOはDigital Outputの略称になります。マイコンの入力と出力はAD変換機能(DA変換機能)を除いてデジタル値の1(High)か0(Low)で表現します。以下、HighとLowとします。

マイコンがHighと判定する電圧範囲とLowと判定する電圧範囲はマイコンの種類と電源電圧によって異なります。

PIC12F675のデータシートを使って説明します。電源電圧はVDDで表現され今回はDC5Vを想定しますのでVDD=5となります。VSSは電源のグランドなのでVSS=0になります。

引用:PIC12F675のデータシート(電気的仕様)
引用:PIC12F675のデータシート(電気的仕様)

マイコンのDIピンの電圧範囲

マイコンのDIピンはCMOSタイプであればインピーダンスは高いためマイコンに電流はほとんど流れません。DIピンの電圧のHighとLowの判定について考えます。①の欄のVILはInput Low VoltageでLowと判定する電圧のことです。Min(最小)がVssでMax(最大)が0.2VDDなので0.2×5=1.0Vになります。

マイコンがLowであると判定する範囲は0V~1.0Vとなります。

次に②の欄を見てみます。VIHはInput High VoltageでHighと判定する電圧のことです。Min(最小)が0.8VDD = 0.8×5 = 4.0VでMax(最大)がVDDになります。

マイコンがHighであると判定する範囲は4.0V~5.0Vとなります。

マイコンと異電源のデバイス素子(DC3.3V)などの出力と接続する場合DC3.3VマイコンのHighが3.3Vであるとすると5VマイコンがHighであると判定する範囲が4.0Vであった場合Highと認識できないことがあります。トランジスタなどを使って電圧変換する必要があります。

異電源のデバイス素子の出力を受ける場合はVIHのMinが条件を満たしているかを確認する必要があります。例えばArduino UNOは5Vを電源電圧としてもVIHが3.0VになるのでDC3.3VマイコンのHigh出力を受けることができます。

マイコンのDOピンの電圧範囲

DOピンの出力について考えます。③の欄のVOLはOutput Low VoltageでLowを出力しているときの電圧になります。

Max(最大)が0.6Vになります。

Min(最小)が規定されていないのはマイコンのハード上の構造からLowといってもグランドと同じにならないからです。

次に④の欄を見てみます。VOHはOutput High VoltageでHighを出力しているときの電圧になります。

Min(最小)がVDD-0.7=4.3Vになります。

Max(最大)が規定されていないのは基本的に電源電圧以下の出力になるからです。

DIの電圧範囲について例に挙げた異電源のデバイスに5VマイコンのDO出力を入力する場合は注意が必要です。相手のマイコンがDC3.3Vを電源としていた場合5Vを受けきれないことがあり、トランジスタなどを使って電圧変換したり工夫が必要です。

3.3Vのデバイスでも5Vの入力を受けられるデバイスもあるのでデータシートを確認する必要があります。

関連リンク

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

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

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

Code Camp完全オンラインのプログラミング個人レッスン【無料体験】

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

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