高速オンチップ・オシレータの周波数設定について

オプションバイトにて、高速オンチップ・オシレータの周波数を
32MHzから12MHz以下(12MHz, 8MHz, ...)に設定を変更(*)すると、
main関数がコールされる前にプログラムが止まってしまうという現象が出ており、
解決に苦慮しております。

【オプションバイト(000C2H)の設定】(例)
・32MHzの場合:0xE8
・8MHzの場合:0xAA

なお、高速オンチップ・オシレータの周波数が、16MHz~32MHzの時は
上記の現象は発生せず、~12MHzの周波数を設定した時だけ上記の
現象が発生しています。

漠然とした質問で恐縮ですが、何か思い当たるようなアドバイス
(確認したほうが良い点、お知恵等)がございましたら、
ご教授いただきたく、よろしくお願いします。

Parents
  • CPUの種別とか番号がわからなければ回答できる人はいないのでは。
  • CPUの種類はRL78(R5F10EGE)です。
    高速オンチップ・オシレータが内蔵されていて、1~32MHzの間で選択できます
  • Kenさん
    RUN中にオプションバイトを書き換えてます?
  • Kirinさん
    RUN中はオプションバイトを書き換えていません。
  • チョコです。
    確認ですが、HOCODIVレジスタの設定を変えて、HOCOの周波数を変更している訳ですか。
    新しいRL78では、オペレーション・ステート・コントロール機能が搭載されているので、フラッシュ動作モードを後から変更できますが、RL78/G1Aにはその機能がありません。
    オプションバイトを0xAAにしているということは、LS(低速メイン)モードなので、8MHzまでしか対応していません。これが以上動作の原因ではないかと思われます。
    fujitaさんは、このことを気にしていると思われます。
Reply
  • チョコです。
    確認ですが、HOCODIVレジスタの設定を変えて、HOCOの周波数を変更している訳ですか。
    新しいRL78では、オペレーション・ステート・コントロール機能が搭載されているので、フラッシュ動作モードを後から変更できますが、RL78/G1Aにはその機能がありません。
    オプションバイトを0xAAにしているということは、LS(低速メイン)モードなので、8MHzまでしか対応していません。これが以上動作の原因ではないかと思われます。
    fujitaさんは、このことを気にしていると思われます。
Children
  • 皆様
    色々とご教授ありがとうございます。おかげ様で問題の現象を回避できました。
    原因は、周波数を変更したことにより、ウォッチドック・タイマがうまく動作していなかったようです。ウォッチドックタイマーの動作を停止することで問題の現象を回避できました。
    あと、オプションバイト(000C2H)の設定も"0xEA"に変更しました。"0xAA"(低速メインモード)でもプログラムは動作するのですが、フラッシュ動作はHS(高速メイン)モードに切り替えておきました。
    以上です。