RXマイコンのクロックストレッチについて

お世話になっております。maruと申します。

初めて質問させていただきますので、不手際ありましたら申し訳ありません。

IICのslave機器から、クロックストレッチ機能を要求されております。

そこで質問させてください。

RXマイコン(RX66Nなど)のSCL同期回路というのは、クロックストレッチ機能を満足する機能なのでしょうか?

RL78/G23のハードウェアマニュアルには、クロック・ストレッチと明言されていたのですが、

RXマイコンには見つけられず、ご質問させていただきました。

可能であれば、RXマイコンを用いて実現させたいと考えております。

よろしくお願いいたします。

maru

Parents
  • RXマイコンのデータシートでSCIの簡易I2Cモードに説明があります。
    「クロック同期化」という名前でクロックストレッチ機能の説明がありますのでご参照ください。

  • Shoji Ymamotoさま

    早速、ご連絡くださりありがとうございます。

    RX66nのマニュアルの簡易I2Cモードにクロックストレッチ同等の「クロック同期化」の記載確認できました。

    お手数おかけしました。ありがとうございます。(クロックストレッチという記載がなくて)

    I2C バスインタフェース (RIICa)の方を見ておりました。

    簡易I2Cの方で実装するようにいたします。

    よろしくお願いいたします。

    maru

  • 私の技能が問題なのか?わかりませんがRIICaでEEPROMをアクセスするのに失敗するのでSCIを普段から使っています。RIICaでも対応しているかもしれませんので、慣れているとかなら読んでみるといいかなと思います。

  • チョコです。

    RL78を中心に(ほとんどRL78)やっています。

    >I2C バスインタフェース (RIICa)の方を見ておりました。

    >簡易I2Cの方で実装するようにいたします。

    なにか勘違いしているよな気がします。

    RIICaは、I2Cに(完全に)準拠しているので、あえてなにも書いていないのではないでしょうか。

    簡易I2Cは、サブセット版なので、あえて書かれているはずです。

    ちなみに、RL78では、I2Cに準拠しているIICAではクロック・ストレッチに対応していますが、簡易I2Cは対応していません。

    この場合には、1バイト転送ごとにソフトで待ち合わせをおこなうことで、対応はできます。

    以上

  • チョコです。

    Shoji Ymamotoさん、EEPROMのアクセスで失敗するのは、別の問題でしょう。

    よくあるのは、書き込みが完了したかどうかのポーリングでのトラブルです。書き込んで、すぐにポーリングを行うといつまでたっても先に進まないことがあります。特に、コード生成では、ストップ・コンディションのトリガだけではkkプを待たずに終了しているのは問題です。私は、昔から、書き込みを行ってから、数十マイクロ秒経過してからポーリングを行っていましたよ。

    以上

  • Shoji Yamamoto さま

    >>わかりませんがRIICaでEEPROMをアクセスするのに失敗するのでSCIを普段から使っています。

    こういった、微妙に失敗する点など、さきに知ることができ大変勉強になります。

    ありがとうございます。

    maru

  • チョコ さま

    ご回答いだだきありがとうございます。

    >>RIICaは、I2Cに(完全に)準拠しているので、あえてなにも書いていないのではないでしょうか。

    >>簡易I2Cは、サブセット版なので、あえて書かれているはずです。

    私もRIICフルスペック版で対応している気がしていたのですが、下記の点から完全に読み切れていませんでした。

    ・RL78では、IIC(簡易ではない)の項にクロックストレッチの説明項目及びレジスタの記載があったが、
     RXのRIICには項目及び設定レジスタが見つけられなかった。

    ・NXP社のI2Cバス仕様書(UM10204)を確認すると、クロックストレッチはオプションとなっている。

    >>この場合には、1バイト転送ごとにソフトで待ち合わせをおこなうことで、対応はできます。

    対応していない場合の対策も教えていただきありがとうございます。

    (本件とはずれますが、過去の開発でチョコさまの投稿に何度も助けられていました。ありがとうございます。)

    maru

Reply
  • チョコ さま

    ご回答いだだきありがとうございます。

    >>RIICaは、I2Cに(完全に)準拠しているので、あえてなにも書いていないのではないでしょうか。

    >>簡易I2Cは、サブセット版なので、あえて書かれているはずです。

    私もRIICフルスペック版で対応している気がしていたのですが、下記の点から完全に読み切れていませんでした。

    ・RL78では、IIC(簡易ではない)の項にクロックストレッチの説明項目及びレジスタの記載があったが、
     RXのRIICには項目及び設定レジスタが見つけられなかった。

    ・NXP社のI2Cバス仕様書(UM10204)を確認すると、クロックストレッチはオプションとなっている。

    >>この場合には、1バイト転送ごとにソフトで待ち合わせをおこなうことで、対応はできます。

    対応していない場合の対策も教えていただきありがとうございます。

    (本件とはずれますが、過去の開発でチョコさまの投稿に何度も助けられていました。ありがとうございます。)

    maru

Children
No Data