RS-232C簡易レベルコンバータ&RS232Cピンヘッダを引っ張り出す

f:id:naitsuku:20150906003322j:plain

RS232C簡易レベルコンバータを作りました。 74HC04を使った簡易的なものです。ELM氏の記事を参考に、製作しました。

http://elm-chan.org/docs/rs232c.html

回路図です。 f:id:naitsuku:20150906133315p:plain

説明

RS232Cスレッショルドはたいていの場合CMOSに近い2v付近にあるそうで、このような方法で変換できるとのことです。 左端のピンソケットに、Rx,Tx,DTR,GNDの順に接続して使うようになっています。Dサブコネクタは高くて買えないので、ピンヘッダで妥協します。 ついでに、DTRから電源を取れるようにしています。DTRが有効な場合は10v程度が出ているはずなので、ダイオードを介し、三端子レギュレータで5vにして電源にします。 PCの仕様によっては、DTRから6v程度しか出ていない場合があります。そのような場合は、低ドロップタイプの三端子レギュレータを使うとよいと思います。 いずれにしても、外部の回路に電源を供給するような余裕はないので、よほど低消費電力な機器を接続するのでないかぎり、外部から電源を供給したほうがよいと思います。

ピンヘッダから引っ張り出す

悲しいことですが、最近のPCは、RS232Cが外に出ていないものが多いです。 しかし、多くの機種では、マザーボード上のピンヘッダとしてまだ生き残っています。これを利用しない手はありません。

f:id:naitsuku:20150906112612j:plain 拡張スロットの近くにある5x2のピンヘッダ、COM1 がシリアルポートです。 ドライバにはUTC製の75232が使われています。

少なくとも私のPCでは、以下のようなピン配列となっています。

f:id:naitsuku:20150906014643p:plain

1:DCD 2:RXD

3:TXD 4:DTR

5:GND 6:DSR

7:RTS 8:CTS

9:RI

10はNC

これは、通常のDサブ9ピンと同じ配列です。

これを利用し、ピンヘッダから拡張スロットへDサブ端子を引き出す製品も販売されています。 RS-300 | Ainex

ただ、こういうのは結構値段がするので、私は外に引き出すケーブルを自作することにしました。 基本的には、RXと、TX、GND三線さえあれば通信できてしまいます。今回は電源もほしかったので、DTRも使い、 合計4信号を外部に引き出すこととします。

7,8ピンはジャンパピンでショートします。こうすることで、フロー制御が無効になり、いつでも送信が可能になります。

ケーブルには、キーボードのPS/2ケーブルの残骸を使いました。4線以上のケーブルであれば、基本的にはなんでもよいと思います。 おすすめは、いらなくなったLANケーブルです。コネクタを切り落として直接ケーブルを半田付けすればよいです。

f:id:naitsuku:20150906112334j:plain f:id:naitsuku:20150906112621j:plain ユニバーサル基板などに2x3のピンソケットを半田付けし、その上でケーブルを半田付けします。接着しておくとより安定します。 2(RXD),3(TXD),4(DTR),5(GND)ピンさえ取り出せればよいです。ほかのピンを取り出してもあまり意味はありません。

半田付けが終了したら、PCに取り付けます。

以上、これで、自由にRS232C通信ができるようになりました。

f:id:naitsuku:20150906114005j:plain

RXD と TXD をショートさせ、ターミナルソフトで適当な文字列を打ってみます。 このとき、打った文字列がそのまま帰ってきたら成功です。 帰ってこなければ接続を再確認する必要があります。

f:id:naitsuku:20150906114536j:plain

f:id:naitsuku:20150906114419j:plain