Nov11’s diary(自宅での開発環境作り )

3Dプリンタと切削加工機で工作した事をアップして行きます

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番ピンは接続しない

f:id:Nov11:20160204121757j:plain

↓↓↓↓↓↓↓↓↓下記の内容は、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通信機能が正常動作する事を確認できた事になる


なお、ブログの内容を参照して実行した結果に責任は負いかねますので、ご了承下さい