• 検索結果がありません。

WDT - ウォッチドッグ タイマ

ドキュメント内 xmegaD.PDF (ページ 64-68)

9.1. 要点

計時経過時間前に計時器がリセットされない場合にデバイス リセットを発行

専用発振器からの非同期動作

32kHz超低電力発振器の1kHz出力

8msから8sまで11種の選択可能な時間経過周期

2つの動作種別

標準動作

窓動作

望まれない変更を防ぐための形態設定施錠 9.2. 概要

ウォッチドッグ タイマ(WDT)は正しいプログラム動作を監視するシステム機能です。暴走や停滞コードのような異常状況からの回復を可能にしま す。WDTはタイマで、予め定義された時間経過周期に形態設定され、許可された時に定常的に走行します。WDTが時間経過周期内 にリセットされない場合、WDTはマイクロ コントローラ リセットを発行します。WDTは応用コードからのWDR(Watchdog Timer Reset)命令を実行 することによってリセットされます。

窓動作はWDTがリセットされなければならない総時間経過期間内の時間幅または窓の定義を可能にします。WDTが速すぎまたは遅 すぎでこの窓の外側でリセットされると、システム リセットが発行されます。標準動作に比べ、これはコード異常が一定のWDR実行を引き起こ す状況を捕らえることもできます。

許可されていれば、WDTは活動動作と全ての電力(休止形態)動作で作動します。これは非同期で、CPUと無関係なクロック元で動作 し、例え主クロックが停止したとしても、システム リセットを発行するための動作を継続します。

形態設定変更保護機構はWDT設定が事故によって変更され得ないことを保証します。安全性を増すため、WDT設定を固定化する ためのヒューズも利用可能です。

9.3. 標準動作

標準動作では単一時間経過周期がWDTに設定されます。時間経過が 起きる前にWDTが応用コードからリセットされなかった場合、WDTはシステム リ セットを発行します。8msから8sまで選択可能な11種の可能なWDT時間経 過周期(TOWDT)があり、その時間経過周期の何時でもWDTをリセットでき ます。新しい時間経過周期はWDR命令によってWDTがリセットされる毎に 開始されます。既定時間経過周期はヒューズによって制御されます。標準 動作は図9-1.で図解されます。

図9-1. 標準動作 WDT計数

t(ms) 適時WDTリセット システム リセット

WDT 時間経過 TOWDT=16ms

TOWDT 5 10 15 20 25 30

9.4. 窓動作

窓動作ではWDTが通常時間経過周期(TOWDT)と閉鎖窓時間 経過周期(TOWDTW)の、2つの異なる時間経過周期を使用しま す。閉鎖窓時間経過周期はWDTをリセットできない8msから8sま での幅を定義します。この期間中にWDTがリセットされた場合、

WDTはシステム リセットを発行します。通常WDT時間経過周期もま た8msから8sでWDTをリセットできる(すべき)間の開放区間の幅を 定義します。開放区間は常に閉鎖区間に続き、故に時間経過 周期の総合幅は閉鎖窓と開放窓の時間経過周期の合計です。

既定の閉鎖窓時間経過周期はヒューズによって制御されます(開 放と閉鎖の両方の区間がヒューズによって制御されます)。窓動作 は図9-2.で図解されます。

図9-2. 窓動作

WDT計数

t(ms) 適時WDTリセット

早期WDTリセット システム リセット TOWDT=8ms

TOWDT 5 10 15 20 25 30 TOWDTW=8ms

TOWDTW 閉鎖

開放

9.5. ウォッチドッグ タイマ クロック

9.6. 形態設定保護と施錠

WDTはWDTの予期せぬ変更を避けるために2つの安全機構で設計されています。

最初の機構はWDT制御(CTRL)レジスタの変更に対して時間制限手順を使用する形態設定変更保護機構です。加えて、制御レジスタ に書かれる新しい形態設定ついては、そのレジスタの変更許可(CEN)ビットが同時に書かれなければなりません。

