WDT 功能使用方法

SM59R WDT 功能使用方法
Application Note
WDT 功能使用方法
1
適用產品:SM59R16A2 / SM59R08A2
2
WDT(Watchdog Timer)使用說明:
2.1 WDT 燒錄時可在 information block 設定 WDT 禁能、致能及重置時間
2.2 WDT 禁能和致能:由 WDTENB 決定,當設定為”1”,WDT 致能,設定為”0”,WDT 禁能
2.3 WDT 重置時間:由 WDTM[3:0]決定,共有 16 組可供選擇
2.4 WDT counter 清除可由外部重置,或由軟體執行(寫入 0x55 至 SFR WDTK 即可)
2.5 WDTK 須不斷的執行清除,以確保 WDT counter 不會溢位
2.6 當 WDT counter 溢位時,WDTF 由硬體設定為”1”,並且重置 MCU,重置後 WDTF 由硬體
清除為”0”
2.7 以下為 WDT reset time 計算方式:
WDTCLK =
Fosc
12X 2 WDTM
256
WDTCLK
2.8 下表為 OSC 使用 22.1184MHz,計算 WDT reset time:
WDTENB
Fosc
WDTM
WDTCLK
WDT reset time
22.1184
1
0
1843200
0.000138889
1
22.1184
1
921600
0.000277778
22.1184
1
2
460800
0.000555556
22.1184
1
3
230400
0.001111111
22.1184
1
4
115200
0.002222222
22.1184
1
5
57600
0.004444444
22.1184
1
6
28800
0.008888889
1
22.1184
7
14400
0.017777778
22.1184
1
8
7200
0.035555556
22.1184
1
9
3600
0.071111111
22.1184
1
10
1800
0.142222222
22.1184
1
11
900
0.284444444
1
22.1184
12
450
0.568888889
22.1184
1
13
225
1.137777778
22.1184
1
14
112.5
2.275555556
22.1184
1
15
56.25
4.551111111
Watchdog reset time =
Specifications subject to change without notice, contact your sales representatives for the most recent information.
IRFWX-A115
1
Ver. A 2009/02
SM59R WDT 功能使用方法
Application Note
Fig. Watchdog timer block diagram
3
WDT 相關暫存器:
Mnemonic
WDTC
WDTK
Description
Watchdog timer
control register
Watchdog timer
refresh key
Direct
Bit 7
B6h
WDTF
Bit 6
Bit 5
Bit 4
Watchdog Timer
-
-
Bit 2
Bit 1
Bit 0
RESET
-
-
-
-
00h
-
B7h
Mnemonic: WDTC
7
6
WDTF
-
Bit 3
WDTK[7:0]
5
-
4
-
3
-
2
-
1
-
00h
Address: B6h
0
Reset
00h
WDTF: Watchdog timer reset flag.
當重置時,WDTF 由硬體設為”1”
須由軟體(WDTK)設定,或由外部重置(Reset),將 WDTF 清除為”0”
Mnemonic: WDTK
7
6
5
4
3
WDTK[7:0]
2
1
Address: B7h
0
Reset
00h
WDTK: Watchdog timer refresh key.
當 WDTK 寫入 0x55 時,WDTC 即可清除為”0”
Specifications subject to change without notice, contact your sales representatives for the most recent information.
IRFWX-A115
2
Ver. A 2009/02
SM59R WDT 功能使用方法
Application Note
4
WDT 應用的範例程式
Description
Main program
1. 燒錄時先設定 information block WDT 致能及重置時間
2. 當執行 user code 時,WDTK 須不斷的執行清除
3. 量測 P2,若為 0x00 表示正確;若 P2 不斷的 Hi-Low 變化,表示 WDT counter 溢位
//====================================================================
//
//
S Y N C M O S T E C H N O L O G Y
//
//====================================================================
#include "..\h\SM59R16A2.h"
void WDT_Clear()
{
/*WDTK: Watchdog timer refresh key. A programmer must write 0x55
into WDTK register, then the watchdog timer will be cleared to zero.*/
WDTK = 0x55;
}
void main()
{
P2 = 0;
while(1)
{
//if WDTK has clear, P2 always low
//if WDTK no clear, P2 Hi-low switch(P2 default 0xFF)
WDT_Clear();
}
}
Specifications subject to change without notice, contact your sales representatives for the most recent information.
IRFWX-A115
3
Ver. A 2009/02