ryokkei と申します。
RX210 のプログラムを作成しています。周辺機能の設定は PDG2 で生成したコードを使用しているのですが、RIIC0 のスレーブ動作がうまくいきません。主な設定は RIIC タブにて、・I2C フォーマット 標準モード・スレーブ・全データの受信完了、スレーブリード要求、ストップ条件検出を関数呼び出しで通知する・関数によりデータを送信するです。リファレンスマニュアルの通り、R_PG_I2C_SlaveMonitor_C0 関数にてモニタを開始した後、スレーブアドレスへのアクセスを検知してIIC0SlaveFunc 関数が呼ばれます。その後、Read 要求であることを確認してR_PG_I2C_SlaveSend_C0 関数にてデータを 254 バイト送信するのですが、どうもバッファの最初の 1 バイトのみが繰り返し送信されているようです (オシロにて確認)。リファレンスマニュアルの使用例は変数や関数が間違っていたり、ちょっと R_IIC_SlaveSendAll 関数のソースを見てみると、コールバック関数がない方の処理 (143 行あたり) に、なにやら気になるコメントがあったりといったところが気になり、「もしや未完成?」などと勘ぐったりしてしまいます。このあたりについてなにかご存じの方は、助言いただけるとありがたく存じます。
こんにちは。 ryokkeiさんの意図した動作を実現するためには、 何か処理、または設定等を間違えているような気がします(もしくはマスタの動作?)。 もし、送信データエンプティが発生した場合、 Interrupt_IIC.cのInterrupt_IIC_ICTXI0割り込み関数が実行され、 stateがIIC_SLAVE_SEND_DATAの状態と考えられ、送信データの更新しかしないのではないかと思います。 (送信データエンプティの要因では、IIC0SlaveFuncをコールしていないように見えます) SCIの受信もということですが、 ちょうどRX210でPDGを使用したSCIの調歩同期式通信についての投稿がありますので、 参考にしてみてはいかがでしょうか? ↓ japan.renesasrulz.com/.../rx210-sci