e2stdioスマートコンフィギュレータを使用し外部バスを有効にするとRSCANモジュールでデータ送信ができない

こんにちは るねと申します。

RX231と統合開発環境e2stdioを使用し開発を行っております。

今回、外部SRAMへのアクセスの為、e2stdioのスマートコンフィギュレータを使い外部バスを有効にし内蔵ROM有効拡張モードにしました。

すると今まで動作していたRSCANモジュールを使用したCAN通信で送信(受信もできない)が行えなくなりました。

再度外部バスを無効にしシングルチップモードに戻すとCAN通信で送信受信が行えております。

内蔵ROM有効拡張モードにすると、RSCANモジュールが正常に動作しなくなる原因が分かられる方がおられましたら教えてください。

開発環境:e2stdio

スマートコンフィギュレータ追加コンポーネント

・バス(BSC)

・r_rscan_rx

  →API関数を使用しデータ送受信。(APIソース内では、送信バッファから送信)

Parents
  • るね さん、こんにちは。NoMaYと申します。

    まず端子の競合が気になりますけれども、お使いのRX231の型番(またはパッケージとピン数の情報)を教えて頂けませんか?加えて、お使いのCANの端子も教えて頂けませんか?

  • NoMaYさん返信ありがとうございます。

    RX231型番:R5F52318ADFP

    パッケージ:LFQFP100

    ピン数:100

    以下ピンアサインです。CAN端子はソースコード上で設定しており、P54(CTXD0)、P55(CRXD0)にしています。

    以下CAN端子設定ソースコード

    void can_init_ports(void)
    {

    R_BSP_RegisterProtectDisable(BSP_REG_PROTECT_MPC);

    /* init CAN channel 0 */
    PORT5.PODR.BIT.B5 = 1;
    PORT5.PODR.BIT.B4 = 0;
    MPC.P54PFS.BYTE = 0x10; // Pin Func Select P54 CTXD0
    MPC.P55PFS.BYTE = 0x10; // Pin Func Select P55 CRXD0
    PORT5.PDR.BIT.B4 = 1; // set TX pin direction to output
    PORT5.DSCR.BIT.B4 = 1; // High-drive output
    PORT5.PDR.BIT.B5 = 0; // set RX pin direction to input (dflt)
    PORT5.PMR.BIT.B4 = 1; // set TX pin mode to peripheral
    PORT5.PMR.BIT.B5 = 1; // set RX pin mode to peripheral

    R_BSP_RegisterProtectEnable(BSP_REG_PROTECT_MPC);
    }

  • るね さん、こんにちは。NoMaYです。

    そのRSCAN送受信端子は、外部バスのALE信号端子とWAIT#信号端子との兼用端子になってます。ひょっとするとハードウェア屋さんと相談しないと分からないかもしれませんけれども、外部バスのこの2つ端子に関して、どのような回路設計のボードでしょうか?というか、もし接続する外部メモリで使用するのであれば、CAN送受信端子を別の端子に割り当てるように設計変更しないと、その外部メモリとそのRSCANは同時には使えないです。なお、WAIT#信号の方は別の端子に割り当てを変更することが出来るようですけれども、もう一方のALE信号の方はその端子しか選択肢が無いようです(もし使用するのであれば)。

    RX230グループ、RX231グループ ユーザーズマニュアル ハードウェア編
    R01UH0496JJ0120 Rev.1.20 Pages 1983 2018.09.28
    www.renesas.com/jp/ja/document/mah/rx230-group-rx231-group-users-manual-hardware-rev120#page=83

    ピン    電源、          I/Oポート   外部バス    タイマ                  通信                メモリIF    タッチ  その他  
    番号    クロック、                              (MTU、TPU、TMR、       (SCI、RSPI、RIIC、 (SDHI)                    
            システム制御                            RTC、CMT、POE、CAC)    RSCAN、USB、SSI)                               

    39                      P55         WAIT#       MTIOC4D/TMO3            CRXD0                           TS15            
    40                      P54         ALE         MTIOC4B/TMCI1           CTXD0                           TS16           

     

  • NoMaYさん ありがとうございます。

    ALE信号端子とWAIT#信号端子は今回接続する外部メモリには使用しません。

    ですので、そのままP54、P55端子はCAN通信端子として使用できるのでしょうか。

    マニュアルを見たところ、汎用ポートとしてしか使用できないような記述に見えました。

    CAN通信端子ポート番号を変更するしかないのでしょうか。

  • NoMaYさんこんにちはるねです。

    WAIT#端子を他の空いているポートへ変更したところ、CAN通信が正常に送受信できました。

    スマートコンフィギュレータの生成されたコードを見たところ外部バス制御レジスタ(PFBCR1)を

    ALL0にされており、WAIT#端子がP55へ勝手に設定されていました。ほかのポートへWAIT#端子を設定すると正常に送受信できました。

    大変ありがとうございました。

Reply
  • NoMaYさんこんにちはるねです。

    WAIT#端子を他の空いているポートへ変更したところ、CAN通信が正常に送受信できました。

    スマートコンフィギュレータの生成されたコードを見たところ外部バス制御レジスタ(PFBCR1)を

    ALL0にされており、WAIT#端子がP55へ勝手に設定されていました。ほかのポートへWAIT#端子を設定すると正常に送受信できました。

    大変ありがとうございました。

Children
No Data