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

機能

ドキュメント内 TOSHIBA CORPORATION 2009 All Rights Reserved (ページ 101-106)

第 5 章 ウォッチドッグタイマ(WDT)

5.3 機能

ウォッチドッグタイマは

8

ビットアップカウンタのオーバーフロー検出、

8

ビットアップカウンタクリ アの禁止時間でのクリア動作検出により、

CPU

の暴走、デッドロックを検出することができます。

また、

8

ビットアップカウンタのカウント値を不定期に読み出し、前回の読み出し値と比較すること で、ウォッチドッグタイマの停止などの異常を検出することができます。

5.3.1 ウォッチドッグタイマ動作の許可/禁止の設定

WDCTR<WDTEN>を"1"にセットするとウォッチドッグタイマの動作が許可され、8

ビットアップ

カウンタはソースクロックのカウントを始めます。

WDCTR<WDTEN>はリセット後のウォーミングアップ動作解除後に"1"に初期化されるため、ウォ

ッチドッグタイマは許可されています。

ウォッチドッグタイマ動作を禁止するには

WDCTR<WDTEN>を"0"にクリアした後に WDCDR

0xB1

を書き込みます。ウォッチドッグタイマ動作を禁止すると

8

ビットアップカウンタは

"0"

にクリ アされます。

注)

8

ビットアップカウンタのオーバーフローと

WDCTR<WDTEN>が"1"のときの WDCDR

への

0xB1 (Disable

コード)の書き込みタイミングが重なった場合、ウォッチドッグタイマ動作の禁止が優先され、オーバーフ ロー検出は行われません。

再度、ウォッチドッグタイマの動作を許可するためには

WDCTR<WDTEN>を"1"にセットします。

WDCDR

への制御コード書き込みは必要ありません。

8ࡆ࠶࠻ࠕ࠶ࡊࠞ࠙ࡦ࠲୯

࠙ࠜ࠶࠴࠼࠶ࠢ࠲ࠗࡑߩ

࠰࡯ࠬࠢࡠ࠶ࠢ

WDCTR<WDTEN>

0x00 0x01 0xFF

WDCTR<WDTEN>

ഀࠅㄟߺⷐ᳞ାภ

0x00

ࠝ࡯ࡃ࡯ࡈࡠ࡯ᤨ㑆

ࠝ࡯ࡃ࡯ࡈࡠ࡯ᤨ㑆

1ࠢࡠ࠶ࠢ(Max.)

図 5-2 WDCTR<WDTEN>のセットタイミングとオーバーフロー時間

注)

8

ビットアップカウンタのソースクロックは

WDCTR<WDTEN>と非同期に動作しています。そのため、

WDCTR<WDTEN>を"1"にした後の最初の 8

ビットアップカウンタのオーバーフロー時間は最大

1

ソース クロック分短くなることがあります。8ビットアップカウンタのクリア動作はオーバーフロー時間-1ソー スクロック周期以内に行うようにしてください。

5.3.2 8 ビットアップカウンタのクリア時間の設定

WDCTR<WDTW>で 8

ビットアップカウンタのクリア時間を設定します。

WDCTR<WDTW>が"00"のとき、クリア時間は 8

ビットアップカウンタのオーバーフロー時間と同

じとなり、いつでも

8

ビットアップカウンタのクリア動作を行えます。

WDCTR<WDTW>

"00"

以外のとき、クリア時間は

8

ビットアップカウンタのオーバーフロー時間 の決まった時間のみとなり、クリア時間外で

8

ビットアップカウンタのクリア動作を行うと、ウォッ チドッグタイマ割り込み要求信号が発生します。

このとき、ウォッチドッグタイマはクリアされずカウントを継続します。クリア時間中で

8

ビット アップカウンタをクリアしないと

WDCTR<WDTOUT>の設定に応じて、オーバーフローによるウォ

ッチドッグタイマリセット要求信号またはウォッチドッグタイマ割り込み要求信号が発生します。

WDCTR<WDTW>=̍00̍ߩߣ߈ 8ࡆ࠶࠻ࠕ࠶ࡊࠞ࠙ࡦ࠲୯

