1. | はじめに | |||||||||||||||||
初版では5V対応で回路が結構複雑になってしまったので、もっとシンプルな回路で同様な機能を実現することを目指しました。 初版の回路を考える上で思考を束縛していた条件として
という前提が頭の中にあり、これらの条件によって回路検討時に思考範囲が狭められていましたが、このような常識を取り払って考えてみるといろんなアイディアが浮かんできます。^^ |
||||||||||||||||||
2. | 回路簡略化の方針 | |||||||||||||||||
上記の1)に関しては、入出力の論理が不揃いであってもシリアル通信処理はソフトウェアで実現しているのでソフト側で対応できます。実際PIC側からのシリアル出力を従来と逆の論理にすればトランジスタを1個減らせます。 2)については、ある程度大きな抵抗を介していれば、電源電圧範囲外の電圧がかかってもPICは簡単にはへこたれません(笑)。従って今まではLEDで電圧上限をクリップしていましたが、クリップ部分も不要になります。 |
||||||||||||||||||
3. | 回路図 | |||||||||||||||||
PIC側からのシリアル送信の論理を反転したのでトランジスタを通常時 ON にするためにベースはプルアップし、1ビットで送受信するにはPIC側の送信信号が受信信号側からの影響を受けないようにする必要があります。 そのために受信信号ラインにダイオードを入れ(負電圧時の保護も兼ねる)、送信側のトランジスタが受信信号によって OFF しないようにします。 ・・・というような事を色々考えつつ(この辺の工程がパズルを解くような感じで面白い)できた回路がこれです。 |
||||||||||||||||||
4. | アナログ系はシミュレータがお手軽 | |||||||||||||||||
今回は以前、トラ技についていた OrCAD の回路シミュレータを使用したので抵抗値の決定等がとても楽でした。 回路自体がシンプルであることもありブレッドボードでの確認も行わず作成しましたが問題なく動作しました^^ (シミュレータの威力はすごい!。ラジコンヘリもPCのシミュレータで練習してから飛ばすのが王道らしい) まずはシリアル受信の場合を想定した回路とシミュレート結果が
で、回路図内で
PIC側が送信する場合、下図のようにパソコン側からのシリアル送信信号(赤グラフ)の影響を受けずに、PICの出力(青グラフ)でPIC側シリアル送信信号(緑グラフ)が制御できています。 以上のシミュレート結果からPICの電源電圧が5Vでも3Vでも問題なく動作しそうです。
|
||||||||||||||||||
5. | 製作 | |||||||||||||||||
シミュレータで問題ないことが確認できたのでブレッドボードでの確認はパスして作成しました^^ 部品としては、トランジスタ1個、抵抗4本、ダイオード2本という超シンプルな回路なのでコネクタに直に半田付けし、コネクタケースに収めました^^ 1/6Wの抵抗を使えば難なくコネクタケースに収まると思います(当然、コネクタの形状にも依存するでしょうが)。 今回は手持ち部品の関係で1本だけ1/4Wの抵抗を使いましたがコネクタケースに収まりました。(^^)
|
||||||||||||||||||
6. | 結果 | |||||||||||||||||
左下がパソコン側から 'A' (0x41) のデータを送り、PIC側でエコーバックして 'A' を応答している時の波形です。 黄色がPIC側 I/O ピンでの波形で紫がパソコン側のシリアル受信部の波形です。 PIC側が入力状態の時のhighレベルは3.5Vです(シミュレータでは約4Vなのでほぼシミュレートどおり)。 右下の写真は実際に今回の I/F を使ってディバッグしている例(独自プロトコルでの赤外線コントロール送信機)で、PIC側の1個の I/O ピンに接続するだけで、OneBitLoaderでプログラム更新でき、そのままの状態でディバッグ用情報をシリアル送信(シリアル受信でポーズ状態)できます(^^)
|