본문 바로가기
임베디드소프트웨어

워치독 타이머 (WatchDog Timer; WDT)

by Go! Jake 2022. 3. 23.

워치독 타이머(WatchDog Timer; WDT) 요약

AVR 장치는 주요 명령 클럭에서 별도의 오실레이터를 사용하는 워치독 타이머(Enhanced Watdog Timer; WDT)가 장착되어 있습니다. WDT는 내장된 128kHZ 오실레이터의 클럭사이클을 기반으로 '카운터'를 증가시키는 장치입니다. WDT는 '카운터'가 타임아웃 값에 도달하면 인터럽트나 시스템 리셋을 강제합니다. 일반적인 동작 모드에서는, 어플리케이션에서 워치독 타이머 리셋 명령으로 타임아웃 값까지 도달하기 전에 카운터를 리셋합니다. 만약 카운터가 재시작하지 않으면 인터럽트 또는 시스템 리셋이 작동합니다.

WDT 특징

- 별도 내장 오실레이터의 클럭

- 3가지 동작모드: 인터럽트, 시스템 리셋, 인터럽트와 시스템 리셋

- 16ms부터 8secs까지 선택적으로 타임아웃 시간 설정

- Fail-safe 모드를 위한 Optional Hardware fuse on (WDTON)

 

인터럽트 모드(Interrupt Mode)

인터럽트 모드에서, WDT는 타이머가 끝나면 인터럽트를 강제합니다. 인터럽트는 슬립 모드에서 장치를 깨우는 데 사용될 수 있고 또한 범용 시스템 타이머로 사용될 수 있습니다.

 

시스템 리셋(System Reset)

시스템 리셋 모드에서, WDT는 타이머가 끝나면 리셋을 강제합니다. 런어웨이 코드(Runaway code)로 인한 시스템 장애를 방지하기 위해 사용된다. 이러한 장치는 워치독 타이머 제어 레지스터(WDTCSR) 내 시스템 리셋 모드(WDE) 비트 비트를 통해 이루어집니다.

 

인터럽트와 시스템 리셋 모드 (Interrupt and System Reset Mode)

인터럽트와 시스템 리셋 모드는 두 모드를 모두 사용하는 것으로, 인터럽트를 강제한 후 시스템 리셋 모드로 전환합니다. 이 모드는 시스템 리셋 전에 주요 인자를 저장하는 시간을 주고 안전하게 셧다운 할 수 있도록 해 줍니다. WDTIE와 WDTE가 SET되면서 동작합니다.

 

WDT 타임아웃 시간

워치독 타이머 Watchdog Timer Control Registe(WDTCSR) 내에 Prescale bits로 WDP[3:0]가 있습니다. WDP[3:0]을 통해 WDT가 동작할 때 WDT 딜레이를 정할 수 있습니다. (e.g. 16ms ~ 8.0s)

 

WDTON

WDTON 퓨즈가 프로그램되어 있다면 WDT를 시스템 리셋 모드로 강제합니다. WDE 비트와 WDIE 비트가 각각 1과 0으로 잠깁니다.

 

WDT 시스템 리셋 플래그

워치독 시스템 리셋이 발생하면, MCU 상태 레지스터 내 워치독 시스템 리셋 플래그 (WatchDog System Reset Flag; WDRF) 비트가 SET된다. WDRF 비트는 Power-on 리셋에 의해 clear되거나 BIT에 0을 씀으로써 clear된다. 리셋 조건을 구별하기 위해, 사용자는 반드시 읽은 후 최대한 일찍 WDRF를 리셋해야 한다. 만약 다른 리셋이 발생하여 레지스터가 clear되면, 리셋의 원인은 리셋 플래그를 분석하여 알아낼 수 있다.

댓글