PICを使用して開発する事にした(シリアル通信/I2C通信)(その3)
PIC24FJ64GA002のI2C通信機能を音声合成LSIを使って確認する事にした
[事前準備]
1)PICを使用して開発する事にした(シリアル通信/UART通信)を行う
2)PICを使用して開発する事にした(1000円で音声合成)を参照して音声合成LSIを配置する
ただし、Tera Term(テラターム)のローカルエコーのチェックは入れない
[配線]
PIC24FJ64GA002の14番ピンを音声合成LSIの27番ピンに接続し、PIC24FJ64GA002の15番ピンを
音声合成LSIの28番ピンに接続し、2.2kΩでプルアップする
また、音声合成LSIの4番ピンはGNDへ接続し、5番ピンは接続しない
↓↓↓↓↓↓↓↓↓下記の内容は、MCC(v2.25.2)を使用しています↓↓↓↓↓↓↓↓
↓ v2.25.2を使用する場合は、11月08日のブログを参照して下さい↓
[プログラム作成]
1)MPLAB Xを起動し、プロジェクトを作成する
2)Code Configuratorで、Systemを設定し、GPIO、UART1とI2C1(Master)を追加する
3)UART1の設定をBaud Rate:9600,DataBits:8,Parity:None,Stop Bits:1,
Flow Control:Noneにし、[Enable All UART Interrupts]にチェックを入れる
4)Code ConfiguratorのPin Managerで、U1TXとU1RXをPICの18,17番の順に設定する
5)I2C1(Master)のI2C Clockを0x26(約400kHz)に設定し、Pin Managerで、PICの14,15番に
チェックを入れる
6)Generate Codeを押してコード生成を行う
7)プログラムをメイン関数に記述する
と、言っても、MPLAB XのCode Configuratorがプログラムの大半を自動生成してくれるので、
コーディングは以下の数行となる
uint8_t ucCode;
I2C1_MESSAGE_STATUS mRes;
while (1) {
// Add your application code
// PC -> LSI
if ( UART1_ReceiveBufferIsEmpty() == false ) {
ucCode = UART1_Read();
UART1_Write(ucCode);
// 受信した1文字を音声合成LSI(0x2e)へ送信する
I2C1_MasterWrite(&ucCode, 1, 0x2e, &mRes);
}
}
8)プログラムをコンパイルしてPICへ書き込む
9)Tera Termを起動し、ローマ字を入力して[enter]を押した後に音声が聞こえれば、
PIC24FのI2C通信機能が正常動作する事を確認できた事になる
なお、ブログの内容を参照して実行した結果に責任は負いかねますので、ご了承下さい