マイコンがリセットされる要因:Q&Aで学ぶマイコン講座(46)(3/4 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。46回目は、初心者の方からよく質問される「マイコンがリセットされる要因」についてです。
ウォッチドッグタイマーのカウント終了条件
ウォッチドッグタイマーは、『マイコンの暴走を監視するタイマー』のことです。プログラムは、何かしらの原因で暴走する時があります。そのため暴走を監視するハードウェアが必要になります。タイムアップするとマイコンをリセットするタイマーを設け、このタイマーで暴走を監視する手法がウォッチドッグタイマーです。
タイマーのカウンターがタイムアップする前に、プログラムでカウンターをリフレッシュします。リフレッシュされたカウンターは再びカウントを始めます。この動作をプログラムの一部に取り入れ、周期的にカウンターをリフレッシュします。プログラムが暴走すると、この周期的なカウンターのリフレッシュが行われなくなり、タイマーはタイムアップしてマイコンをリセットします。マイコンはリセットされると、再び最初から正常動作を開始し、暴走から復帰することができます。
ウォッチドッグタイマーのリセットはリセットピンから入る外部リセットと同じですが、ウォッチドッグタイマーのリセットであることを示すフラグが立ちます。そこで、リセット直後に実行されるプログラムの中で、そのフラグをチェックすれば、ウォッチドッグタイマーのリセットで起動したかどうかを判別できます。STM32F4シリーズでは、「RCC クロック制御およびステータスレジスタ(RCC_CSR)」のIWDGRSTFまたはWWDGRSTFが立ちます。
ソフトウェアリセット
ソフトウェアで強制的にリセットをかける方法をソフトウェアリセットと呼びます。直接リセットする命令を持っているマイコンもありますし、レジスタをセットすることでリセットするマイコンもあります。リセット方法は各マイコンでさまざまです。
STM32F4シリーズの場合、「アプリケーション割り込みおよびリセット制御レジスタ」の中のSYSRESETREQビットをセットすることで、リセットできます。
この場合、「RCC クロック制御およびステータスレジスタ(RCC_CSR)」の中のSFTRSTFフラグが立ちますので、ほかのリセットと区別することができます。
低消費電力管理リセット
低消費電力管理リセットとは、マイコンが低消費電力モードに入る時にリセットすることです。例えば、STM32F4シリーズでは、スタンバイモードまたはストップモードに入る代わりに、リセットをかけることができます。
具体的には、スタンバイモードの場合、ユーザオプションバイトのnRST_STDBYビットを前もってリセットしておきます。ストップモードの場合は、ユーザーオプションバイトのnRST_STOPビットをリセットしておきます。これらのビットは、ソフトウェアで読み出せるので、ほかのリセットと区別することができます。
Copyright © ITmedia, Inc. All Rights Reserved.