マイコン動作中にクロック周波数を切り替えるとリセットで落ちる。

マイコン:RL78/13

開発環境:CS+ / CC-RL

 

基板側の都合でオプションバイトでLV(低電圧メイン)モードで起動するように設定し、STOPモードから再起動したらHS(高速メイン)モード(32MHz)へ切り替えるプログラムを作っています。※外部クロック未使用。

 

 

上記を実装し動作検証中なのですが、LVからHSへ切り替えた直後にマイコンがリセットしてしまう(IAWRF)症状に悩まされています。

 

オプションバイトを変更して、最初からHSで起動するようにすれば、リセットは発生しないので、プログラムの問題ではない?と考えています。

 

動作中にクロック周波数(フラッシュ動作モード)を切り替える際になにか気をつける点があるのでしょうか?

 

お手数ですが、どなたか心当たりがある方は些細なことでも結構ですので、ご教示頂けると幸いです。

  • チョコです。
    きちんとしたデバイス名を書いてください。
    RL78で最も一般的なRL78/G13ではモードを途中で切り替えることはできません。
    そのような機能は,RL78/G11辺りから実装されたと認識しています。「フラッシュ動作モード選択レジスタ (FLMODE)」の注意事項にMODEを変更する条件が記載されていますが,そこは確認しましたか。
  • チョコ様
    ご返答ありがとうございます。

    マイコンはR5F101MFAFBです。

     

    オプションバイトではLV(4MHz)で起動し、IOの設定で32MHzに変更する流れで動いています。

  • チョコです。
    RL78/G13では,フラッシュの動作モード設定は起動時のオプションバイトで指定するだけで,その後プログラムで変更することはできません。オプションバイトでLVモードに設定してあると,クロック周波数は4MHz以上には設定してはいけません。
    4MHzで起動して,後から32MHzに変更したいなら,オプションバイトでは,HSモードに設定して,周波数を4MHzにすべきです。
    (LVモードでは,4MHzまでの動作しか動作は保証されていません。この条件が守られていないから誤動作しているだけです。)
  • チョコ様
    ご返答ありがとうございます。

    先程私の方から返答する段階で、自分でも気が付きました。お恥ずかしい話です。

    ご教授頂きありがとうございました。