Modes of Operation(atmega1281)

Normal vs CTC vs PWM
normal mode
- overflow가 발생할 때마다 timer 값을 지정해주어야 한다.=> 비효율적임
- RAM 사용을 최소화해야 하는 경우 (별도의 비교 레지스터 불필요)
CTC mode (Clear Time on Compare match)
- compare register의 값과 같은지 비교기(하드웨어적으로)
- compare interrupt flag 자동으로 set
- 정확한 주기의 인터럽트 생성
PWM
- normal + CTC
- compare match, overflow 모두 사용
- 아날로그같은 출력(모터 속도 제어, LED 밝기 제어)이 필요할 때
Q. 원하는 주기의 구형파 신호를 출력하려면??
1. normal mode : overflow 발생 후 ISR에서 timer의 값을 넣어주고, toggle 시켜준다.
- 구형파의 주기 : overflow 발생 주기 (0xffff - 0xb000 +1)* 2

2. CTC mode : OCnA, OCnB, OCnC
- 주기(OCnA) : Timer 주파수 / 2* (compare match 값 +1 )


3. PWM : Fast PWM, Phase Correct PWM
(1) Fast PWM

COMnA1 = 1로 설정하면 다음과 같다.
- OCRnX에 도달(compare match)하면 clear 후 , Top값일 때 다시 set


(2) Phase Correct PWM

마찬 가지로 COMnA1 = 1로 설정하여 compare match가 발생할 때, LOW로 떨어트리고, non-inverting 모드여서
OCRnX값이 증가할수록 구형파가 High로 유지되는 비율이 커진다. (Duty Cycle이 커진다.)


Fast PWM vs Phase Correct PWM
1. Fast PWM의 주파수가 2배 빠르다

2. duty cycle을 임의로 변경해야 할 때,
Phase Correct PWM이 대칭적인 파형이여서 더 부드러운 제어가 가능하고
특히 모터 제어, 오디오 앰프 같이 정밀한 제어가 필요한 응용에서 유리하다.

- 빠른 스위칭이 중요한 경우: Fast PWM 사용
- 정밀한 제어와 phase 일관성이 중요한 경우: Phase Correct PWM 사용
'EmbeddedSystem > AVR' 카테고리의 다른 글
| [AVR] 타이머/카운터와 Prescaler(분주비) (1) | 2024.12.27 |
|---|---|
| [AVR] Timer / Counter (0) | 2024.11.05 |
| [AVR] Microchip studio Tutorial (1) | 2024.10.24 |
| [AVR] External Interrupts 2 (1) | 2024.10.15 |
| [AVR] External Interrupt (1) | 2024.10.14 |