WDCTR<WDTW>=̍01̍ߩߣ߈ WDCTR<WDTW>=̍10̍ߩߣ߈ WDCTR<WDTW>=̍11̍ߩߣ߈

0x00 0x01 0x3F 0x40 0x7F 0x80 0xBF 0xC0 0xFF 0x00

0xFF

ࠢ࡝ࠕᤨ㑆

ࠢ࡝ࠕᤨ㑆

ࠢ࡝ࠕᤨ㑆ᄖ

ࠢ࡝ࠕᤨ㑆

ࠢ࡝ࠕᤨ㑆ᄖ

ࠢ࡝ࠕᤨ㑆

ࠢ࡝ࠕᤨ㑆ᄖ

図 5-3 WDCTR<WDTW>と 8 ビットアップカウンタのクリア時間

5.3.3 8 ビットアップカウンタのオーバーフロー時間の設定

WDCTR<WDTT>で 8

ビットアップカウンタのオーバーフロー時間を設定します。

8

ビットアップカウンタがオーバーフローすると

WDCTR<WDTOUT>

の設定に応じて、ウォッチ ドッグタイマリセット要求信号またはウォッチドッグタイマ割り込み要求信号が発生します。

暴走検出信号としてウォッチドッグタイマ割り込み要求信号が選択されていると、オーバーフロー 発生後もウォッチドッグカウンタのカウント動作は継続します。

なお、STOPモード (ウォーミングアップ中を含む) または IDLE/SLEEPモード中、ウォッチドッグ タイマは、一時的にカウントアップ停止し、

STOP/IDLE/SLEEP

モード解除後、カウントアップを再 開します。

STOP/IDLE/SLEEP

モード解除直後に

8

ビットアップカウンタのオーバーフローが発生し ないように、動作モード遷移前に

8

ビットアップカウンタをクリアすることを推奨します。

5-1

ウォッチドッグタイマオーバーフロー時間

(fcgck = 10.0 MHz, fs = 32.768 kHz

)

WDTT

ウォッチドッグタイマオーバーフロー時間 [s]

NORMALモード SLOW

DV9CK = 0 DV9CK = 1 モード

00 26.21 m 62.50 m 62.50 m

01 104.86 m 250.00 m 250.00 m

10 419.43 m 1.000 1.000

11 1.678 4.000 4.000

注)

8

ビットアップカウンタのソースクロックは

WDCTR<WDTEN>と非同期に動作しています。そのため、

WDCTR<WDTEN>を"1"にした後の最初の 8

ビットアップカウンタのオーバーフロー時間は最大

1

ソース クロック分短くなることがあります。8ビットアップカウンタのクリア動作はオーバーフロー時間-1ソー スクロック周期以内に行うようにしてください。

5.3.4 8 ビットアップカウンタのオーバーフロー検出信号の設定

WDCTR<WDTOUT>

8

ビットアップカウンタのオーバーフローが検出されたときの検出信号を

設定します。

1.

ウォッチドッグタイマ割り込み要求信号選択の場合

(WDCTR<WDTOUT>="0"

のとき

) WDCTR<WDTOUT>

"0"

にクリアすると

8

ビットアップカウンタがオーバーフローした とき、ウォッチドッグタイマ割り込み要求信号が発生します。

ウォッチドッグタイマ割り込みはノンマスカブル割り込みですので、割り込みマスタ許可

フラグ

(IMF)

の設定に関係なく、必ず割り込み要求が受け付けられます。

注) 他の割り込み (ウォッチドッグタイマ割り込みを含む) を受付け中にウォッチドッグタイマ割り込みが発生した場 合、先の割り込み処理は保留され、直ちにウォッチドッグタイマ割り込み処理が実行されます。従って

RETN

命令 が実行されないままウォッチドッグタイマ割り込みが連続して発生すると、過重なネスティングによりマイコンが 誤動作する場合があります。

2.

ウォッチドッグタイマリセット要求信号選択の場合(WDCTR<WDTOUT>="1"のとき)

