メディア

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

» 2019年06月27日 11時00分 公開

ウォッチドッグタイマーのカウント終了条件

 ウォッチドッグタイマーは、『マイコンの暴走を監視するタイマー』のことです。プログラムは、何かしらの原因で暴走する時があります。そのため暴走を監視するハードウェアが必要になります。タイムアップするとマイコンをリセットするタイマーを設け、このタイマーで暴走を監視する手法がウォッチドッグタイマーです。

 タイマーのカウンターがタイムアップする前に、プログラムでカウンターをリフレッシュします。リフレッシュされたカウンターは再びカウントを始めます。この動作をプログラムの一部に取り入れ、周期的にカウンターをリフレッシュします。プログラムが暴走すると、この周期的なカウンターのリフレッシュが行われなくなり、タイマーはタイムアップしてマイコンをリセットします。マイコンはリセットされると、再び最初から正常動作を開始し、暴走から復帰することができます。

 ウォッチドッグタイマーのリセットはリセットピンから入る外部リセットと同じですが、ウォッチドッグタイマーのリセットであることを示すフラグが立ちます。そこで、リセット直後に実行されるプログラムの中で、そのフラグをチェックすれば、ウォッチドッグタイマーのリセットで起動したかどうかを判別できます。STM32F4シリーズでは、「RCC クロック制御およびステータスレジスタ(RCC_CSR)」のIWDGRSTFまたはWWDGRSTFが立ちます。

図4:ウォッチドッグタイマーの基本構成 (クリックで拡大)

ソフトウェアリセット

 ソフトウェアで強制的にリセットをかける方法をソフトウェアリセットと呼びます。直接リセットする命令を持っているマイコンもありますし、レジスタをセットすることでリセットするマイコンもあります。リセット方法は各マイコンでさまざまです。

 STM32F4シリーズの場合、「アプリケーション割り込みおよびリセット制御レジスタ」の中のSYSRESETREQビットをセットすることで、リセットできます。

 この場合、「RCC クロック制御およびステータスレジスタ(RCC_CSR)」の中のSFTRSTFフラグが立ちますので、ほかのリセットと区別することができます。

低消費電力管理リセット

 低消費電力管理リセットとは、マイコンが低消費電力モードに入る時にリセットすることです。例えば、STM32F4シリーズでは、スタンバイモードまたはストップモードに入る代わりに、リセットをかけることができます。

 具体的には、スタンバイモードの場合、ユーザオプションバイトのnRST_STDBYビットを前もってリセットしておきます。ストップモードの場合は、ユーザーオプションバイトのnRST_STOPビットをリセットしておきます。これらのビットは、ソフトウェアで読み出せるので、ほかのリセットと区別することができます。

図5:低消費電力管理リセット(STM32F4シリーズの場合)

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.