PWM
IT 위키
- PWM; Pulse Width Modulation; 펄스 폭 변조
- 일정한 주기의 사각파에서 High 구간의 폭(듀티비)을 바꿔 평균 전력을 조절하는 방식
- 주기(T) : 한 펄스가 반복되는 시간. 주파수 f = 1/T
- 듀티비(Duty Cycle) = High 시간 / 전체 주기 × 100%
- 평균 출력 전압 = 공급 전압 × 듀티비
- 5 V 전원에 듀티비 40% 면 평균 2 V 다
타이머/카운터 모듈을 쓴다.
- 타이머 클록을 정한다 — 시스템 클록을 분주기(Prescaler)로 나눈다
- 타이머 클록 = 시스템 클록 / 분주비
- 주기 레지스터에 상한값을 넣는다 — 카운터가 0부터 이 값까지 세면 한 주기다
- 상한값 = (타이머 클록 / 원하는 PWM 주파수) − 1
- 비교 레지스터에 듀티값을 넣는다 — 카운터가 이 값에 도달하면 출력을 반전시킨다
- 비교값 = (상한값 + 1) × 듀티비
- 카운터가 상한에 닿으면 0으로 돌아가고 출력이 다시 High 가 된다
분해능은 카운터의 비트 수로 정해진다. 8비트면 256단계, 16비트면 65,536단계다. 주파수를 높이면 상한값이 작아져 분해능이 떨어진다. 이 둘은 맞바꾸는 관계다.
- Fast PWM : 카운터가 0→상한을 반복. 주파수가 높다
- 위상 정확 PWM(Phase Correct) : 0→상한→0 으로 오르내린다. 주파수는 절반이지만 위상 왜곡이 없어 모터 제어에 적합
- DC 모터 속도 제어, 서보 모터 각도 제어
- LED 밝기 조절(디밍)
- SMPS 전압 조절
- 오디오 신호 출력(Class-D 앰프)
