STM32G0 - IWDG
独立型ウォッチドッグ
レビジョン 1.0

STM32 独立型ウォッチドッグのプレゼンテーションへようこそ。
ここでは、プログラムされた時間が経過するとマイクロコントローラをリセットできる（ただし、ダウンカウンタの内容をその値が 0 になる前にプログラムがリフレッシュする場合を除く）このタイマの主な機能について説明します。

1

概要

2

• ソフトウェア障害による誤動作を検出して解決するのに役立つ• 予想されるタイム･ウィンドウ内にリフレッシュされない場合にシステム･リセットをトリガ• メイン･クロックに障害が発生した場合でも常にアクティブ• 一度有効化すると無効にできず、リフレッシュする必要がある

アプリケーション側の利点• メインアプリケーション外の完全に独立したプロセス• ハードウェア開始またはソフトウェア開始を選択可能• VDD 電源ドメインに属しているため、STANDBY およびSHUTDOWN 電力モードではアクティブのままになる

独立型ウォッチドッグは、ソフトウェアの障害による誤動作を検出して解決するために使用されます。
予想されるタイムウィンドウ内にリフレッシュされない場合にリセットシーケンスをトリガします。
そのクロックは独立した 32 kHz 低速内部 RC オシレータ（LSI）であるため、メインクロックに障害が発生してもアクティブのままとなります。
一度有効化されると、低速内部オシレータが強制的にアクティブ化され、リセットによってのみ無効にできます。
アプリケーションの主な利点の 1 つは、メインクロックから独立して実行できることです。
IWDG は VDD 電源ドメインに属しているため、マイクロコント
ローラが、Vcore 電源がオフになっている STANDBY およびSHUTDOWN 電力状態になっても、アクティブのままです。
2

主な機能

3

• IWDG の主な機能• 125µs～32.8秒の範囲でタイムアウトをプログラム可能• タイム･ウィンドウの幅をプログラム可能• 独立型RCオシレータ（LSI）からクロック供給• 次の場合にリセットを生成：• タイムアウト値に達した場合• リフレッシュがウィンドウ外で発生した場合• デバッグ･モードで停止可能• 自動的に有効になるように設定できる• 一度起動すると、IWDGを停止できない

独立型ウォッチドッグは、125 マイクロ秒から 32 秒までの広範囲なタイムアウト値に対応しています。
32 kHz RC オシレータによってクロックが供給され、独立型ウォッチドッグが有効である場合は無効にできません。
プログラムされたタイムアウト値が経過した場合や、プログラムされたタイムウィンドウ外でウォッチドッグのリフレッシュが発生した場合にリセットを生成します。
デバイスオプションビットにより、システムリセット後に独立型ウォッチドッグを自動的に有効にできます。
デバッグモードでの独立型ウォッチドッグの動作を定義できます。
一度起動すると、IWDG は停止できません。STOP モードおよび STANDBY モードではアクティブのままになります。
3ブロック図4

APB バスCORE 電圧ドメイン

APB クロック

プリスケーラレジスタ

ステータスレジスタ

再ロードレジスタ

キー
レジスタ

ウィンドウレジスタ（pclk）

12 ビット
再ロード値
32 kHz LSI ク
ロック（lsi_ck）

8 ビット
プリスケーラVDD 電圧ドメイン

IWDG リセット

12 ビットダウンカウンタ（iwdg_out_rst）

12 ビットウィンドウコンパレータIWDG

独立型ウォッチドッグレジスタは CORE 電圧ドメインに配置されていますが、その機能は VDD 電圧ドメインにあります。
次の 2 つのクロックが必要になります。
APB クロックは、レジスタへのアクセスに必要です。
LSI クロックは、ウォッチドッグの機能部分に必要です。
このアーキテクチャにより、独立型ウォッチドッグは STOP、STANDBY、および SHUTDOWN モードでもアクティブな状態を維持することができます。
プログラム可能な 8 ビットプリスケーラは、LSI オシレータ周波数を分周するために使用されます。
12 ビットダウンカウンタによってタイムアウト値が定義されます。

4

IWDGの機能詳細カウンタがWIN[11:0] に格納された値より大きいときにソフトウェアがカウンタを再ロードした場合に、リセットを生成

CNT ダウンカウンタ
リフレッシュ禁止

リフレッシュ許可時間

この領域で更新が発生した
場合

IWDG リセット

5

IWDGのリセットを防ぐには、カウンタの値がタイム･ウィンドウ値 WIN[11:0] より小さいときにウォッチドッグをリフレッシュする。

この図は、独立型ウォッチドッグがどのように動作するかを示しています。
ダウンカウンタがゼロに達すると、ウォッチドッグリセットがアクティブになります。
これは、アプリケーションソフトウェアがウィンドウ型ウォッチドッグを時間通りにリフレッシュしなかった場合に発生します。
ダウンカウンタがウィンドウレジスタに格納された値より大きいときにソフトウェアがウォッチドッグをリフレッシュした場合にも、リセットが生成されます。
ウォッチドッグのリセットを防ぐには、ダウンカウンタの値が 0以外で、タイムウィンドウ値より小さいときにリフレッシュが発生する必要があります。

