MPLAB MCCを使ったシリアル通信のテストをします。
使うPICは、前回と同じPIC12F1822です。
以前に行ったPIC12F1822のシリアル通信テストは、ここに掲載しています。
USBシリアル変換は、FT234Xを使います。回路図です。
この時の、通信設定は、次のとおりです。
------------------------------------------------------------------
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を設定します。
今回は、クロックを8MHzとして、PLLを使い×4=32MHz動作としました。
Low voltage Programmingをはずし、設定は、これだけにしました。
シリアル通信のための設定をします。Divice Resourceまたは、Avilable ResourceからEUSARTを選ぶと、Project ResourceにEUSARTが登録され、Pin managerにEUSARTが表示され、RA0にTXが、RA1にRXが自動的にセットされます。
EUSARTの設定をします。Project ResourceのEUSARTをクリックすると設定画面が開きます。
通信速度(Baud Rate)はデフォルトで9600bpsです。他の設定もデフォルトのままにしました。
Generateして、main.cに簡単なプログラムを書きました。
キーボードから入力された文字をそのまま送り返す、いわゆるエコーバックのプログラムです。
USARTなどの設定が見えないだけに、すごく簡単です。
build 書き込みを行いPICとFT234Xをブレッドボード上に配線します。
Tera Termを立ち上げて、通信テストを行います。キーボードから送った文字がそのままTera Termに表示されました。
通信テストOKです。
複雑な計算を行わないでもシリアル通信の設定ができました。
確かにブラックボックスですが、使いやすくなりましたね。