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

ウォッチドッグタイマの制御

ドキュメント内 TMP86FH47BUG (ページ 71-76)

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

6.2 ウォッチドッグタイマの制御

もし、何らかの原因で暴走またはデッドロック状態に陥り、2進カウンタのクリアが行われない場 合、2進カウンタのオーバフローでウォッチドッグタイマ出力がアクティブになります。このとき

WDTCR1<WDTOUT> =“1”

なら、リセット要求が発生し

RESET

端子から“

L

”レベルを出力すると ともに内蔵ハードウエアをリセットします。また、WDTCR1<WDTOUT> =“0” なら、ウォッチドッ グタイマ割り込み (INTWDT) を発生します。

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

STOP/IDLE/SLEEP

モード解除後、自動的に再起動

(

カウ ントアップ継続) します。

注) ウォッチドッグタイマは内部デバイダと

2

段の

2

進カウンタによって構成されており、クリアコード (4EH) を書き込んだ場合、2進カウンタはクリアされますが、内部デバイダはクリアされません。従って

2

進カ ウンタのオーバフロー時間は、WDTCR2レジスタにクリアコード (4EH) を書き込むタイミングによっ て、最短で

WDTCR1<WDTT>の設定時間の 3/4

となる場合がありますので、これより短い周期でクリアコ ードを書き込んでください。

(プログラム例)ウォッチドッグタイマ検出時間を

2

21

/fc [s]

に設定し、暴走検出リセットを行う。

LD (WDTCR2), 4EH ; 2進カウンタのクリア

LD (WDTCR1), 00001101B ; WDTT←10, WDTOUT←1

WDT検出 時間3/4以内

LD (WDTCR2), 4EH ; 2進カウンタのクリア

: ; (WDTT変更直前直後は必ずクリアします)

:

LD (WDTCR2), 4EH ; 2進カウンタのクリア

WDT検出 時間3/4以内 :

LD (WDTCR2), 4EH ; 2進カウンタのクリア

ウォッチドッグタイマ制御レジスタ

WDTCR1 (0034H)

7 6 5 4 3 2 1 0

(ATAS) (ATOUT) WDTEN WDTT WDTOUT (初期値: **11 1001)

WDTEN ウォッチドッグタイマの

許可/禁止

0: 禁止 (WDTCR2にディセーブルコードを書き込む必要あり

1: 許可

Write only

WDTT

ウォッチドッグタイマ 検出時間の設定 単位: [s]

NORMAL1/2モード SLOW1/2

モード

Write only DV7CK = 0 DV7CK = 1

00 225/fc 217/fs 217/fs

01 223/fc 215/fs 215fs

10 221fc 213/fs 213fs

11 219/fc 211/fs 211/fs

WDTOUT ウォッチドッグタイマ

出力の選択

0: 割り込み要求 1: リセット要求

Write only

1) WDTOUT

を“0” にクリア後は、プログラムで“1” に再セットできません。

2) fc; 高周波クロック[Hz]  fs; 低周波クロック[Hz] *; Don’t care

3) WDTCR1

は書き込み専用レジスタですので、ビット操作などのリードモディファイライト命令ではアクセスできませ

ん。読み出すと不定値が読み込まれるためです。

4) STOP

モード起動時は、STOPモードに入る直前にウォッチドッグタイマを禁止するか、カウンタをクリアしてくださ

い。また、カウンタをクリアした場合、STOPモード解除直後に再度カウンタをクリアしてください。

5) WDTEN

を“1” から“0” に切り替える場合は、誤動作の原因となる場合がありますので「6.2.3 -- ウォッチドッグタイマ のディセーブル」に従ってレジスタを設定してください。

TMP86FH47BUG

6

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

6.2

ウォッチドッグタイマの制御

Page 54

ウォッチドッグタイマ制御レジスタ2

WDTCR2 (0035H)

7 6 5 4 3 2 1 0

(初期値: **** ****)

WDTCR2 ウォッチドッグタイマの

制御コード書き込み

4EH: ウォッチドッグタイマの2進カウンタのクリア (クリアコード)

Write B1H: ウォッチドッグタイマのディセーブル only

