MCU 타이머 / 프리스케일러 계산기
이 무료 MCU 타이머 & 프리스케일러 계산기는 시스템 클럭, 프리스케일러, ARR 값으로 타이머 주파수, 주기, 오버플로 시간을 계산합니다. 목표 주파수에 맞는 최적의 프리스케일러/ARR/CCR 조합을 찾는 역방향 PWM 솔버, 인터랙티브 SVG 파형 다이어그램, STM32·ESP32·Arduino·nRF52·PIC·RP2040 MCU 프리셋을 제공합니다.
MCU의 메인 클럭 주파수 (프리스케일러 적용 전)
클럭 분주 값 (실제 분주비 = PSC + 1, STM32 기준)
타이머가 0에서 ARR까지 카운트 후 리로드 (주기 = ARR + 1)
타이머 주파수
1.000 kHz
타이머 주기
1.000 ms
오버플로 시간
1.000 ms
타이머 클럭 (프리스케일러 후)
1.000 MHz
오버플로당 카운트
1,000
최대 타이머 주기
59.6523 s
제안이 있으신가요?
새로운 도구를 요청하거나 개선 사항을 제안해 주세요 — Slack 커뮤니티에 참여하세요!
MCU 타이머 / 프리스케일러 계산기란?
MCU 타이머 / 프리스케일러 계산기는 임베디드 시스템 엔지니어가 마이크로컨트롤러의 하드웨어 타이머를 설정하는 데 도움을 주는 도구입니다. 하드웨어 타이머는 정밀한 시간 지연 생성, 펄스 폭 측정, 모터 제어 및 LED 디밍용 PWM 신호 생성, 주기적 인터럽트 트리거 등에 사용되는 핵심 주변장치입니다. 타이머 주파수는 시스템 클럭을 프리스케일러와 자동 리로드 레지스터(ARR)로 나누어 결정됩니다. 이 값들은 MCU 계열에 따라 특정 범위의 정수여야 하므로 목표 주파수를 달성하기 위한 올바른 조합을 찾으려면 신중한 계산이 필요합니다. 특히 Arduino/AVR처럼 고정 값이나 nRF52처럼 2의 거듭제곱으로 프리스케일러 옵션이 제한되는 경우에 더욱 그렇습니다.
MCU 타이머 계산기 사용 방법
- 프리셋 탭에서 MCU를 선택하거나 시스템 클럭과 타이머 비트 폭을 직접 입력합니다
- 타이머 계산기 탭에서 프리스케일러와 ARR 값을 입력하여 결과 주파수, 주기, 오버플로 시간을 확인합니다
- PWM 계산기 탭에서 목표 주파수와 듀티 사이클을 입력합니다
- '최적 설정 찾기'를 클릭하여 오차가 가장 적은 프리스케일러/ARR/CCR 조합을 얻습니다
- 주파수 정확도와 분해능 사이의 트레이드오프를 보여주는 대안 설정을 검토합니다
- 실제 타이밍을 보여주는 인터랙티브 PWM 파형 다이어그램을 확인합니다
- MCU 프리셋 값을 타이머 또는 PWM 계산기 탭에 직접 적용합니다
자주 묻는 질문
실제 PWM 주파수가 목표와 다른 이유는 무엇인가요?
타이머 레지스터(프리스케일러와 ARR)는 정수 값만 저장할 수 있으므로 실제 주파수는 가장 가까운 근사값입니다. 예를 들어 72 MHz 클럭에서 정확히 50 kHz를 원하면 이상적인 ARR은 1439(72M / 50k - 1)로 정확히 50 kHz를 제공합니다. 하지만 33 kHz의 경우 이상적인 ARR은 ~2181.18이며, 2181로 반올림하면 33.003 kHz(0.01% 오차)가 됩니다. 계산기는 실제 달성 가능한 주파수와 오차율을 표시합니다.
PSC+1과 직접 프리스케일러 값의 차이는 무엇인가요?
STM32 등 ARM 기반 MCU는 PSC+1을 실제 분주비로 사용합니다(PSC=0은 1분주, PSC=1은 2분주). Arduino/AVR MCU는 1, 8, 64, 256, 1024와 같은 고정 프리스케일러 값을 사용합니다. nRF52는 2의 거듭제곱 프리스케일러(1, 2, 4, 8, ..., 512)를 사용합니다. 이 계산기는 모든 규약을 처리하며 선택한 MCU에 맞는 레지스터 값을 표시합니다.
서보 모터용 50 Hz PWM 신호는 어떻게 생성하나요?
서보 모터는 50 Hz(20 ms 주기) PWM 신호가 필요합니다. 72 MHz STM32F103: 프리스케일러 71(72분주, 1 MHz 타이머 클럭), ARR 19999(20000 카운트 = 20 ms). 일반적인 서보 범위 1-2 ms 펄스 폭에 대해 CCR은 1000~2000입니다. 16 MHz Arduino: 프리스케일러 64와 16비트 타이머, ARR=4999로 정확히 50 Hz를 얻습니다.
매우 느린 타이머(초 또는 분 단위)가 필요한 경우 어떻게 하나요?
긴 주기를 위해 프리스케일러와 ARR 값을 모두 최대화합니다. 16비트 타이머는 65535까지 카운트할 수 있고, 최대 프리스케일러와 함께 수 초의 주기를 달성할 수 있습니다. 72 MHz STM32에서 PSC=65535, ARR=65535: 주기 = 65536 × 65536 / 72M ≈ 59.6초. 더 긴 주기를 위해 32비트 타이머(STM32F4/H7, 최대 40억 카운트) 또는 여러 타이머를 체인으로 연결하세요.