반응형

MCU 2

[MCU 저전력] Deep Sleep 웨이크업(Wake-up) 직후 클록(HSE/PLL) 안정화 대기 루프 구현

내용요약현상: MCU가 딥 슬립(Deep Sleep)에서 깨어난(Wake-up) 직후, 하드폴트(HardFault_Handler)혹은 비정상적인 동작.원인: 고속 외부 클럭(HSE)이나 PLL이 안정화되기 전에, CPU가 내부 오실레이터(예: HSI)를 사용해 즉시 동작을 재개하기 때문임.해결: 웨이크업 명령(WFI / WFE) 직후, 하드웨어 타임아웃 메커니즘을 포함한 하드웨어 플래그 기반의 방어적 폴링 루프(Polling loop)를 구현해야 함.Deep Sleep Wake-up 직후 시스템 오동작 및 HardFault 발생 증상MCU가 Deep Sleep(Stop/Standby) 모드에서 깨어날 때, 시스템이 무작위로 다운되거나 HardFault, BusFault를 유발하는 현상이 발생합니다.특히 ..

[MCU 설계] 인터럽트 서비스 루틴(ISR) 내 delay/printf 사용 시 발생하는 지연 문제와 대책

[Quick Summary - For Global Developers]Symptom: 인터럽트 진입 후 메인 루프(Main Loop)가 완전히 멈추거나, 워치독 타이머 리셋(Watchdog Reset)이 발생하며, 특정 실시간 하드웨어 입력 인터럽트가 누락(Interrupt Missing)됨.Cause: 인터럽트 서비스 루틴(ISR) 내부에서 블로킹 방식의 delay 함수나 폴링 기반의 I/O 작업인 printf를 호출하여 상위/동일 우선순위 인터럽트 마스크 및 CPU 자원 독점이 발생함.Solution: ISR 내부의 무거운 오버헤드 코드를 전면 제거하고, 최소한의 정적 플래그(Volatile Flag) 세팅 또는 링 버퍼(Ring Buffer) 데이터 적재 후 메인 루프나 RTOS 태스크에서 처리하도..

반응형