STM32H7x5、STM32H7x7ライン
WDSO
ウォッチドッグ･タイマ・システム概要
1.0版

こんにちは。このプレゼンテーションでは、STM32H7x5およびSTM32H7x7 MCUラインのウォッチドッグタイマのシステム概要をご紹介します。

1

概要

2

• STM32H7x5およびSTM32H7x7マイクロコントローラは、4つの組込みウォッチドッグ・ブロックを備える• オプション･バイトを使用して、ウォッチドッグの動作をユーザのアプリケーションに合わせることが可能

アプリケーション側のメリット
•
•

高い安全性
タイミングの正確さと柔軟性

STM32H7x5およびSTM32H7x7マイクロコントローラは、4つの組み込みウォッチドッグ・ブロックを備えており、高い安全性、タイミング精度、および柔軟性を兼ね備えています。オプション・バイトを使用して、ウォッチドッグの動作をユーザ・アプリケーションに適合させることができます。

2

ウォッチドッグ機能

3• 2つの独立したウォッチドッグ(IWDG1/2)は、それぞれCPU専用• 2つのウィンドウ・ウォッチドッグ(WWDG1/2)は、それぞれCPU専用• 各CPUは、もう一方のCPUがウィンドウ･ウォッチドッグのタイムアウトによりリセットされた場合、割込みを受けることが出来る• 各CPUは、専用のウィンドウ･ウォッチドッグの早期割込みを受信することが出来る• ウォッチドッグ機能はオプション･バイトで設定可能

内蔵のウォッチドッグブロックは、2つの独立したウォッチドッグ(IWDG1/2)と、それぞれのCPU専用の2つのウィンドウ・ウォッチドッグ(WWDG1/2)を備えています。各CPUは、ウィンドウ・ウォッチドッグのタイムアウトにより他のCPUがリセットされた場合に割込みを受け取ることができ、また、各CPUは専用のウィンドウ・ウォッチドッグの早期割込みを受け取ることができます。
ウォッチドッグ機能はオプションバイトで設定できます。

3

ブロック図
pclk

4

pclk

D1

D2

wwdg1_out_rst

WWDG2

wwdg1_ewit

CPU2
NVIC
wwdg2_ewit

c1_it_exti_wwdg2_rst

c2_it_exti_wwdg1_rst

EXTI

rst_cpu1
rst_cpu2
nresetRCC
iwdg1_out_rst

D3

IWDG1

wwdg2_out_rst

WWDG1

CPU1
NVIC

iwdg2_out_rst

IWDG2

VDD
ck_lsi

ウォッチドッグIWDG1とWWDG1はCPU1専用で、ウォッチドッグ
IWDG2とWWDG2はCPU2専用です。どちらのウォッチドッグ・ペ
リフェラル(独立型とウィンドウ型)も、ソフトウェアやハードウェ
アの故障による誤動作を検出し対策することができます。
ウィンドウウォッチドッグ(WWDG1/2)クロックはAPBクロックから派生したもので、アプリケーションの動作が異常に遅かったり早かったりするのを検出するようにプログラムできる、設定可能なタイムウィンドウを持っています。
WWDGは、ソフトウェアの実行を監視するのに最も適しています。各WWDGには、リセット信号と初期割込み信号が用意されています。
独立型ウォッチドッグ(IWDG1/2)は、低速クロック(LSI)で駆動されるため、メインクロックが故障しても動作します。そのため、ウォッチドッグをメインのアプリケーションから完全に独立して動作させる必要があるアプリケーションに最適です。IWDGは、予期せぬソフトウェアやハードウェアの故障から回復するための理想的なソリューションです。
4

ウォッチドッグ･クロックのイネーブル

5• 各コアは、RCCブロックを介してウィンドウ･ウォッチドッグ･クロックを有効にすることが可能• CPU1はRCC_APB3ENRレジスタでWWDG1を有効にし，CPU2はRCC_APB1LENRレジスタ
でWWDG2を有効にする• コアが、もう一つのコアが管理するウィンドウ・ウォッチドッグを有効にはできない• WWDGxENビットを0にすることで、WWDGを停止することはできない• IWDG1/2のウォッチドッグは、RCCブロックによってクロックがイネーブルされる必要はない• IWDG1はCPU1に、IWDG2はCPU2に暗黙的に割り当てられる• IWDG1とIWDG2は、オプション･バイトによるシステム･リセット後に自動的に有効になる

各コアは、RCCブロックを介してウィンドウウォッチドッグクロッ
クを有効にすることができます。RCC_APB3ENRレジスタのWWDG1ENビットを設定すると、WWDG1ブロッククロックが有効になり、RCC_APB1LENRレジスタのWWDG2ENビットを設定すると、WWDG2ブロッククロックが有効になります。
ソフトウェアは、WWDG1ENビットとWWDG2ENビットをそれぞれ'0'にすることで、WWDG1とWWDG2のダウンカウントを停止することはできません。
なお、いずれのコアも、他のコアが管理するウィンドウウォッチドッグを有効にすることはできません。
独立したウォッチドッグは、RCCブロックによって自分のクロックがイネーブルされる必要はありません。IWDG1はCPU1に、IWDG2はCPU2に暗黙的に割り当てられます。オプションバイト
により、システムリセット後にIWDG1とIWDG2のウォッチドッグを自動的に有効にすることができます。

5

ウォッチドッグの動作とCPUの状態

6• WWDGブロックは、対応するCPUがCSTOPモードに入ると停止する• ドメインがDSTANDBY状態になると、このドメインにあるWWDGブロックがリセットされる• IWDGブロックは、一度有効にすると常に有効なまま2つのオプションバイトにより、IWDGのダウンカウントを自由に行うことができる• オプションバイトIWDG_FZ_STOP IWDG1/2ダウンカウントを停止することができる
CPU1/CPU2がCSTOPモードまたはより深い低電力モードに入っている• IWDG_FZ_STANDBYオプションバイトは、製品がスタンバイ･モードになった時にのみ、IWDG1/2のダウンカウントをフリーズさせることができる

対応するCPUがCSTOPモードに入ると、WWDGブロックが停止します。ドメインがDSTANDBY状態になると、このドメインにあるWWDGブロックはリセットされます。
IWDGブロックは、一度有効にすると常に有効なままです。2つのオプションバイトにより、IWDGのダウンカウントを自由に行うことができます。
• IWDG_FZ_STOPオプションバイトは、CPU1/CPU2がCSTOPモードまたはより深い低電力モード（DSTOP ["D" "STOP"]、DSTANDBYまたは製品のスタンバイモード）に入っているときに、IWDG1/2のダウンカウントを自由に行うことができます。
• IWDG_FZ_STANDBYオプションバイトは、本製品がスタンバイモードになったときにのみIWDG1/2を停止させてダウンカウントさせることができます。

6

関連ペリフェラル

7• 必要に応じて、これらのペリフェラルのトレーニングをご参照ください• リセットとクロック･コントロール(RCC)• システム･ウィンドウ･ウォッチドッグ(WWDG)• 独立型ウォッチドッグ(IWDG)

必要に応じて、これらのペリフェラルのトレーニングをご参照く
ださい• リセットとクロックコントロール(RCC)• システムウィンドウウォッチドッグ(WWDG)• 独立型ウォッチドッグ(IWDG)

7