Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

PIC16F1827 – ADC – Bit Banging UART -> FT232RL -> PC

入門用お勧めPICはPIC16F1827だというようなニュアンスで書いておきながら、作例はいまだにPIC12F675ばっかりだったりする。
そこで、お気に入りの Bit Banging でAD変換値を FT232RL 経由でPC上の Tera Term へ送信する実験を PIC16F1827 でもやっておくことにした。

とはいえ、Bit Banging はその性格上特に変更するところも無く、結局、久しぶりに使った PIC16F1827 のレジスターの設定を思い出せるか否かに尽きる。

思い出せない。
データシート読む。
じたばたする。
なんとかこぎつける。

以下、main.c がこんな感じ。

Includes.h と Software_UART.c には変更なし。
Software_UART.h の以下の部分だけ変更あり。

使うピンはAD変換用が17ピン(RA0/AN0)で、通信用が18ピン(RA1)と1ピン(RA2)だ。
これらのピンを選んだ理由は単純にアルファベット順で3本というだけ。
ブレッド上の回路は実に単純なものなので、回路図は無い。
20140902232155
ちなみに、ここに載せたコードではPIC16F1827は4MHzで駆動させ、ボーレートは1200baudに設定してある。
試しに8MHzでPLLを利かせて8×4の32MHzで駆動したら、19200baudまでは問題なく送信が確認できた。
その場合の変更点は、main.c では
OSCCONbits.SPLLEN = 1;//4x PLL is enabled
OSCCONbits.IRCF = 0b1110;//8 MHz
そして、Software_UART.h では
#define Baudrate 19200//baud
の合計3行だ。

後出しだが、Bit Banging のオリジナルはPIC12F675用のもので、参考にしたのはhttp://saeedsolutions.blogspot.jp/2012/07/pic12f675-software-uart-bit-banging.htmlで、もらってきたものだ。

くどいようだが、「Bit Banging で UART」のいいところは、他のどの機能も無駄にせずに、
Includes.h
Software_UART.c
をプロジェクトに追加するだけで、あとは UART_Transmit(); をぶっこんどけば、PC上でデバッグ・モニターもどきが構築できる点だ。
しかも使うピンは実質1本だけ。
唯一の出費となるFT232RLモジュールも、海外通販で買えば400円以下だ。
最近Banggoodで買った(2014/8/22 $3.98)お勧めはこれ。
20140830164859
この手を使うようになってから、過去にデバッグ用に用意したLCDとかは完全にホコリをかぶっている。

このエントリーをはてなブックマークに追加

Posted under: FT232RL, PIC16F1827, これから始めるなら


コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.