シリアル通信を最小のハードで
2010年5月 3日(月) 14:19 JST
閲覧数 3,977
なんかハードウェア寄りを触りたくなったGWです。
むかーし作ってたPICマイコンのプログラム発掘してきました。
その中の、シリアル通信箇所の紹介です。
下の図を見ていただければわかると思いますが、ツェナダイオードと抵抗しか使っていません。
シリアル通信以外にも、電源取得もできています。
PIC側シリアル通信のレベルは+5Vと0V、PC側のRS232Cのレベルは、-5V~-15Vと+5V~+15Vなのですが、完全無視仕様です。
なぜこんな回路で、RS232Cと通信できるのか?
-15V、+15Vなどは仕様の話で、RS232Cは実際には0V時には「1」と認識してくれるのです。
また、+5Vで無くても、+3V程度から「0」として認識してくれます。
実際には、+1V~+2Vぐらいがスレッシホールド電圧となっている訳ですね。
ツェナダイオード(5.1V)は、電源として約5Vを生成する為につけられてます。
抵抗は念のための入力電流制限ですが、無くてもPIC内蔵の保護ダイオードで大丈夫だったりもします。
また、RS232CのTxDからの入力は-10V~+10Vで変動しますが、PICに内蔵されている保護ダイオードの働きにより、+5Vより大きい電圧はPICのVDDピン(電源)へ、0Vより低い電圧はPICのVSSピン(GND)へ流れるようになっています。
おそらく、PCのRS232Cと通信をする上で最小のハード構成だと思うのですがどぅでしょ?
むかーし作ってたPICマイコンのプログラム発掘してきました。
その中の、シリアル通信箇所の紹介です。
下の図を見ていただければわかると思いますが、ツェナダイオードと抵抗しか使っていません。
シリアル通信以外にも、電源取得もできています。
PIC側シリアル通信のレベルは+5Vと0V、PC側のRS232Cのレベルは、-5V~-15Vと+5V~+15Vなのですが、完全無視仕様です。
なぜこんな回路で、RS232Cと通信できるのか?
-15V、+15Vなどは仕様の話で、RS232Cは実際には0V時には「1」と認識してくれるのです。
また、+5Vで無くても、+3V程度から「0」として認識してくれます。
実際には、+1V~+2Vぐらいがスレッシホールド電圧となっている訳ですね。
ツェナダイオード(5.1V)は、電源として約5Vを生成する為につけられてます。
抵抗は念のための入力電流制限ですが、無くてもPIC内蔵の保護ダイオードで大丈夫だったりもします。
また、RS232CのTxDからの入力は-10V~+10Vで変動しますが、PICに内蔵されている保護ダイオードの働きにより、+5Vより大きい電圧はPICのVDDピン(電源)へ、0Vより低い電圧はPICのVSSピン(GND)へ流れるようになっています。
おそらく、PCのRS232Cと通信をする上で最小のハード構成だと思うのですがどぅでしょ?