Notice
Recent Posts
Recent Comments
Link
승코딩당당당
[임베디드] Clock 이해 및 Timer 활용 본문
마이크로컨트롤러에서 Timer(System Timer)는
단순한 시간 측정을 넘어, 인터럽트 발생, 외부 이벤트 계수, 신호 캡처, 그리고 PWM 파형 생성까지 담당하는 핵심 주변장치이다.
STM32를 포함한 Cortex-M 계열 MCU는 코어 내부에 SysTick(System Timer)를 기본적으로 제공하며,
이 타이머는 주로 1ms 주기의 시스템 시간 관리와 RTOS의 태스크 스케줄링, Delay 구현 등에 활용된다.
또한 MCU 내부의 일반 Timer는 Prescaler(PSC), Counter(CNT), Auto Reload Register(ARR), Capture/Compare Register(CCR)와 같은 레지스터를 기반으로 동작하며, 다양한 모드를 통해 시간 기반 제어와 신호 처리를 가능하게 한다.
본 글에서는 아래 내용을 중심으로 STM32 Timer가 어떤 원리로 동작하며, 실제 임베디드 시스템에서 어떻게 활용되는지를 정리한다.
- System Timer의 개념과 역할
- Timer 주요 레지스터의 의미
- Counter, Input Capture, Output Compare, PWM 등 Timer 동작 모드
- PWM(Pulse Width Modulation)의 기본 개념과 Duty Ratio
System Timer
- Cortex-M 코어에서 지원하는 24비트 다운카운트 타이머
- 기본적으로 1ms에 한 번씩 호출됨
Timer 주요 레지스터 정보
- PSC: Prescaler
- CNT: Counter
- ARR: Auto Reload Resister
- CCR: Capture / Compare Register
Timer 모드
- Counter 모드(Time-Base Unit): 카운터 값이 증가 또는 감소하면서 카운터(CNT) 값이 ARR(또는 0)이 될 때 인터럽트가 발생
- External Input Counter 모드(External clock source mode): 클럭 소스를 외부 핀(ex. PA15)에 연결하고, 외부 핀 인터럽트가 발생할 때부터 카운터 값이 증가 시작. 카운터 값이 ARR(또는 0)이 될 때 인터럽트 발생
- Input Capture 모드(Input Capture direct mode): CH1 / CH2에 해당하는 핀(ex. PA15 / PA1)의 Rising 또는 Falling Edge 인터럽트가 발생했을 때의 카운터 값 확인 가능하며 인터럽트 처리나 DMA 처리 가능
- Ouput Compare 모드: CH1에 해당하는 핀(ex. PA15)에 설정한 값만큼 카운팅 되면 인터럽트 발생 또는 해당 핀에 출력이 발생하는 모드
- Output Compare Timing: 캡쳐/비교기에 설정된 비교 값(CCRx)이 출력에 아무런 영향을 주지 않으나, 인터럽트 설정 시 인터럽트 발생
- Output Compare Active: 카운터의 값 = 캡쳐/비교기의 설정 값(CCRx) 이면 OCx값이 High됨
- Output Compare Inactive: 카운터의 값 = 캡쳐/비교기의 설정 값(CCRx) 이면 OCx값이 Low됨
- Output Compare Toggle: 카운터의 값 = 캡쳐/비교기의 설정 값(CCRx) 이면 OCx값이 Toggle됨
- Output Compare Forced Active/Inactive: 카운터의 값이 상관없이 OCx 값이 High(Active Mode) 또는 Low(Inactive Mode)로 된다.
- PWM Output 모드: CH1에 해당하는 핀(ex. PA15)에 원하는 크기만큼의 PWM 파형 생성. 카운터 값과 Pulse 값이 같으면 Low signal → Pulse Width 조절
- Duty Ratio = Pulse/Period*100
- One Pulse Mode: 신호 감지 후 Pulse를 만드는 형태의 Timer Mode.
- EX) Input Capture 모드와 Output Compare 모드가 혼합된 상태
- EX) Input Capture 모드에서 Rising / Falling Edge 감지 시 Output Compare Mode 동작. Pulse만큼 쉬고 이후 (Counter Period-Pulse) 값까지 선택한 Output 동작
PWM이란
- PWM(Pulse Width Modulation): 진동 폭 변조
- Duty Ratio: 원 신호(펄스파)의 High 신호를 차지하는 비율로 원 신호대로 나오면 100%
'개발 > 임베디드' 카테고리의 다른 글
| [리눅스] 리눅스 기초 정리 (파일, 디렉터리, 셸) (0) | 2026.02.11 |
|---|---|
| [STM32] PWM을 이용하여 LED 밝기 제어 (0) | 2026.02.09 |
| [STM32] VDDA 보정 기반 LM35 온도 측정 (ADC+AT Command) (1) | 2026.02.08 |
| [STM32] UART 통신 확인 실습 (PuTTY) (0) | 2026.02.06 |
| [임베디드] 임베디드 시스템의 인터페이스 이해 (0) | 2026.02.06 |