2つ目の機構はWDT施錠(WDLOCK)ヒューズ設定によって形態設定を施錠します。このヒューズが設定(WDLOCK=0)されると、ウォックドッ グ タイマ制御レジスタは変更できず、従ってWDTはソフトウェアから禁止できません。システム リセット後にWDTは形態設定された動作で再び 始めます。WDT施錠ヒューズがプログラム(0)されると、窓動作時間経過周期は変更できませんが、窓動作自体は未だ許可または禁止が 行えます。

9.7. レジスタ説明

9.7.1. CTRL - 制御レジスタ (Control register)

- - PER3~0

7 6 5 4 3 2 1 0

ビット

CTRL +$00

R/W R/W

R/W R/W

R/W R/W

R R

0 x

x x

x x

0 0

Read/Write 初期値

ENABLE CEN

注: 施錠時は書き込みが禁止されます。初期値のxはヒューズ設定に依存します。

ビット7,6 - 予約 (Reserved)

これらのビットは未使用で将来用に予約されています。将来のデバイスとの互換性のため、このレジスタが書かれる時に、これらのビットへ 常に0を書いてください。

ビット5~2 - PER3~0 : 時間経過周期 (Timeout Period)

これらのビットは1kHz超低電力(ULP)発振器周期数としてウォッチドッグ時間経過周期を決めます。窓動作では、これらのビットが開放窓 区間を定義します。代表的な各種時間経過周期が表9-1.で得られます。これらのビットの初期値は電源ONで格納される、ウォッチドッグ 時間経過周期(WDPER)ヒューズによって設定されます。

これらのビットを変更するためにウォッチドッグ変更許可(CEN)ビットが同時に1を書かれなければなりません。これらのビットは形態設定変更 保護機構によって保護されています。詳細な記述については10頁の「形態設定変更保護」を参照してください。

表9-1. ウォッチドッグ時間経過周期 PER3~0 群形態

設定

代表

周期 PER3~0 群形態 設定

代表

周期 PER3~0 群形態 設定

代表

周期 PER3~0 群形態 設定

代表 周期 0 0 0 0 8CLK 8ms 0 1 0 0 128CLK 128ms 1 0 0 0 2KCLK 2.0s 1 1 0 0 - (予約) 0 0 0 1 16CLK 16ms 0 1 0 1 256CLK 256ms 1 0 0 1 4KCLK 4.0s 1 1 0 1 - (予約) 0 0 1 0 32CLK 32ms 0 1 1 0 512CLK 512ms 1 0 1 0 8KCLK 8.0s 1 1 1 0 - (予約) 0 0 1 1 64CLK 64ms 0 1 1 1 1KCLK 1.0s 1 0 1 1 - (予約) 1 1 1 1 - (予約) 注: 予約設定はどの時間経過周期設定も与えません。

ビット1 - ENABLE : 許可 (Enable)

このビットの設定(1)がWDTを許可します。このビットの解除(0)はウィッチドッグ タイマを禁止します。

このビットを変更するには制御(CTRL)レジスタの変更許可(CEN)ビットが同時に1を書かれなければなりません。このビットは形態設定変 更保護機構によって保護されています。詳細な記述については9頁の「形態設定変更保護」を参照してください。

ビット0 - CEN : 変更許可 (Change Enable)

このビットは制御(CTRL)レジスタの形態設定変更の可能性を許可します。このレジスタへ新しい値を書く時に、それが実施されるために その変更と同時に、このビットが1を書かれなければなりません。このビットは形態設定変更保護機構によって保護されています。詳細 な記述については10頁の「形態設定変更保護」を参照してください。

9.7.2. WINCTRL - 窓動作制御レジスタ (Window Mode Control register)

- - WPER3~0

7 6 5 4 3 2 1 0

ビット

WINCTRL +$01

R/W R/W

R/W R/W

R/W R/W

R R

0 x

x x

x x

0 0

Read/Write 初期値

WEN WCEN