WDCTR<WDTOUT>

"1"

にセットすると

8

ビットアップカウンタがオーバーフローした とき、ウォッチドッグタイマリセット要求信号が発生します。

このウォッチドッグタイマリセット要求信号により、

TMP89FM42A

はリセットされ、ウ ォーミングアップ動作を開始します。

5.3.5 ウォッチドッグタイマの制御コードの書き込み

WDCDR

0x4E (Clear

コード)を書き込むと、8ビットアップカウンタは"0"にクリアされ、ソース クロックのカウントを続けます。

WDCTR<WDTEN>が"0"の状態で、WDCDR

0xB1 (Disable

コード)を書き込むと、ウォッチドッ グタイマの動作が禁止されます。

8

ビットアップカウンタのオーバーフロー時間未満の間隔で、かつクリア時間内に

8

ビットアップ カウンタをクリアすることで、

8

ビットアップカウンタのオーバーフローが発生しなくなります。

あらかじめプログラムをオーバーフローが発生しないように設計しておくことで、ウォッチドッグ タイマ割り込み要求信号による割り込み発生でプログラムの暴走、デッドロックの検出を行うことが できます。

また、ウォッチドッグタイマリセット要求信号によりマイコンにリセットをかけることで暴走、デ ッドロック状態から回復することができます。

(プログラム例) WDCTR<WDTEN>が"0"のとき、ウォッチドッグタイマ検出時間を220/fcgck [s] 、カウンタクリア時間をオーバーフロー時間 の半分に設定し、暴走検出時にウォッチドッグタイマリセット要求信号発生を行う。

LD (WDCTR), 0y00110011 ;WDTW←10 , WDTT←01, WDTOUT←1 8ビットアップカウンタのオーバーフロー

時間の半分を超え、オーバーフロー時間-ソースクロックの1周期分以内に8ビット アップカウンタをクリア

:

:

:

LD (WDCDR), 0x4E ;8ビットアップカウンタのクリア

8ビットアップカウンタのオーバーフロー 時間の半分を超え、オーバーフロー時間-ソースクロックの1周期分以内に8ビット アップカウンタをクリア

:

:

:

LD (WDCDR), 0x4E ;8ビットアップカウンタのクリア

注)

8

ビットアップカウンタのオーバーフローと

WDCDR

への

0x4E (Clear

コード)の書き込みタイミングが重 なった場合、8ビットアップカウンタのクリアが優先され、オーバーフロー検出は行われません。

5.3.6 8 ビットアップカウンタの読み出し

WDCNT

を読み出すことで、8ビットアップカウンタのカウンタ値を読み出すことができます。

WDCNT

を不定期に読み出し、前回の読み出し値と比較することで、8ビットアップカウンタの停

止を検出することができます。

5.3.7 ウォッチドッグタイマのステータスの読み出し

WDST

によりウォッチドッグタイマのステータスを読み出すことができます。

WDST<WDTST>

はウォッチドッグタイマの動作が許可されていると

"1"

にセットされ、禁止されて

いると"0"にクリアされます。

WDST<WINTST2>は 8

ビットアップカウンタのオーバーフローによるウォッチドッグタイマ割り

込み要求信号が発生したときに"1"にセットされます。

WDST<WINTST1>

8

ビットアップカウンタのクリア動作がクリア時間外で行われたことによる

ウォッチドッグタイマ割り込み要求信号発生で

"1"

にセットされます。

ウォッチドッグタイマの割り込みサービスルーチン内で

WDST<WINTST2>

WDST<WINTST1>

を 読み出すことでウォッチドッグタイマ割り込み要求信号が発生した要因を知ることができます。

WDST<WINTST2>、WDST<WINTST1>ともに WDST

を読み出すことで"0"にクリアされます。ま た、WDSTの読み出しと

WDST<WINTST2>、WDST<WINTST1>の成立タイミングが重なったとき、

クリア動作よりも成立動作が優先され

"1"

にセットされます。

ドキュメント内 TOSHIBA CORPORATION 2009 All Rights Reserved (ページ 101-106)