• ベストアンサー

IOポート制御で電圧が落ち切らない

電子回路初心者です。 あるデバイスを通信制御するために、ファームウェアでポートをLレベルに落とす処理をしたところ、 該当のポートが3.3V→2.6Vくらいまでしか落ちない現象が出ています。 きちんとLレベルに落としたいのですが、 一般的に考えられる原因と対策を教えて下さい。 (GNDとポートの間に抵抗入れてショートさせる?とか) デバイスの事はあまり詳しくかけません。すみません。 なお、GNDレベルは統一されていると思います。 まだ勉強中の身につき、変な質問内容になってたらすみません。

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

  • ベストアンサー
  • koujikuu
  • ベストアンサー率43% (429/993)
回答No.3

出力ポートは、流せる最大電流が決まっています、それを超えるとHigh/Lowレベルを維持できなくなり故障の原因にもなります (少ないもので2mA,PIC等は25mAまで、デバイス全体のポート電流制限もあり) 外部機器の未接続時が正常なら、出力ポートLOW時に外部機器より流れ込む電流が多すぎると考えられます 出力バッファ等を追加してドライブ能力を増強してみては?

gussan_2011
質問者

お礼

ドライブ能力までは頭が回ってませんでした。 今後同様な事が起きた場合、意識してみます。 結論として、自己解決してしまいました。 原因はお恥ずかしながら、通信ラインのつなぎ間違えです。 問題の起きているポート含め通信ライン全て、 間違った場所についていたため発見が遅れました。 その結果、Lレベルに落ちきらずHレベルが勝ってしまい、 今回の問題につながりました。 壊れなくて良かったです・・。 ご回答いただいた方代表して、BAとさせていただきます。 皆様有難うございました。

その他の回答 (2)

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.2

> あるデバイスを通信制御するために そのデバイスがどのような物か判らなければ回答するのは難しいと思います。 例えば最近の高機能なMPUであれば一つづのポートに対して アナログ/ディジタル 入力/出力 プルアップダウン有効/無効 プルアップ/プルダウン の設定をしておく必要があります。 もしそのポートがオープンであれば抵抗を入れてVccにつなぐ必要があります。 これらの事がデバイスによってちがいますから、「あるデバイス」では判りかねますね。

noname#215107
noname#215107
回答No.1

デバイスは秘密で、回路構成は不明ということですね。 例えば、そのデバイスの出力がハイインピーダンス出力になっているという可能性はありませんか?

gussan_2011
質問者

補足

すみません、少し補足します。 2つのデバイス間通信で、あるポートを制御します。 親から子デバイスに対して通信ポートを制御する際に問題が起こるのですが、 子が物理的にいなくなると、ポートはLレベルに制御できることが分かりました。 ハイインピーダンスではないはずと思います。 子のデバイス内で、電圧が回りこんでるということでしょうか。

関連するQ&A