타이머 프리스케일러 계산기

MCU 타이머의 목표 주파수를 최소 오차로 달성하기 위한 프리스케일러(PSC)와 자동 리로드(ARR) 값을 찾습니다.

Prescaler (PSC) 카운터 주기 (ARR) (ARR) 실제 주파수 오차

타이머 프리스케일러 공식 (PSC, ARR)

ftimer = fclk / (PSC + 1) / (ARR + 1)
여기서:
fclk = 타이머 주변장치 클럭 주파수
PSC = 프리스케일러 레지스터 값 (0–max)
ARR = 자동 리로드 레지스터 값 (0–max)

자주 쓰는 프리셋

타이머 프리스케일링 작동 원리

MCU 타이머는 클럭 펄스를 카운트합니다. 프리스케일러는 카운터에 도달하기 전에 입력 클럭을 분주하고, 자동 리로드(ARR) 값은 카운터가 오버플로우되는 시점을 결정합니다. PSC와 ARR이 함께 타이머 출력 주파수를 제어합니다: f_timer = f_clk / (PSC+1) / (ARR+1). 오차 0%를 달성하는 값을 선택하면 타이머가 목표 주파수를 정확히 생성합니다.

값 선택 팁

더 세밀한 주파수 해상도가 필요할 때는 작은 프리스케일러 값을 선호합니다. PWM의 경우 ARR이 클수록 듀티 사이클 단계가 더 세밀해집니다. 정확한 주파수가 불가능할 때는 오차율이 용도에 적합한지 확인하세요 — 0.1% 미만이면 대부분의 사용 사례에서 괜찮습니다. 일부 MCU(예: STM32)는 타이머에 도달하기 전에 APB 버스 클럭을 곱하므로 레퍼런스 매뉴얼에서 f_clk를 확인하세요.

FAQ

타이머 프리스케일러란 무엇인가요?

프리스케일러는 MCU 타이머의 카운팅 주파수를 줄이는 클럭 분주기입니다. PSC를 N으로 설정하면 타이머가 N+1 클럭 사이클마다 한 번씩 증가하여 유효 카운트 속도를 낮춥니다.

정확한 PSC와 ARR 값을 어떻게 찾나요?

f_clk / f_target을 계산하여 총 분주비를 구합니다. 그런 다음 (PSC+1) × (ARR+1)로 인수분해하되 두 값 모두 카운터 비트 폭에 맞아야 합니다. 총 분주비가 소수이거나 너무 크면 정확한 일치가 불가능하며 약간의 오차를 감수해야 합니다.

관련 도구