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

노트 / MCU 펌웨어

클럭 트리: 클럭이 어디서 와서 어떻게 나뉘나

HSE, PLL, 프리스케일러. 시스템 클럭과 버스 클럭, 타이머 클럭이 어떻게 정해지는지 따라갑니다.

GROUND EMBEDDED · 정리 노트펌웨어 04클럭 트리소스특징HSI내부 RC, 16MHz 등. 정확도 1…HSE외부 크리스털 8~25MHz. 정확

클럭 소스

소스 특징
HSI 내부 RC, 16MHz 등. 정확도 1% 내외
HSE 외부 크리스털 8~25MHz. 정확
LSI / LSE 32kHz. 워치독, RTC
PLL 위 소스를 곱해 높은 주파수 생성

예: STM32F411 100MHz

HSE 8MHz → ÷M(8) = 1MHz → ×N(200) = 200MHz → ÷P(2) = SYSCLK 100MHz

그다음 AHB, APB1, APB2 프리스케일러로 나뉩니다. APB1 최대가 50MHz라서 ÷2를 줍니다.

타이머 클럭의 함정

APB 프리스케일러가 1이 아니면, 타이머 클럭은 APB 클럭의 2배입니다. APB1이 50MHz여도 TIM2는 100MHz로 동작합니다. PWM 주파수 계산이 2배 틀리는 흔한 이유입니다.

Flash 대기 상태

클럭을 높이면 Flash가 따라오지 못해 대기 상태(wait state)를 늘려야 합니다. 순서가 틀리면(클럭 먼저 올리고 대기 상태를 나중에) 바로 하드폴트가 납니다. CubeMX의 클럭 설정 화면은 이 계산과 순서를 대신해 줍니다.