Aliexpressで買った$3.67のFT232RLボードをPIC12F675につないでBit Bangingで駆動し、PC上のTeraTermと通信する。
キーボードからabcdefgとEnterを入力したときのTeraTermの表示が下のようになる。
入力したものをPIC12F675がそのまま返す。
前後に1つ前の文字と1つ先の文字を付加して、1文字打つと3文字返すようにした場合は下のようになる。
ちなみに、TeraTermは Shift + Esc を2度入力して、表示を16進デバッグモードにしてある。
TeraTermは Shift + Esc を押すごとにトグルで、
通常表示 -> デバッグモード -> 16進デバッグモード -> 非表示- > 通常表示
と表示が切り替わる。
参考にしたのはhttp://saeedsolutions.blogspot.jp/2012/07/pic12f675-software-uart-bit-banging.htmlで、もらってきたコードをまったくいじらずにそのまま動く。
必要なのはボー・レートの設定だけ、なぜかFT232RLのドライバもインストールする必要がなかった。
ボー・レートは4800以上だと文字化けしてしまうので、そのままの設定では2400まで。
いまのところはデバッグに使いたいだけなので、それでも十分だと思う。
電源を除けば2本つなぐだけでモニターできるわけだし、Bit BangingなのでどのPICにも持ち込めるから、これはなかなか便利だと思う。
モニター用に同じくBit BangingでI2C接続のLCDを使うことを考えていたが、モニター用限定ならこの方が安上がりだ。
ちなみに秋月でこのチップだけを買うと300円、このチップの載った基板は800円以上する。
下はTMR0の割り込みで連続でデータを送ってみたときの動画
1 2 3 4 5 |
void interrupt intr(void) { INTCONbits.T0IF = 0; cnt++; UART_Transmit(cnt); } |