15-Timer_WatchDog

Download Report

Transcript 15-Timer_WatchDog

UNIT
15 Timer & Watch Dog
로봇 SW 교육원
조용수
학습 목표
•
•
•
•
Timer
Timer Register
Watch Dog
Watch Dog Register
2
Timer
3
• Timer 는 내부 클럭을 Counting 하는 작업을 수행한
다.
• 정확한 시간을 측정하거나 , 주기적으로 반복되는
작업 처리를 위해 사용.
• 외부 입력 핀(T0~T3) 클럭 카운팅, 간격 측정 등의
기능이 지원되기도 한다.
Timer
• N051 시리즈는 4개의 32Bit Timer 사용
• 각 Timer 는 독립적인 Clock Source를 사용
• Time-out period
(Period time of timer clock input) *
(8-bit prescale counter + 1) * (24-bit TCMP)
• Maximum counting cycle time
(1 / T MHz) * (2^8) * (2^24),
4
Timer
5
• Timer 동작방식
–
–
–
–
One-Shot : 1번 인터럽트 발생 후 종료
Periodic : 설정된 값에 따라서 주기적으로 인터럽트 발생
Toggle : T0~T3 핀으로 주기적으로 Output Signal 생성
Continuous Counting : 인터럽트 발생 후 타이머가 초기
화 되지 않고 Counting 을 계속
Up Counter Setting
Ex: TCMPR=100
Interrupt
One shot
0
100
Reset counter
Periodic
0
100
Reset counter
Toggle
0
100
• Toggle Output :
TMx  Tx or TxEX
Overflow
Continuous counting
0
100 101
6
224-1
Timer
7
• Event Counting Mode
– T0~T3 핀의 클럭을 Counting
– Counting 가능 한 입력 클럭은 1/3 HCLK 이하
• De-bounce Mode 에 따라서 달라짐
• Event Capture Mode
– TxEX Pin 에서 클럭이 들어올 경우, TDR 의 Counting 값
을 저장한다.
Timer Block Diagram
Timer/Counter
TCMP
(TCMPR[23:0])
CRST (TCSR[26])
Reset counter
CEN (TCSR[30])
TMRx_CLK
0
8-bit
prescale
1
0
+
-
=
TIF
(TISR[0])
24-bit
up counter
T0 - T3
1
CTB
(TCSR[24])
TDR_EN
(TCSR[16])
TX_PHASE
(TEXCON[0])
Capture
CAP_SRC
(TCSR[22])
T0EX - T3EX
0
ACMPA0/1, ACMPB0/1
1
Load
Reset counter
Timer
interrupt
TDR
(TDR[23:0])
RSTCAPSEL
(TEXCON[4])
TEXEN
(TEXCON[3])
TEXIF
(TEXISR[0])
00
01
0
10
Load
TCAP
(TCAP[23:0])
1
TEX_EDGE
(TEXCON[2:1])
TEXIEN(TEXCON[5])
8
IE
(TCSR[29])
Timer Register
9
Timer Register
10
Timer Register
11
Timer Register
12
Timer Register
13
Timer Register
14
Timer Register
15
Timer Register
16
Watch Dog
17
• 프로그램 오류나 H/W 동작이상으로 무한 루프 상태
로 빠지는 것을 방지하기 위함.
• 일정 시간 내에 Counter를 Clear 를 하지 않으면
Reset
WDT Block Diagram
WTR(WDTCR[0])
Reset WDT
Counter
0
WTIF
(WTCR[3])
18-bit WDT Counter
..
3
…...
15
16
Watchdog
Interrupt
WTIE
(WTCR[6])
17
000
001
:
:
110
111
Timeout
select
Reset
Delay
Period
Select
WDT_CLK
Watchdog
Reset[1]
WTRE
(WTCR[1])
WTRF
(WTCR[2])
WTE
(WTCR[7])
WDTCR.
WTIS[10:8]
Note:
1. Watchdog timer resets CPU and lasts 63 WDT_CLK.
2. If user intends to use WDT to wakeup power-down mode, it is
recommended that CPU clock source is set as the same as WDT clock
source before CPU enters in power-down mode.
18
Wakeup CPU from
Power-down mode
WTWKE
(WTCR[4])
WTWKF
(WTCR[5])
WDT Interval Select
WTIS
Interrupt
Timeout
Watchdog
Reset
Timeout
WTR Timeout Interval
(WDT_CLK = 10KHz)
WTR Reset
(WDT_CLK=10KHz)
000
24 WDT_CLK
(24 + 1024)
WDT_CLK
1.6 ms
104 ms
001
26 WDT_CLK
(26 + 1024)
WDT_CLK
6.4 ms
108.8 ms
010
28 WDT_CLK
(28 + 1024)
WDT_CLK
25.6 ms
128 ms
011
210
WDT_CLK
(210 + 1024)
WDT_CLK
102.4 ms
204.8 ms
100
212 WDT_CLK
(212 + 1024)
WDT_CLK
409.6 ms
512 ms
101
214 WDT_CLK
(214 + 1024)
WDT_CLK
1.6384 s
1.7408 s
110
216 WDT_CLK
(216 + 1024)
WDT_CLK
6.5536 s
6.656 s
111
218 WDT_CLK
(218 + 1024)
WDT_CLK
2.62144 s
26.3168 s
19
Watch Dog Register
20
WatchDog Register
21