RX65NでのMTU3aの使い方について

皆様こんにちは、MXKazと申します。
RX621(MTU2)で動いていたコードをRX65N(MTU3a)でも動かしたくて四苦八苦行きしており
詰りました。どなたかご教授お願いします。


  • こんにちは。

    MSTPマクロをいじっていなければ、過去のリプライでNAKAさんが仰っているように

    これで省電力切り替えになるかと。

    SYSTEM.PRCR.WORD = 0xA502;    // MSTPCRA(他)レジスタへの書き込み許可
    MSTP(MTU0) = 0;            // 省電力機能解除 (=モジュール動作)
    SYSTEM.PRCR.WORD = 0xA500;    // MSTPCRA(他)レジスタへの書き込み禁止

  • mushipanさん、こんばんは。

    早速試してみましたところ割り込みがかかりました。
    ありがとうございました。
    自分使っているRENESUSのTarget BoardはHOCOとLOCOの設定が有効になっています。MTU割り込みのCLOCKはLOCOが使われているみたいで・・周波数は多分設定でいかようにもなると思います。
    自分で調べて、ギブアップしたらここのお世話になります。

    どうもありがとうございました

  • NAKAさん、こんばんは。

    割り込みかかるようになりました。提供していただいたコードのおかげで、不具合の切り分けがスムーズに行えました。頂いたコードはファイルヘッダと共に使わせて頂きます。
    ありがとうございました。

  • MXkazさん おはようございます。 NAKAです。

    良かったですね!あまりお力になれなくてすみません。
    何が原因だったか、気になるぅ~~ (';')?

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

    > デフォルトで許可になっているので関係ないかもですが!コード生成で禁止にされてたりして?

    この認識がおかしいと思うのです。マイコンの初期設定は不許可で、コード生成機能やRXスマートコンフィグレータでは一時的に許可してレジスタを変更していますよ。(そして変更した後で不許可に戻しています。) ひょっとして、コードを新規作成されたのでは無くて、土台は別のところからコピペしたものを使っていて、その土台のところで、昔、NAKAさんの好みのやり方として、プログラム全域で許可したままにする、というのを入れたけれども、すっかり忘れていた、とかないでしょうか?

  • NoMaY先生 おはようございます。 NAKAです。


    僕なんか勘違いしてます?

    デフォルトで許可というのは、リセット後の値がリードライト許可になっているという意味でした。

    >NAKAさんの好みのやり方

    ⇒そうなんです。相変わらずあまりコード生成機能を使ってません、タイマーや通信のボーレートの値を確認するくらいです。

    たしかに、タイマーやタイミングが何等かの原因で変わっちゃうのは良くないので、タイミングに変更がないのであれば、初期設定後は禁止にしておいたがいいですね!(^^)/

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

    そちらのMTUの個別のレジスタのことでしたか。私はMTUに対するMSTPレジスタの話をしていました。こちらの方が、リセット後の設定が以下のようになっているのです。

    (1) MTU動作停止(他のモジュールも同様)
    (1') つまりMTUレジスタ全般へのライト不可(というか上に書いたようにMTU動作停止の状態です)
    (2) MTUに対するMSTPレジスタへのライト不可(他のモジュールに対するMSTPも同様)

    なので、mushipanさんの対処が必要なのですけれども、そのような処理を入れたことを忘れてないでしょうか?ということなのでした。(そして、それが必要なことが最初のhirakuni45さんからのMXkazさんへのアドバイスだったのです。)

  • >何が原因だったか、気になるぅ~~ (';')?
    mushipanさんが答えていただいていましたね!!わかりました。
    PRCRのことかぁ~!
    ここ何年もRXを触ってないので、すっかり忘れてた!
    NAKAは初期化(下記)の中でやっていたので、MTU0ちょこちょこ書いただけで動いちゃったんですね!(^^)/ あぁぁ失礼しました!m(__)m

    //***********************************************************************
    // 関数名 : fn_Init_Device(void)
    // 動作 : デバイスの初期化
    // 引数 :
    // 作成 : NAKA 17.06.19
    // **********************************************************************
    void fn_Init_Device(void)
    {
    clrpsw_i(); //割り込み禁止

    SYSTEM.PRCR.WORD = 0xA50B; //プロテクト解除

    MPC.PWPR.BIT.B0WI = 0; //PFEWE書き込み 0:許可
    MPC.PWPR.BIT.PFSWE = 1; //PFS書き込み 1:許可

    fn_Init_Clock(); //クロックの初期化
    fn_Init_RTC(); //RTCの初期化
    fn_Init_Port(); //ポートの初期化
    fn_Init_TPU0(); //TPU0の初期化
    fn_Init_MTU0(); //MTUU0の初期化
    fn_Init_IRQ8(); //外部割り込み8の初期化
    fn_Init_SCI2(); //SCI2の初期化
    fn_Init_CAN0(); //CAN0の初期化

    MPC.PWPR.BIT.PFSWE = 0; //PFS書き込み 0:禁止
    MPC.PWPR.BIT.B0WI = 1; //PFEWE書き込み 1:禁止

    SYSTEM.PRCR.WORD = 0xA500; //プロテクト!(書き換え禁止)

    setpsw_i(); //割り込み許可

    }

    P.S.

    最新の書き込みが一番下にないと、見にくいですね!

  • こんにちは。NoMaYです。

    別スレッドにChatGPTの話題がありますけれども、このスレッドの質問をChatGPTへ質問してみたらどんな回答になるのかなぁ、とかも気になったりします。

  • NoMaYさん NAKA です。

    open AIの chat GPTですね!

    Q)マイクロコンピュータチップを発明した>は誰ですか?そして、そのLSIまたはそのプロジェクトの名前は何でしたか?

    A)マイクロコンピューターチップは、1971年にインテルコーポレーションのフェデリコファギンが率いるエンジニアチームによって発明されました。このプロジェクトはIntel 4004と呼ばれ、最初の市販マイクロプロセッサでした。