RX65NのICLKを120MHzにできない。

MxKazと申します。
掲題の件で以下のようにしてビルドしますと、動作しません。

SYSTEM.HOCOCR2.BIT.HCFRQ = 2;//HOCO周波数2:20MHz
SYSTEM.HOCOCR.BIT.HCSTP = 0;//HOCO動作
SYSTEM.ROMWT.BIT.ROMWT = 0x02;//ROM:2Wait
SYSTEM.PLLCR.BIT.PLLSRCSEL = 1;//PLLクロックソース選択:HOCO
SYSTEM.PLLCR.BIT.PLIDIV = 1;//:2分周→10MHz
SYSTEM.PLLCR.BIT.STC = 0x2F;//PLL回路 24倍→240MHz
SYSTEM.PLLCR2.BIT.PLLEN =0;//PLL動作
while (SYSTEM.OSCOVFSR.BIT.PLOVF != 1) //発振待ち
;
SYSTEM.SCKCR3.BIT.CKSEL = 4//PLL選択
SYSTEM.SCKCR.BIT.FCK = 2;//FCLK 4分周 60MHz
SYSTEM.SCKCR.BIT.ICK = 1;//ICK 2分周 120MHz
SYSTEM.SCKCR.BIT.PCKA = 2;//PCLKA 4分周 60MHz
SYSTEM.SCKCR.BIT.PCKB = 1;//PCLKB 2分周 120MHz

そこで
SYSTEM.PLLCR.BIT.STC = 0x2F;//PLL回路 24倍→240MHz
の部分を0x27 (20倍)にして100MHzにすれば動作します。

何か設定が間違っているのだと思いますが分かりません。
どなたかご教授宜しくお願いします。

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

    少なくとも、どのように動作しないのか?、という内容が書かれていないと話があらぬ方向へ行ってしまいかねないです。これだけですと、CPUが暴走する、という話なのかな?、と受け取る人が多くいるだろうと思ったのですけれども、CPUが暴走する、ということですか?

    #もっとも、今の時点で、ビューカウントは 2 でしたけれども、、、

  • NoMayさん、こんににちは。言葉足らずで申し訳ありません。

    恥ずかしい話ですが自分でも状況が把握できておりません。
    開発環境はCS+です。デバッグツールはE2 Lightです。
    2種類の現象が出ております。
    ビルド後デバッグツールにプログラムをダウンロードした時
    1)ダウンロード完了と同時に勝手に実行する
      ー>実行中を示す赤い■が点灯します
      しかし、プログラムが動いている形跡がありません、暴走しているように思えます。
    2)ダウンロード完了後、1)の状態にはならず”RUN”させても実行中を示す赤い■は点灯しません
      まるでクロックが停止していてリセットベクタに飛んでいっていないようです。

    分周や逓倍の組み合わせを何種類か試しましたがICK120MHzになる組み合わせは1)か2)の現象が出ます。

    以上です。こんな情報で何かヒントいただければありがたく思います。

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

    CS+では、ダウンロード後、main()先頭にブレークポイントが設定されて、CPUリセットされて、実行開始されて、main()先頭でブレークするのが通常ですけれども、main()先頭まで来ていない、ということのようですね。

    前のスレッドでも書きましたけれども、RXスマートコンフィグレータというツールが存在していまして、今は、皆さん、そのツールでチャチャっとマイコン周りのプログラムを作ってしまわれているのではないかな、と思うのです。(かふぇルネのビューカウントは、ひところの1/10どころか1/100ぐらいに減っているような気もしているのですが、可能性の1つとして、機械に出来ることは機械にやらせれば難無く出来てしまうので、こういう場が必要とされなくなったのかも、と思ったりもします。)

    もう一度、RXスマートコンフィグレータを検討されてみてはどうでしょうか?以下のページにはビデオもあったりします。

    RX Family Software & Tool Course
    www.renesas.com/jp/ja/software-tool/rx-software-tool-course

    このコースでは、RXファミリを利用した開発を始める方のために、ルネサス開発環境の基本機能やソリューション開発支援機能をわかりやすいビデオでご紹介しています。
    お客様のスムーズな開発のスタートにぜひご活用ください。


    - コード生成機能:スマート・コンフィグレータ

    RXファミリスマート・コンフィグレータのご紹介 [02:22]
    この動画では、RXスマート・コンフィグレータを紹介します。

    e² studioでのスマートコンフィグレータプロジェクトの作り方 [03:05]
    e² studioでスマートコンフィグレータが使えるプロジェクトの作り方を解説します。

    スマート・コンフィグレータ機能 ルネサス製ボード用にソフトウェアコンポーネントを簡単に選択 [03:10]
    ルネサス製ボードは、ルネサスマイコンを使用したアプリケーション開発を行うための様々な機能を搭載しています。スマート・コンフィグレータでこれらのボードの各機能に適したソフトウェアを選択する機能について紹介します。

    。。。以下省略。。。


  • こんにちは、MXkaz さん。

    PLL 選択後に、SCKCR レジスタの設定を行っていますが、SCKCRは、初期 1/1 分周なので、瞬間的に、許容できないクロックが出てしまうと思います。

    SCKCR3 の PLL 選択は、SCKCR の設定が完了してから行う必要があると思います。(それが、根本的な原因かは、実験しないと判断出来ないが・・)

    経験的に、RXマイコンは、かなりのオーバークロックが許容できるようなので、ICLK が 240Mhz で駄目な感じはしないですが・・

    又、HOCO は、ジッタがかなりあるようなので、それも要因なのかなと思います。

    ※水晶発振なら動作するのかも・・

    ---

    C++ ですが、クロック設定は、以下のリンクを参考にしてみて下さい。

    https://github.com/hirakuni45/RX/blob/master/RX65x/clock_profile.hpp?ts=4

    https://github.com/hirakuni45/RX/blob/master/RX600/system_io.hpp?ts=4

    C++11 以降なら、static_assert、constexpr を使って、設定出来ない定数を設定すると、コンパイルエラーに出来るので、複雑な設定でも間違いを事前に評価出来ます。

  • NoMayさん、こんにちは。

    ありがとうございます。以前スマート・コンフィグレータを紹介して頂いた後に早々使ってみましたがとっかかりのハードルが高く、保留にしていました。その附けが回ってきたようです。今後の事もありますので活用を進めてみます。

  • hirakuni45さん、こんにちは

    情報ありがとうございます。試してみましたが状況は変わりませんでした。もう少し調べてみます。

  • MXKazさんこんにちは、NAKAといいます。


    水晶を16MHzつかっちゃったのでぴったり120MHzにできないのですが

    下記はPLLで8逓倍したものを1/2分周してICLK=64MHzにしてます。

    SYSTEM.SCKCR.LONG = 0x21021311; ⇒ SYSTEM.SCKCR.LONG = 0x20021311;

    で1/1分周で128MHzになります。

  • NAKAさん、こんばんは

    いつもありがとうございます。SCKCRのところ、参考にさせて頂きます。