IICAスレーブモードにおけるウエイトにつきまして

はじめて質問します。

初歩的な質問かもしれませんが、お読みいただけるとありがたいです。

現在、RL78/G13のIICAを使用しI2Cのスレーブ(CLK:100kHz)を実現しています。

ドライバ部分は、コード生成プラグインを使用しています。

マスター側デバイスがI2Cのクロックストレッチに対応しておらず、IICAのACK後のウエイトにてどうも、不具合がおきているようです。

マニュアルを読んで、ウエイトのクリアは、ドライバ部分に記載のWRELn=1によりクリアされていることを知りました。

つまり、ACK発行後の割り込みから、WRELn=1されるまでの間に所望の処理が、1クロック以下であれば、マスター側デバイスと正常に通信できると考えています。

実際のコードを見る限りでは、1クロック以下のように見えるのですが、何かほかに見落としている部分は、あるでしょうか?

何か、ご存知のかたが居られましたらお教えいただけるとありがたいです。

Parents
  • チョコです。
    >マニュアルを読んで、ウエイトのクリアは、ドライバ部分に記載のWRELn=1によりクリアされていることを知りました。

    それはスレーブ受信の場合のウェイト解除方法です。スレーブ送信の場合は送信データの書き込みがウェイト解除のトリガです。

    >ACK発行後の割り込みから、WRELn=1されるまでの間に所望の処理が、1クロック以下であれば、マスター側デバイスと正常に通信できると考えています。

    マスタが完全に100kHzのクロックで動作するなら,SCLの1クロックではなく,SCLのロウ期間だけです。I2Cバスの標準モードの規格では4.7usになります。

    もっと,詳細な情報がないときちんとしたコメントはできません。
  • チョコ様
    コメントありがとうございます。
    詳細な情報が無い状態でコメントいただきありがとうございます。
    SCLのロウ期間の動作につきまして勘違いしていたようです。
    再度、コードを見直してみます。
    ありがとうございます。
Reply
  • チョコ様
    コメントありがとうございます。
    詳細な情報が無い状態でコメントいただきありがとうございます。
    SCLのロウ期間の動作につきまして勘違いしていたようです。
    再度、コードを見直してみます。
    ありがとうございます。
Children
No Data