RS-232C通信。

PICのデバッグ用にPCとRS-232Cで通信したいのだが、Hardwareは先日製作したのでSoftware部分。
とりあえずASCIIの'A'(0x61)を1bitずつ送るコードを書いたが、動かねえ;;
送信中別ポートに繋がったLEDを消灯させるようにコードを書き直したが、点きっぱなしになってしまう。よくよく考えたら転送速度を9600bpsに設定した場合、1byte(10bit;8bit+スタートビット1bit+ストップビット1bit)のデータを送るのに1msecしかかからないから、目視なんてほぼ無理なんですな。
転送レートを落として300bpsにしても30msec。うーん。やっぱロジアナが無いとデバッグは厳しそうだが…。


ていうか、ずっと9600bpsの接続は1200bytes/secと思っていたよ。スタートビット/ストップビットを送るから1byteを転送するのに10bit要る計算なので、実際は960bytes/sec。2割も誤差が出てしまっている。(恥
流石に10BaseTが1.25Mbytes/secとは思ってないけど…。


Hardware側にもバグが一件。TxとRxを逆に繋いでしまっていた。orz
接続はこんな感じになるはず。
PIC12F683:GP0(7)→MAX232:[T1in(11)→T1out(14)]→Dサブ9ピンメス:Rx(2)
PIC12F683:GP1(6)←MAX232:[R1out(12)←R1in(13)]←Dサブ9ピンメス:Tx(3)


しかし、異なる電源を同じGNDで繋いでも、電源には影響がないんですよなあ。電気回路ってほんと不思議。