MPLAB MCCを使ったシリアル通信のテストをします。
使うPICは、前回と同じPIC12F1822です。
以前に行ったPIC12F1822のシリアル通信テストは、ここに掲載しています。
USBシリアル変換は、FT234Xを使います。回路図です。
![](https://blogimg.goo.ne.jp/user_image/46/69/bc172763a784cc743b8079975d623fd3.png)
この時の、通信設定は、次のとおりです。
------------------------------------------------------------------
void serial_init(unsigned long BR){
TXSTA = 0x24; //SYNC=0 TXEN = 1 BRGH = 1
BRG16 = 1; //BRG 16bit mode
RCSTA = 0x90; //非同期、継続受信可
unsigned int X= _XTAL_FREQ/BR/4 - 1;
SPBRGH = X / 256;
SPBRGL = X % 256;
}
TXSTA = 0x24; //SYNC=0 TXEN = 1 BRGH = 1
BRG16 = 1; //BRG 16bit mode
RCSTA = 0x90; //非同期、継続受信可
unsigned int X= _XTAL_FREQ/BR/4 - 1;
SPBRGH = X / 256;
SPBRGL = X % 256;
}
------------------------------------------------------------------
けっこう複雑ですね。では、MCCで設定してみます。
projectを作成し、MCCを開きます。
まず、System_moduleを設定します。
![](https://blogimg.goo.ne.jp/user_image/67/5a/9eef987bb8e89789b2e8f6c12f3dadd2.png)
今回は、クロックを8MHzとして、PLLを使い×4=32MHz動作としました。
Low voltage Programmingをはずし、設定は、これだけにしました。
シリアル通信のための設定をします。Divice Resourceまたは、Avilable ResourceからEUSARTを選ぶと、Project ResourceにEUSARTが登録され、Pin managerにEUSARTが表示され、RA0にTXが、RA1にRXが自動的にセットされます。
![](https://blogimg.goo.ne.jp/user_image/62/ef/58707d78b379eb946d3c036cb4ce21d6.png)
EUSARTの設定をします。Project ResourceのEUSARTをクリックすると設定画面が開きます。
![](https://blogimg.goo.ne.jp/user_image/4a/a7/141722c406abbbc89227c4c8c120a547.png)
通信速度(Baud Rate)はデフォルトで9600bpsです。他の設定もデフォルトのままにしました。
![](https://blogimg.goo.ne.jp/user_image/71/73/9f83d5ce5f835c87be6dfd611c3fc9a8.png)
Generateして、main.cに簡単なプログラムを書きました。
キーボードから入力された文字をそのまま送り返す、いわゆるエコーバックのプログラムです。
![](https://blogimg.goo.ne.jp/user_image/68/1f/5660804769ebebcccbd4d31ec1f73488.png)
USARTなどの設定が見えないだけに、すごく簡単です。
build 書き込みを行いPICとFT234Xをブレッドボード上に配線します。
![](https://blogimg.goo.ne.jp/user_image/76/d6/186391ef9cf1c427a765c6245d43941b.jpg)
Tera Termを立ち上げて、通信テストを行います。キーボードから送った文字がそのままTera Termに表示されました。
![](https://blogimg.goo.ne.jp/user_image/41/99/40f5570178e3f73866b68d50d82cc287.png)
通信テストOKです。
複雑な計算を行わないでもシリアル通信の設定ができました。
確かにブラックボックスですが、使いやすくなりましたね。
※コメント投稿者のブログIDはブログ作成者のみに通知されます