(ディセーブルコード) D2H アドレストラップ領域選択有効 その他 無効

1)

ディセーブルコードは、WDTCR1<WDTEN> =“0” のとき以外は書き込み無効です。

2) *; Don’t care

3)

ウォッチドッグタイマの

2

進カウンタのクリアは割り込みタスクで行わないでください。

4)

クリアコード (4EH) は

WDTCR1<WDTT>の設定時間の 3/4

以内に書き込んでください。

6.2.2 ウォッチドッグタイマのイネーブル

ウォッチドッグタイマは、WDTCR1<WDTEN> を “1”にセットするとイネーブルになります。リ セット時、WDTCR1<WDTEN>は“1” に初期化されますので、リセット解除後は自動的にイネーブ ルになります。

6.2.3 ウォッチドッグタイマのディセーブル

ウォッチドッグタイマをディセーブルにするには、以下の順序でレジスタを設定してください。以 下の順序以外の方法でレジスタを設定すると、マイコンが誤動作する場合があります。

1.

割り込みマスタ許可フラグ

(IMF)

を“

0”

に設定します。

2. WDTCR2

にクリアコード (4EH) を設定します。

3. WDTCR1<WDTEN>

を“

0”

に設定します。

4. WDTCR2

にディセーブルコード (B1H) を設定します。

注) ウォッチドッグタイマのディセーブル中は、ウォッチドッグタイマの

2

進カウンタはクリアされています。

(プログラム例)ウォッチドッグタイマのディセーブル

DI ; IMF ← 0

LD (WDTCR2) , 04EH ; 2進カウンタのクリア

LDW (WDTCR1) , 0B101H ; WDTEN ← 0, WDTCR2 ← ディセーブルコード

6-1 ウォッチドッグタイマ検出時間(例: fc = 16.0 MHz, fs = 32.768 kHz

時)

WDTT

ウォッチドッグタイマ検出時間[s]

NORMAL1/2モード

SLOWモード

DV7CK = 0 DV7CK = 1

00 2.097 4 4

01 524.288 m 1 1

10 131.072 m 250 m 250 m

11 32.768 m 62.5 m 62.5 m

6.2.4 ウォッチドッグタイマ割り込み (INTWDT)

WDTCR1<WDTOUT>

が“

0

”のときに

2

進カウンタがオーバフローすると、ウォッチドッグタイ

マ割り込み要求

(INTWDT)

が発生します。

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

(IMF)

の設定に関係なくかならず割り込みは受け付けられます。

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

RETN

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

なお、ウォッチドッグタイマ割り込みを使用する場合は、

WDTCR1<WDTOUT>

を設定する前にス タックポインタを設定してください。

(プログラム例)ウォッチドッグタイマ割り込みの設定例

LD SP, 023FH ; SPの設定

LD (WDTCR1) , 00001000B ; WDTOUT←0

6.2.5 ウォッチドッグタイマリセット

WDTCR1<WDTOUT>

が“

1

”のときに

2

進カウンタがオーバフローすると、ウォッチドッグタイ

マのリセット要求が発生します。ウォッチドッグタイマのリセット要求が発生すると、RESET端子 から“

L

”レベルを出力するとともに内蔵ハードウエアはリセットされます。リセット時間は、最大

24/fc [s] (1.5μs @ fc = 16.0 MHz)

です。

注)

SLOW1

モードでウォッチドッグタイマリセットが発生した場合、高周波クロックが発振を再開するため

リセット時間は 最大で

24/fc (高周波クロック) となります。ただし、高周波クロックの発振開始時に発振

周波数にゆらぎがある場合は、リセット時間は誤差を含むことになり、概略値としてとらえてください。

TMP86FH47BUG

6

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

6.2

ウォッチドッグタイマの制御

Page 56

2 1 219/fc [s]

217/fc

2 3 0

3 0

1

INTWDT

(WDTCR1<WDTOUT>="0")

(WDTCR1<WDTOUT>="1")

2

WDT (High-Z)

(WDTT = "11" )

WDTCR2 4EH

図 6-2 ウォッチドッグタイマ割り込み/リセット

ドキュメント内 TMP86FH47BUG (ページ 71-76)