しばらくTiny402の勉強をしてきましたが、ここで、PIC16F1455の勉強に戻ることにします。目的はPIC16F1455でUSBシリアル変換を行うことです。うまくいけば、Arduinoに使ったり、Tiny402の書き込み用に使ったりしたいと思います。
PIC16F1455を使ったUSBシリアル変換の記事はWeb上には多くなく、「elchika」というサイトの「Arduinoにも使えるUSBシリアル変換器」という記事のプログラムでテストをしました。
MPLAB XからPICへの書き込みと書き込んだプログラムのテストには、前に作成したPIC16F1455開発ボード を使います。開発ボードの記事は、こちら。
テストをした回路図です。PICKit3での書き込み時は、右下のソケットに`PICKit3を接続します。書き込みが終了したら、右上と左下のコネクタにUSBケーブルを接続し、それらをパソコン本体に接続し、TeraTermで通信できるかどうかテストします。
MPLAB Xでプロジェクトを作成し、elchikaサイトに掲載されているとおりMCCの設定を行いました。generateして、main.cに掲載されているプログラムリストをコピペし、コンパイル、書き込みを行いました。問題なく書き込むことができました。ボーレートは115200bps固定です。
PICKit3を外して、回路図右上のコネクタにUSBケーブルを接続し、パソコン本体のUSBポートに接続しました。自動的にドライバがインストールされ、COM4として認識されました。
PIC16F1455のシリアルポートには、FT-234を接続しました。パソコン本体にUSB接続するとCOM5として設定されました。TeraTermを2つ立ち上げ、しれぞれシリアルポートをCOM4とCOM5に、速度を115200bpsに設定して相互に通信できるかどうかテストしました。
結果は、相互通信ができました。
USBケーブルが接続された開発ボードです。elchikaさんのプログラムですと、RC2に1が出力されるため、RC2に接続したLEDが点灯のままになります。
DTR信号が送られるのかCTESTWINびCW送信機能でてすとしましたが、NGでした。そもそもelchikaさんの記事に
「USB_device_CDC.cを書き換えます。下の画像のように117行目のUART_DTRにPORTCbits.RC3を設定してください 」
とあるのですが、現在のバージョンのUSB_device_CDC.c には、該当の箇所がなく、書き換えることができませんでした。
今回のテストで、テキストの送受信は確認しましたが、DTR信号を出すことができませんでした。もう少し勉強してみます。ただ、DTR信号が出なくてもTiny402への書き込みはできますので、そちらを先にテストしてみようと思います。