RL78/G14のEEPROMのI2C通信について

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

現在I2Cを利用してのEEPROMの書き込み、読み出しを行うプログラムを作成しているのですが

読み出しがうまく行かず困っています。そもそも書き込みができているのかが…

よろしければアドバイスをお願い致します。

 

使用統合開発環境 CS+ for CA,CX 

使用製品 MTK-RL78/G14

使用EEPROM型名 R1EX24512ASAAS0A

/*書き込み部*/
i2c_write_buf[0] = 0x00; /*アドレス上位8bit*/
i2c_write_buf[1] = 0x00; /*アドレス下位8bit*/
i2c_write_buf[2] = data; /*データ1byte*/
R_IICA0_Master_Send(WRITE_WAVE, i2c_write_buf, 3, 100);
R_IICA0_StopCondition();

/*読み出し部*/
i2c_write_buf[0] = 0x00;
i2c_write_buf[1] = 0x00;
R_IICA0_Master_Send(WRITE_WAVE, i2c_write_buf, 2, 100);
R_IICA0_Master_Receive_Restart(READ_WAVE, i2c_read_buf, 1, 100);
R_IICA0_StopCondition();

※マスタ送信/受信コールバック時にストップコンディションは生成していません。

Parents
  • Taku様、コード生成サポート担当の鈴木です。
    下記スレッドが参考になると思います
    japan.renesasrulz.com/.../eeprom

    ソースで気になるのは、R_IICA0_Master_Sendは送信完了を割り込みで受け取ります。
    送信完了前にストップコンディションを生成していないでしょうか
    実際に波形を観測して確認してみてください
    以上、よろしくお願いします。
  • チョコです。
    鈴木さん,MAX7219をCSIで制御してLED表示を行っていて,問題を見つけました。
    CSIの連続送信で最後のデータを書き込んだ後で,割り込みタイミングを書き換えてますが,転送速度とプログラムの実行速度の関係で,最後の割り込みが発生しない可能性があります。
Reply
  • チョコです。
    鈴木さん,MAX7219をCSIで制御してLED表示を行っていて,問題を見つけました。
    CSIの連続送信で最後のデータを書き込んだ後で,割り込みタイミングを書き換えてますが,転送速度とプログラムの実行速度の関係で,最後の割り込みが発生しない可能性があります。
Children
No Data