5

IWDGハードウェア開始の設定

6• IWDGハードウェア開始では、システム･リセット後にIWDGを自動的に有効化• カウンタが0になる前にウィンドウ内でソフトウェアによってキー･レジスタ（IWDG_KR）に 0x0000 AAAA を定期的に書き込む必要がある（ウィンドウオプションが有効である場合）

独立型ウォッチドッグハードウェアは、デバイスのオプションバイトによって有効になります。
ハードウェアモードが有効になっている場合、システムがリセットされるたびに、ウォッチドッグは自動的にダウンカウントに0xFFF をロードし、カウントダウンを開始します。
このオプションが選択されている場合、リセットを防ぐには、カウンタが 0 になる前にタイムウィンドウ内で定期的にキーレジスタをリフレッシュする必要があります。

6

IWDGソフトウェア開始の設定

7• レジスタIWDG_KR に 0x0000_CCCCを書き込むことによって、IWDG を有効にする• レジスタIWDG_KR に 0x0000_5555を書き込むことによって、レジスタのアクセスを有効にする• レジスタIWDG_PR をプログラムすることによって、IWDGプリスケーラをセット• 再ロード･レジスタ（IWDG_RLR）をセット• レジスタが更新されるのを待つ（IIWDG_SR = 0x0000_0000）• ウィンドウ･オプション有効：ウィンドウ値をIWDG_WINRレジスタに書き込む。これにより、カウンタ値IWDG_RLRが自動的にリフレッシュされる• ウィンドウ･オプション無効：レジスタIWDG_KRに0x0000_AAAAを書き込むことにより、カウンタ値をIWDG_RLRでリフレッシュする

独立型ウォッチドッグのソフトウェア開始は、わずか数ステップで設定されます。


最初のステップは、ウォッチドッグを開始する値 0x0000_CCCC をキーレジスタに書き込むことです。
次に、0x0000_5555 を書き込んでキーをアンロックし、独立型ウォッチドッグレジスタの保護を解除します。
カウンタクロックを供給するプリスケーラ分周回路を選択して、IWDG_PR レジスタに独立型ウォッチドッグプリスケーラをセットします。
再ロードレジスタ（IWDG_RLR）に書き込んで、ウォッチドッグカウンタにロードされる値を定義します。

前のレジスタにアクセスした後、レジスタが更新されていることを確認するた
めに、IWDG_SR ビットがリセットされるのを待つ必要があります。


ここで、独立型ウォッチドッグウィンドウオプションを有効にするか無効にするかという 2 つのオプションを選択できます。
• ウィンドウオプションを有効にするには、IWDG_WINR レジスタにウィンドウ値を書き込みます。
• そうしない場合には、キーレジスタに 0x0000_AAAA を書き込んでカウンタをリフレッシュし、ウィンドウオプションを無効化します。
7

IWDG設定とリセットフラグ

8• IWDGタイムベースの設定：• IWDGタイムベースはLSIクロック（32kHz）からプリスケールされる• 7個のプリデバイダ：IWDG_PRレジスタで4～256を選択可能（および12ビット・ウォッチドッグ・カウン
タ再ロード値、RLR[11:0]）• 次の式を使用してIWDGタイムアウトを設定：
tIWDG = tLSI x 4 x 2 PR x (RL +1)
ここで、tLSI = 1/32000 = 31.25 µs、PR と RL は IWDG レジスタのフィールド• IWDGリセットはRCCレジスタで識別可能

IWDG タイムベースは、32 kHz の LSI クロックからプリスケールされます。IWDG_PR プリスケーラレジスタは、LSI クロック周波数を 4 から最大 256 の間の値で分周できます。ウォッチ
ドッグカウンタ再ロード値は、IWDG_RLR レジスタに書き込まれる 12 ビット値です。
式を使用して、独立型ウォッチドッグのタイムアウトを決定できます。独立型ウォッチドッグの時間は、LSI 周期とそのプリスケーラ、および選択されたウォッチドッグカウンタ再ロード値に基づいています。

リセットおよびクロック制御（RCC）は、リセットのソースを示すレジスタを備えていることに注意してください。
このようにして、ブートプログラムは、リセットが独立型ウォッチドッグによって行われたかどうかを確認できます。

8

低消費電力モード
モード

9

説明

RUN

アクティブ*

SLEEP

アクティブ*STOP 0

アクティブ*STOP 1

アクティブ

STANDBY

アクティブ

SHUTDOWN

アクティブ* IWDG が有効な場合

IWDG はすべてのモードでアクティブにできます。
そのため、低消費電力モードが実装されているときに、マイクロコントローラの状態を維持する必要がある場合は、ウォッチドッグのサービスを提供するために周期的なウェイクアップが必要です。

9