기존의 WDT에서는 WDT가 Overflow만 되지 않으면 MCU의 reset이 일어나지 않습니다. 주로 while문 안에 WDT를 계속 reset하는 방법을 사용하거나 특정 함수가 실행될 때마다 reset되도록 사용합니다.
그런데 Windowed WDT는 기존 WDT(Watch Dog Timer)와 다르게 특정 구간 내에서만 WDT를 Clear 해야 하도록 설계되어 있습니다. 너무 빠르게 또는 너무 느리게 WDT를 Clear 하면 MCU가 오동작하는 것으로 인식하여 reset를 하게 됩니다.
따라서 특정 구간 내에서만 WDT를 Clear 해야 합니다.
출처: https://www.microchip.com/design-centers/8-bit/peripherals/core-independent/windowed-watch-dog-timer
그러면 Windowed WDT는 왜 사용해야 하는가?
외부 X-tal failure 가 발생할 때 대부분 90% 정도는 X-tal이 발진하지 않습니다. 이 경우에는 Windowed WDT가 필요하지 않습니다.
Windowed WDT를 사용해야 하는 경우는 나머지 10%의 경우를 위해 존재합니다. 예를 들어 X-tal이 발진하면서 Odd harmonic이 발생할 수 있는데 1Mhz crystal은 3,5,7 ... Mhz와 같은 odd harmonic을 만들 수 있습니다. 이 경우 MCU가 더욱 빠른 속도로 동작하거나 MCU가 너무 빠른 Clock에 의해 오동작 할 수 있습니다. 이러한 오동작은 기존의 WDT로는 방지할 수 없습니다. Windowed WDT를 이용해야만 odd harmonic에 의한 오동작을 방지할 수 있습니다.
'MCU Basic' 카테고리의 다른 글
Sleep power consumption (PIC16F1503 vs PIC16F15323 vs PIC12F1501) (0) | 2019.04.15 |
---|---|
Absolute Maximum Ratings의 의미 (0) | 2019.01.28 |
EEPROM대신 사용할 수 있는 HEF ( High Endurance Flash) (0) | 2019.01.21 |
300Hz Sine waveform using DAC on microcontroller (0) | 2019.01.18 |
MPLAB X MCC가 지원하는 디바이스 확인하는 방법? (0) | 2019.01.18 |