Louie NRT Story

[STM32] WWDG와 IWDG 동작 본문

전기차충전기

[STM32] WWDG와 IWDG 동작

hyeok0724.kim@gmail.com 2021. 4. 29. 15:10
반응형

작성일: 21년 4월 29일

 

Index

1. WDG(Watch Dog)

2. IWDG(Independent Watch Dog)

3. WWDG(Window Watch Dog)

 

 

1. WDG(Watch Dog)

- 와치독 타이머는 프로그램이 일정 시간 초과하여 동작하거나 멈춰있을때 MCU 스스로가 리셋하는 기능임.

- 특정 함수의 "While" 문에 빠지거나 Timout이 발생하지 않아서 무한정 기다리는 경우 Watch Dog를 통하여 리셋함

 

 

2. IWDG(Independent Watch Dog)

- IWDG 는 LSI 로부터 clock 을 제공받는 12-bit down counter 타이머로서 HSI/HSE clock 에 문제가 발생하여도 독립적으로 동작할 수 있음.

1) Clock 확인

 - LSI가 40KHz 라는 것을 확인 할 수 있음

2) IWDG 설정

 - "Count Clock Presaler= 4", "DownCount Reload Value= 4095"

3) 설정한 Clocking 계산하기

 - 설정 내용을 계산해보면 409ms 안에 Refresh를 하지 않으면 Reset 됨

 

4) 실험 결과

 - 424ms 에서는 Reset 동작하지 않음

 - 425ms 에서는 Reset 동작함

 - 계산결과는 409ms인데 약간의 오차가 존재하는것으로 보임

 

 

3. WWDG(Window Watch Dog)

- WWDG 는 7-bit down counter 타이머이며 APB clock 을 사용함

- IWDG 와 달리 기본적으로 Window 라고 호칭하는 시간 내에서만 refresh 가 가능하며 그 외의 구역에서 타이머를 refresh 하려는 경우 Reset 이 발생함.
- WWDG 는 7-bit down counter 타이머이기 때문에 0x7F(127) 부터 0x40(64)까지 설정 가능
- WWDG 의 7번째 비트가 1에서 0으로 변경되는 시점인 카운터가 0x3F가 되는 시점에  Reset 이 발생한다.  

 

1) Clock 확인

 - Datasheet를 보면 WWDG가 APB1에서 동작함을 확인할 수 있음.

 - APB1에 해당하는 36MHz를 확인함.

2) WWDG 설정

 - "Count Clock Presaler= 8", "Window Value= 127", "Free-running DownCount Value= 127" 

3) 설정한 Clocking 계산하기

 - 설정 내용을 계산해보면 최소 0ms ~ 57ms 외에 Refresh를 하면 Reset이 된다는 의미임

4) 실험 결과

 - 56ms에서는 Reset 동작하지 않음

 - 57ms 에서는 Reset 동작함

 - 1ms의 오차는 있지만 비슷하게 동작함.

 

 

CALL BACK 함수

 /* Check Reset Occurred */
  if(RESET != __HAL_RCC_GET_FLAG(RCC_FLAG_IWDGRST))
  {
     /* Reset : IWDG */
     printf("Reset : IWDG \r\n");
    __HAL_RCC_CLEAR_RESET_FLAGS();
  }
  else if(RESET != __HAL_RCC_GET_FLAG(RCC_FLAG_WWDGRST))
  {
     /* Reset : WWDG */
     printf("Reset : WWDG \r\n");
    __HAL_RCC_CLEAR_RESET_FLAGS();
  }
  else
  {
     printf("Reset : Normal \r\n");
  }

 

 

Referece:

blog.naver.com/eziya76/221518876037

 

[STM32 HAL] IWDG + WWDG Watchdog

Reference: Mastering STM32 by Carmine Noviello ** 자료 해석에 오류가 있을 수 있습니다 ** [ 배...

blog.naver.com

kmg1767.tistory.com/24?category=760588

 

STM32F429 - WWDG(Window Watch Dog)

14. WWDG (Window Watch Dog) -와치독 타이머는 프로그램이 어느 일정 시간을 초과해서 멈춰 있을 때 MCU 스스로 리셋하는 기능이다 이 기능을 사용하면 사용자가 수동으로 MCU를 리셋할 수 없는 상황일

kmg1767.tistory.com

 

반응형
Comments