ソフトウェアスタンバイモードから復帰できない?

RX113を使用しています。

機器の電源OFFモードとしてソフトウェアスタンバイを使っているのですが、最近なぜか復帰できないことが起こるようになりました。

何か確率的(タイミング的)な問題なのかと思うのですがどんなときに復帰できなくなるのでしょうか。

ソフトウェアスタンバイにちゃんと入れたかどうかも確認できないくらい低確率なので、回路の都合でVCCが瞬間的に下がって暴走しているのかという懸念もあります。

復帰できない場合の電流はソフトウェアスタンバイと同等になってますので暴走とも違うか...

 

ソフトウェアスタンバイに入る前にやっていることと言えば

復帰用のスイッチ以外のプルアップを切ってLow出力にすること、

MSTPでRAMとDTC以外を停止させる、

OSTDE = 0, SSBY = 1, 

PSW.I = 0 にしてからIPR( ICU, IRQx ) をPSW.IPLより高い値で設定する、

IRをクリアしてIEN = 1にする

IENの書き込みを確認してからwait

こんな感じです。どこか不適切な箇所があったりしますか?

それとMSTPのなかにディープスリープモード許可ビットが混ざっているのですが、これを1にしてソフトウェアスタンバイにしても平気でしょうか。

  • こんにちは
    マニュアルに記載がありますが、WAIT 命令を実行する前にDTC のDTCST.DTCST ビットを“0” に設定してますか?
  • そうでした、記述漏れです。
    MSTPで止める前にDTC.DTCST.BIT.DTCST= 0;をやっていました。
    これで止めてるのにMSTPで止めないというのも無駄な気もしますね。
  • この問題はUARTのRX端子がプルアップなしのオープンのときに、割込の異常処理によって発生することが分かりました。
    ソフトウェアスタンバイからの復帰ではなくその直前直後の異常だったことになります。
  • JTさん
    こんにちは、問題がはっきりして良かったですね。
    ちなみに割り込みの異常処理とはどんな処理ですか?
    オーバーランエラー割り込みが発生して、とび先がないといったことでしょうか?