メディア

マイコンがリセットされる要因Q&Aで学ぶマイコン講座(46)(4/4 ページ)

» 2019年06月27日 11時00分 公開
前のページへ 1|2|3|4       

不当命令によるリセット

 例えば、STM32F4シリーズでは、定義されていない命令を実行するとフォールトが発生します。ですが、8ビットマイコン「STM8ファミリ」(STマイクロエレクトロニクス製)ではリセットがかかるなど同じメーカーでも対応は異なります。「リセットステータスレジスタ(RST_SR))の中のILLOPF:不正オプコードリセットフラグが立ちますので、ほかのリセットと区別できます。STM8ファミリには、ソフトウェアリセットの機能がありませんので、これをソフトウェアリセットの代わりに使えます。

内部リセットの検知方法

 マイコンの仕様で、内部のリセット信号を外部端子に出力する機能をもっている製品があります。STM32F4シリーズやSTM8ファミリでは、ウォッチドッグタイマーのリセットやソフトウェアリセット(または、不当命令リセット)が発生すると、NRST端子が20マイクロ秒間ローに落ちる機能があります。ユーザーはNRST端子をモニターすることによって、マイコン内部で発生したリセットを検出することができます。

図6:リセット信号出力回路(STM32F4シリーズの場合:リファレンスマニュアルから抜粋) (クリックで拡大)

リセットに関する不具合例とその対応方法

 過去にリセットに関してユーザーから問い合わせのあった不具合例は、主に次の2つです。

  1. 意図しないタイミングでリセットがかかる
  2. リセットが繰り返し発生する

 1.の場合は、前述したようにリセットの発生後、再起動した際に、ウォッチドッグタイマーリセットやソフトウェアリセットなどのフラグをチェックします。並行して外部リセット端子もチェックして、外部からリセット信号が入っていないかもチェックします。リセット要因が分かったら、統合ツールなどのデバッグ機能を使って原因を追究します。

 2.の場合は、1.と同じようにフラグをチェックすれば、リセット要因が分かりますが、さらに、繰り返し周期が一定か否かで、リセットのタイミングが推測できます。リセット要因と発生タイミングが分かったら、統合ツールなどのデバッグ機能を使って原因を追究します。

Q&Aで学ぶマイコン講座:過去の質問一覧はこちら

次の記事を読む

前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.