그라운드 임베디드 유튜브 구독

노트 / MCU 펌웨어

워치독과 저전력 모드

프로그램이 멈추면 스스로 리셋하는 워치독, 배터리 기기를 위한 슬립, 스톱, 스탠바이 모드.

GROUND EMBEDDED · 정리 노트펌웨어 10워치독과 저전력 모드종류특징IWDG (독립)별도 LSI 클럭, 메인 클럭이 죽어도…WWDG (윈도우)너무 늦어도, 너무 빨라도 리셋

워치독

정해진 시간 안에 "아직 살아 있다"고 신호를 주지 않으면 MCU를 리셋합니다.

종류 특징
IWDG (독립) 별도 LSI 클럭, 메인 클럭이 죽어도 동작
WWDG (윈도우) 너무 늦어도, 너무 빨라도 리셋

올바르게 쓰기

  • 타이머 인터럽트 안에서 워치독을 갱신하면 메인 루프가 멈춰도 리셋되지 않습니다. 메인 루프나 모든 태스크가 정상임을 확인한 곳에서 갱신합니다.
  • RTOS라면 각 태스크가 "살아 있음" 플래그를 세우고, 감시 태스크가 모두 확인했을 때만 갱신합니다.
  • 리셋 후 RCC->CSR의 리셋 원인 플래그로 워치독 리셋이었는지 기록합니다.

저전력 모드 (STM32 일반)

모드 멈추는 것 깨우는 방법 소비 전류
Sleep CPU만 아무 인터럽트 mA
Stop 대부분 클럭 외부 인터럽트, RTC µA
Standby 거의 전부, RAM 소실 웨이크업 핀, RTC 1µA 이하

Stop에서 깨어나면 클럭이 HSI로 돌아와 있어서 PLL을 다시 설정해야 합니다. 배터리 수명은 "깨어 있는 시간 × 동작 전류 + 잠든 시간 × 대기 전류"로 계산합니다.