IICAを簡易I2Cとして使用する方法

シリアルインターフェイスIICAでデータを取得できません 」ではお世話になりました。色々触ってみましたがうまくいきませんでした。

そのため、R5F10Y47の15番と16番のIICAを簡易I2Cとして使用したいと思います。その場合のR_IICA0_Createの方法を記載したページはございますか?
アドバイスのほどお願いいたします。UARTも使いたいので・・・。

環境 R5F10Y47(VDD=3.3V、IICAも)、E2 Lite、E2-Studio

Parents
  • RL78/G10ユーザーズマニュアルハードウェア編のP425の初期設定がR_IICA0_Createと思っているのですが、間違いでしょうか?
  • チョコです。
    やっていることが微妙に異なっているので,若干説明をしておきたいと思います。
    ・ポート設定
    マニュアルでは「最初はポートを入力モード,出力ラッチは0に設定」
    コード生成では「POM0 |= 0xC0U;PMC0 &= 0x3FU;P0 |= 0xC0U;PM0 |= 0xC0U;」
    となっています。マニュアルはRL78で共通的な書き方になっているので,実際にRL78/G10で使用するにはPOM(出力をオープンドレインに設定)やPMC(兼用のアナログ機能からデジタル入出力に設定)を追加する必要があります。ここらは,個々のデバイス用のコード生成の方がきちんとしています。実際のポート出力制御部分も出力ラッチの値が異なっていますが,これはポートが入力なので,出力ラッチの値はどちらでも構いません。重要なのは,IICA0の設定が完了するまではIICA0の出力はLowになるので,そのままIICA0の最終的な設定にしてしまうと,外部端子にLowが出力されてしまうので,IICA0の設定完了までは出力しないようにすることです。
    ・IICA0の設定
    IICA0の細かな設定で,順序はそれほど気にしなくていいかと思います。IICE0を1にするまでに完了すればよいと考えてください。
    IICCTL00のSPIEnの設定が異なりますが,通常はコード生成の様に0にするのがいいと思います。
    IICF0のSTCEN0とIICRSV0の設定が異なりますが,マニュアルのSTCEN0の設定は昔の78K0等と同じ状態にするもので,コード生成の方が簡単でいいと思います(マニュアルでは,STCEN0=0にしたためにトップ・コンディションを発行しないといけなくなりました)。IICRSV0は通信予約は殆ど使わないと思うので,コード生成の方がいいと思います。
    IICE0を1して設定は終わりなので,ポートを出力に設定してお終いです。コード生成で,LREL0を1にしているのは,単なる念のため以上ではなく,なくても関係ありません。

    以上,不安の払しょくに役立てば幸いです。
Reply
  • チョコです。
    やっていることが微妙に異なっているので,若干説明をしておきたいと思います。
    ・ポート設定
    マニュアルでは「最初はポートを入力モード,出力ラッチは0に設定」
    コード生成では「POM0 |= 0xC0U;PMC0 &= 0x3FU;P0 |= 0xC0U;PM0 |= 0xC0U;」
    となっています。マニュアルはRL78で共通的な書き方になっているので,実際にRL78/G10で使用するにはPOM(出力をオープンドレインに設定)やPMC(兼用のアナログ機能からデジタル入出力に設定)を追加する必要があります。ここらは,個々のデバイス用のコード生成の方がきちんとしています。実際のポート出力制御部分も出力ラッチの値が異なっていますが,これはポートが入力なので,出力ラッチの値はどちらでも構いません。重要なのは,IICA0の設定が完了するまではIICA0の出力はLowになるので,そのままIICA0の最終的な設定にしてしまうと,外部端子にLowが出力されてしまうので,IICA0の設定完了までは出力しないようにすることです。
    ・IICA0の設定
    IICA0の細かな設定で,順序はそれほど気にしなくていいかと思います。IICE0を1にするまでに完了すればよいと考えてください。
    IICCTL00のSPIEnの設定が異なりますが,通常はコード生成の様に0にするのがいいと思います。
    IICF0のSTCEN0とIICRSV0の設定が異なりますが,マニュアルのSTCEN0の設定は昔の78K0等と同じ状態にするもので,コード生成の方が簡単でいいと思います(マニュアルでは,STCEN0=0にしたためにトップ・コンディションを発行しないといけなくなりました)。IICRSV0は通信予約は殆ど使わないと思うので,コード生成の方がいいと思います。
    IICE0を1して設定は終わりなので,ポートを出力に設定してお終いです。コード生成で,LREL0を1にしているのは,単なる念のため以上ではなく,なくても関係ありません。

    以上,不安の払しょくに役立てば幸いです。
Children
No Data