注: 施錠時はWPER3~0の書き込みが禁止されます。初期値のxはヒューズ設定に依存します。

ビット7,6 - 予約 (Reserved)

これらのビットは未使用で将来用に予約されています。将来のデバイスとの互換性のため、このレジスタが書かれる時に、これらのビットへ 常に0を書いてください。

ビット5~2 - WPER3~0 : 窓動作時間経過周期 (Window Mode Timeout Period)

これらのビットは1kHz超低電力(ULP)発振器周期数として窓動作での閉鎖窓周期を決めます。代表的な各種閉鎖窓周期が表9-2.で 得られます。これらのビットの初期値はウォッチドッグ窓時間経過周期(WDWPER)ヒューズによって設定され、電源ONで格納されます。標

表9-2. ウォッチドッグ閉鎖窓周期 WPER

3~0

群形態 設定

代表 周期

WPER 3~0

群形態 設定

代表 周期

WPER 3~0

群形態 設定

代表 周期

WPER 3~0

群形態 設定

代表 周期 0 0 0 0 8CLK 8ms 0 1 0 0 128CLK 128ms 1 0 0 0 2KCLK 2.0 s 1 1 0 0 - (予約) 0 0 0 1 16CLK 16ms 0 1 0 1 256CLK 256ms 1 0 0 1 4KCLK 4.0 s 1 1 0 1 - (予約) 0 0 1 0 32CLK 32ms 0 1 1 0 512CLK 512ms 1 0 1 0 8KCLK 8.0 s 1 1 1 0 - (予約) 0 0 1 1 64CLK 64ms 0 1 1 1 1KCLK 1.0 s 1 0 1 1 - (予約) 1 1 1 1 - (予約) 注: 予約設定はどの時間経過周期設定も与えません。

ビット1 - WEN : 窓動作許可 (Window Mode Enable)

このビットの設定(1)がウォッチドッグ窓動作を許可します。このビットを変更するには窓動作制御(CTRL)レジスタの窓動作変更許可(WCEN) ビットが同時に1を書かれなければなりません。このビットは形態設定変更保護機構によって保護されています。詳細な記述については 10頁の「形態設定変更保護」を参照してください。

ビット0 - WCEN : ウォッチドッグ窓動作変更許可 (Watchdog Window Mode Change Enable)

このビットは窓動作制御(CTRL)レジスタの形態設定変更の可能性を許可します。このレジスタへ新しい値を書く時に、それが実施される ためにその変更と同時に、このビットが1を書かれなければなりません。このビットは形態設定変更保護機構によって保護されています が、WDT施錠ヒューズによって保護されません。

9.7.3. STATUS - 状態レジスタ (Status register)

- - -

-7 6 5 4 3 2 1 0

ビット

STATUS +$02

R R

R R

R R

R R

0 0

0 0

0 0

0 0

Read/Write 初期値

- SYNCBUSY

ビット7~1 - 予約 (Reserved)

これらのビットは未使用で将来用に予約されています。将来のデバイスとの互換性のため、このレジスタが書かれる時に、これらのビットへ 常に0を書いてください。

ビット0 - SYNCBUSY : 同期中フラグ (Synchronization Busy Flag)

このフラグは制御(CTRL)レジスタまたは窓動作制御(WINCTRL)レジスタ書き込み後に設定(1)され、データがシステム クロックからWDTクロックの 領域に同期されつつあります。このビットは同期化完了時に自動的に解除(0)されます。この同期化はウォッチドッグ タイマ用の許可(ENA BLE)ビットが設定(1)されている時にだけ行われます。

9.8. レジスタ要約

アドレス 略称 ビット7 ビット6 ビット5 ビット4 ビット3 ビット2 ビット1 ビット0 頁 STATUS

+$02 - - - SYNCBUSY

+$01 WINCTRL - - WPER7~0 WEN WCEN

66 CTRL

+$00 - - PER7~0 ENABLE CEN

67 66

ドキュメント内 xmegaD.PDF (ページ 64-68)