• 締切済み

PICのIOピンからの電流回り込み

2つのPICのIOピン同士を繋いでRS232C通信を試みています.PICはPIC16F877を使用しております.最初は片方のPICのみに電源を与えて動作させ,しばらくしたらもう一方のPICに電源を与えて動作させたいのですが,片方のPICのみ電源をONにすると,IOピンから電流が流れ,もう一方のPICが動いてしまいます.電流の回り込みという現象らしいのですが,回路でどのように対策したらよいか,方法がわからず困っています.何か方法をご存知の方,ご教授お願い致します.

みんなの回答

noname#159916
noname#159916
回答No.1

>RS232C通信を試みています との事ですが、実際はマイコンの端子同士の直結ですね? ここでは重要ではありませんが、RS232C というと機器間を接続する、 ±5~15Vスイングの信号レベルまでも指す規格の名称なので 厳密には正しくありません。単に「シリアル通信」とでも呼ぶ方がいいです。 電源が別々の複数の機器を接続する際はこのような問題が生じます。 「双方の電源をONにするまでは物理的に接続しない」のが理想的ですが、 現実にはそうもいきませんから、電気的にほぼ同じ状況を作る方法を取ります。 ・GNDはつながったままでよいので、ON 側の機器が高い電圧を出さない、または  ハイインピーダンス状態にする、事で実現できます。 因みに、RS-232用インターフェースICは、電源OFFの時は 高いインピーダンスになるように作られていて 電流の回り込みを防ぐようになっています。 全部とは言い切れませんが、知る限りのICはそうです。 >回路でどのように対策したらよいか, シリアルラインは「信号なし」状態で Highレベルが出てるので、 それが相手(電源OFF機器)に届いてしまっているのが原因なので、 これを断ち切ってやればいいです。 方法はいくつかありますが、一長一短です。 方法A シリアルラインを双方で反転し、「信号なし」を Lowレベルにする。 ・相手が電源ONするまではシリアル出力しないこと。 ・相手が電源ONである事をソフトが知る回路が必要。  (相手の電源ラインを入力ポート(要プルダウン)に入れるだけでも可) 方法B シリアルラインにトライステートバッファを入れ、相手の電源がOFFのうちは       出力をハイインピーダンス状態にする。 ・相手が電源ONでトライステートバッファをイネーブルにする回路が必要。  相手の電源ラインをイネーブル端子(要プルダウン)に入れるだけでも可) ・相手が電源ONかどうかがソフト的にわからない場合は通信に工夫が必要。 方法C 相手の電源ONを検知するまでシリアルの初期化をせず、       出力をハイインピーダンスに保つ。(プルダウン推奨)       (PIC の詳細を知らないのですが、これはできないかも) ・シリアルラインのハードウェア追加は極少 ・相手の電源ONをソフトが知る回路が必要

関連するQ&A