임베디드 용어 사전
타이머·ADC

프리스케일러

타이머 입력 클럭을 나눠 계수 속도를 정하는 분주기. 분해능과 측정 범위를 함께 결정한다.

타이머는 클럭을 세는 장치이고, 얼마나 자주 셀지를 이것이 정한다.

80MHz / (PSC+1) = 계수 클럭
PSC = 79  →  1MHz  →  1틱 = 1µs
PSC = 7999 → 10kHz →  1틱 = 100µs

트레이드오프가 명확하다

분주를 작게   틱이 짧다 → 분해능이 좋다 → 16비트 카운터가 빨리 한 바퀴 돈다
분주를 크게   측정 범위가 넓다 → 짧은 시간을 못 잰다

1µs 틱이면 16비트로 65.5ms 를 잰다. 그보다 긴 시간을 재려면 오버플로 횟수를 함께 세야 한다.

정할 때의 순서

1. 재야 하는 최대 시간이 얼마인가   → 카운터 한 바퀴 안에 들어오게 분주를 고른다
2. 필요한 분해능이 얼마인가         → 들어오지 않으면 32비트 타이머를 쓰거나 확장한다

주의

프리스케일러 값을 바꾸면 PWM 주기와 듀티가 모두 바뀐다. 실행 중에 바꾸려면 현재 비교값도 함께 다시 계산해야 하고, 그렇지 않으면 한 주기 동안 이상한 파형이 나간다.

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — 타이머와 PWM — 시간을 만드는 하드웨어