本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PIC16f84AにおけるBポート(RB0-RB…)

PIC16F84AのBポートのHレベル時の電圧について

2023/09/06 15:01

このQ&Aのポイント
  • PIC16F84AのBポート(RB0-RB7)のHレベル時の出力ポート電圧について調査した結果、2.2Vぐらいにしかならないことがわかりました。
  • データシートを確認したところ、V_OH = Vdd-0.7という式が示されており、予定では4.3V程度の電圧が出るはずでした。
  • HブリッジICを利用したDCモータの正逆転を行う予定で、Hレベルが2.47Vでは困るため、対策が必要です。
※ 以下は、質問の原文です

PIC16f84AにおけるBポート(RB0-RB…

2008/09/22 13:33

PIC16f84AにおけるBポート(RB0-RB7)のHレベル時の電圧について

いつも参考にさせて頂いています。
PICマイコンによる工作で困っているので、お力添えをお願いします。


現在、PIC16F84Aを使ってスイッチを押したらLEDが点灯するプログラムを作っています。
プログラム通りにLEDは点灯するようになりましたが、
プログラムにより出力を「H」レベルに設定したときの出力ポート電圧が2.2Vぐらいにしかなりません。
(ソース電流となるようにPIC出力端子 --> LED --> 抵抗 --> GNDとつないでます)

データシートを眺める限りでは、
V_OH = Vdd-0.7
となっているので、私の予定では4.3V程度が出る予定です。

ソース電流は25mAまで流せるはずなので、仮に電圧が5.0Vでも、
抵抗が330Ωなので制限には引っかかりません。

この回路を応用し、HブリッジICを利用したDCモータの正逆転を行う予定なので、
Hレベルが2.47Vでは困ります。(IC側から「H」レベルと認識されない?)


ハードウェアは以下のように設計・製作しています。

Vdd=5.0V(スイッチング電源から)
Vss=0V(=GND)
外部クロック=セラミック振動子(10MHz)
RA0~RA4までにスイッチをつけ、入力ポートと設定
RB0~RB7までにそれぞれLED+抵抗(330Ω)をつけ、出力ポートに設定

ご教授お願いします。

このURLの回路図と基本的に同じです。(違いは入力ポートの抵抗値など)
http://homepage3.nifty.com/mitt/pic/pic6_01.html

質問者が選んだベストアンサー

ベストアンサー
2008/09/22 14:22
回答No.2

毎度JOです。
PICに限らずCMOS ICの出力は、25mAまで流せると言っても、V OUT-Hを保障する物では有りません
出力電流が増加すれば、出力電圧も低下します、
PIC16F84A 下記参照URL
http://ww1.microchip.com/downloads/en/DeviceDoc/35007b.pdf
データシートのP70に特性グラフが載っています、FIGURE 10-13:
電源電圧5V時 25mA流すと最悪時0.5Vまで低下します

今回の事例ですと、電源電圧5V LEDの順方向電圧が2V・抵抗値330Ωとすると5V時9mAの電流が流れます
グラフから最悪値を読み取ると、3.8V程度になります、
この値は出力するポートの数、温度、などで変化します、

データシートには、必要な全ての情報が記載されています、最適な設計をする為 隅から隅まで見ましょう。


気になった事が一点
>>出力を「H」レベルに設定したときの出力ポート電圧が2.2V
Rが330Ωで2.2Vは異常です、33Ωの間違いではありませんか??

お礼

2008/09/22 14:54

ご回答ありがとうございます。

まずご指摘を頂いたあと、大きな勘違いに気づきました。

出力ポートを「H」にしたときの電圧を計測していましたが、
8個全てのLEDが点灯した状態でした。
(つまりRB0からRB7まで全て「H」の状態でした)

プログラムを書き換えてRB0のみが「H」になるようにしたところ、
RB0-GND間電圧は4.5Vになりました。

おそらく、全ての出力ポートに電圧を出す必要があったため、
一ポートあたりが低下したのだと解釈しています。

それとR=330オームの件ですが、カラーコードが橙橙茶金なので正しいようです。(おそらく2.2Vという数字に対しての気になる点だとおもいますが、
全点灯の状態でしたので2.2V自体が当てにならない数字でした。)

データシートの読み方も含め大変勉強になりました。
ありがとうございました。

質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する

その他の回答 (3件中 1~3件目)

2008/09/22 14:29
回答No.3

[ソース電流は25mAまで流せるはず]
というのは大きな間違いです。
これは絶対最大定格なので「これ以上流すと壊れますよ」
という意味です。
VOHは3mAのときにVDD-0.7Vとデータシート9.2の項目D090にあります。
それ以上流すときはTrを使うべきでしょう。
http://ww1.microchip.com/downloads/en/DeviceDoc/35007b.pdf

お礼

2008/09/22 15:00

ご回答ありがとうございました。

ご指摘通り絶対最大定格ですから、いわゆる限界値ですね。

それとデータシートの読み方について勉強になりました。

D090の件ですが、-3mAとマイナスがついていたので、
読み取り方が分かりませんでした。
(ついでにRCモードの時のみと書いてあったので
セラロックを使っている場合には当てはまらないものだと思っていました)

これはそのまま3mAと解釈して良いのですね。

下の方へのお礼欄にも書きましたが、
LEDを8個全てつけていたからこその電圧低下だったようです。

また機会がありましたらよろしくお願いします。

質問者
2008/09/22 14:10
回答No.1

それでは逆にどのようにすれば,正規の電圧が出ますか。
それが分かれば,もう少し進むのではないでしょうか。
簡単な回路なので,逆の発想をすることの方が,皆さんの
意見を集めやすいのではないでしょうか。
見る限り,URLの回路図は,抵抗値が倍かつ0.5S置きの
ブリンギングとなっているようです。
その辺まで一緒にしたらいかがですか。

お礼

2008/09/22 14:26

ご回答ありがとうございます。

質問は16F84Aはデジタル入出力のため、
「H」or「L」のどちらかになるはずで、
私の回路の場合は、「H」=4.3V 「L」=0V
になると考えられるのに、なぜ2Vぐらいと中途半端な電圧に
なるかを知りたいことになります。

質問が曖昧ですいません。


なお、
オームの法則から電圧・電流・抵抗の関係を考えると、
出力ポートを「H」にしたら電圧が4.3Vとなり、
挟んだ抵抗の値(これは固定なので)によって、
流れる電流の量が変わると考えられます。

参考URLの場合は抵抗値が倍ですので、私と同じ電圧が発生した場合、
流れる電流の量が半分になるだけではないでしょうか?

質問者

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。