임베디드 기초 7편 - 클럭 심화: 보드레이트와 SPI 속도는 어떻게 계산되는가

들어가며 UART 보드레이트 계산 BRR 레지스터 STM32 UART는 BRR(Baud Rate Register)로 분주비를 설정한다. 기본 16배 오버샘플링(OVER8=0) 기준: RM0383 19.3.4 — Fractional baud rate generation: BRR 레지스터와 USARTDIV 관계 1 Baud Rate = f_PCLK / (16 × USARTDIV) USARTDIV는 정수부(12비트)와 소수부(4비트)로 구성된다. 소수점 이하 4비트이므로 1/16 단위까지 설정 가능하다. 계산 예시 UART2, APB1 = 50 MHz, 목표: 115200 bps 1 2 3 4 5 6 USARTDIV = 50,000,000 / (16 × 115,200) = 27.127... 정수부: 27 소수부: 0.127 × 16 = 2.03 → 반올림 → 2 BRR = (27 << 4) | 2 = 0x01B2 실제 보드레이트 역산: ...

2026년 6월 9일 · 3 min · 서보민

임베디드 기초 6편 - 클럭 트리와 RCC: 주파수는 어디서 오는가

들어가며 UART 보드레이트를 설정할 때 115200을 입력한다. SPI 속도를 설정할 때 분주비(prescaler)를 고른다. 이 숫자들의 근거가 뭘까. 전부 클럭(Clock) 에서 나온다. MCU 안의 모든 주변장치는 클럭 신호를 기반으로 동작하고, 그 클럭이 얼마인지에 따라 통신 속도가 결정된다. 클럭 소스 (Clock Source) MCU는 기준 클럭을 어딘가에서 공급받아야 한다. STM32F4의 주요 클럭 소스는 두 가지다. HSI (High Speed Internal) MCU 내부 RC 오실레이터 16 MHz 고정 외부 부품 불필요 정밀도 낮음 — 온도와 전압에 따라 ±1% 수준의 오차 리셋 직후 기본으로 사용되는 클럭 소스 오차가 있는데도 HSI를 쓰는 이유가 있다. ...

2026년 6월 3일 · 4 min · 서보민