RX231 IIC通信 API関数について

はじめまして、KANと申します。

現在、RX231マイコンとEEPROM BR24G256(ROHM製)とでIIC通信を行い、データをやり取りしようとしています。

その際にスマートコンフィグレータから生成されるAPI関数にてデータの受信をしようとするために下記コードを実行したのですが、バッファとしている配列の先頭となるDATA[0]~DATA[3]の3byteにデータが受信されず、DATA[4]~DATA[34]には正常にデータが受信される結果となりました。データ読み取りの際のデータ数を減らしても先頭のデータが受信できない状態となっていました。

先頭のデータが受信できない原因としては何が考えられるでしょうか?それともAPI関数のR_Config_RIIC0_Master_Receiveがそういった仕様になっているのでしょうか?

尚、スレーブアドレス(SLAVE_ADDRESS)は0x50と設定しています。

初歩的な質問かもしれませんが、ご教授願います。

//TEMP_eep配列初期化
TEMP_eep[0] = 0x00;
TEMP_eep[1] = 0x20;

F_eep = 1;
R_Config_RIIC0_Master_Send_Without_Stop(SLAVE_ADDRESS, &TEMP_eep[0], 2);//読み込みアドレス指定

while (F_eep == 1) {//コールバック待ち
nop();
}
F_eep = 1;
T_INI = 2;

R_Config_RIIC0_Master_Receive(SLAVE_ADDRESS, &DATA[0],35);//データ読み込み

while (F_eep == 1 && T_INI != 0) {
nop();
}

Parents
  • 私は以前RX72MでRIICのマスターモードでEEPROM読み書きを試したことがあります。ただ、動きがおかしかったのでSCIのI2Cモードで実装しました。オシロスコープで波形を確認してRIICの動きがおかしいので何か条件や仕様制限があるかもしれません。そもそもRIICは「簡易」という接頭語がつくペリフェラルですし、SCIで思った通り動くのでRIICの調査は深く行っていませんがSCIのI2Cモードなら確実に動きます。もし、GPIOピンの割り当てでSCIが使えるならSCIのI2Cモードを使うことを検討されるのがいいです。

Reply
  • 私は以前RX72MでRIICのマスターモードでEEPROM読み書きを試したことがあります。ただ、動きがおかしかったのでSCIのI2Cモードで実装しました。オシロスコープで波形を確認してRIICの動きがおかしいので何か条件や仕様制限があるかもしれません。そもそもRIICは「簡易」という接頭語がつくペリフェラルですし、SCIで思った通り動くのでRIICの調査は深く行っていませんがSCIのI2Cモードなら確実に動きます。もし、GPIOピンの割り当てでSCIが使えるならSCIのI2Cモードを使うことを検討されるのがいいです。

Children