PWM과 구동
한 줄 요약 — 듀티비로 평균 전력을 제어합니다. 효율은 좋지만 광대역 노이즈원이라 측정 회로와 상극입니다.
PWM 기본
D듀티비duty cycleT온도 또는 주기temperature or periodt_on시간 (on)time (on)sV_avg평균 전압average voltageVV_high전압 (high)voltage (high)V용도: 모터 속도, LED 밝기, 히터, 아날로그 전압 생성
주파수 선택
| 용도 | 주파수 | 이유 |
|---|---|---|
| LED 조광 | > 200 Hz | 깜빡임(플리커) 방지. 카메라 촬영이면 > 1 kHz |
| DC 모터 | > 20 kHz | 가청 소음 회피 |
| 히터 | 0.1~10 Hz | 열 시정수가 길어 저주파로 충분 |
| 스위칭 전원(SMPS) | 100 kHz~2 MHz | 부품 소형화 |
| 아날로그 출력 (DAC 대용) | 높을수록 유리 | 필터 부담 감소 |
⚠️ 모터를 20 kHz 미만으로 구동하면 가청 소음이 납니다. 20 kHz 이상으로 올리면 조용하지만 스위칭 손실과 EMI가 늘어납니다.
PWM → 아날로그 전압
RC 저역통과로 평활합니다.
C정전용량capacitanceFD듀티비duty cycleR저항resistanceΩT온도 또는 주기temperature or periodV_high전압 (high)voltage (high)VV_ripple전압 (ripple)voltage (ripple)V최악은 일 때입니다.
계산 예제
3.3 V PWM, 10 kHz, = 10 kΩ, = 1 µF, = 0.5:
mu이동도mobilitym²/V·stau시정수time constantsT온도 또는 주기temperature or periodmu이동도mobilitym²/V·sV_ripple전압 (ripple)voltage (ripple)V8비트 DAC(13 mV LSB)로는 충분하지만 12비트(0.8 mV)에는 부족합니다.
개선:
- PWM 주파수를 100 kHz로 → 리플(ripple)리플 ripple직류가 되다 만 나머지 교류분으로, 평활 커패시터가 얼마나 큰지로 정해집니다.자세히 보기 → 0.83 mV
- 2차 필터 → 리플 제곱으로 감소
- 를 키움 → 응답 느려짐 (트레이드오프)
💡 PWM DAC의 근본 한계: 리플을 줄이려면 를 키워야 하고, 그러면 응답이 느려집니다. 정밀도와 속도가 정면으로 충돌합니다. 정밀 아날로그 출력이 필요하면 진짜 DAC를 쓰세요.
★ PWM이 측정 회로에 미치는 영향
PWM은 사각파이므로 기본 주파수의 홀수 배수 고조파를 광범위하게 만듭니다.
n비트 수 또는 개수number of bits or count그리고 상승시간이 만드는 대역 상한:
f_max최대 주파수maximum frequencyHzt_r상승 시간rise times결합 경로와 대책
| 경로 | 대책 |
|---|---|
| 전원 | PWM 부하 전원을 분리, 벌크 커패시터(bulk capacitor)벌크 커패시터 bulk capacitor보드 입구에 두는 큰 커패시터로, 디커플링이 못 따라가는 느린 전류 변화를 받아 냅니다.자세히 보기 → |
| 접지 | 부하 리턴을 아날로그 접지에서 분리 |
| 자기장 (큰 전류 루프) | 루프 면적(loop area)루프 면적 loop area가는 길과 오는 길이 감싸는 넓이로, 이것이 곧 안테나 크기이므로 좁힐수록 잡음이 줍니다.자세히 보기 → 최소화, 물리적 거리 |
| 방사 | 게이트 저항으로 에지 완만하게 |
| 케이블 | 모터 케이블을 신호 케이블과 분리, 실드 |
가장 강력한 대책: 시간 분리
시간을 가로축에 놓고 구간을 번갈아 나눕니다.
| 구간 | PWM | ADC | 길이 |
|---|---|---|---|
| 측정 구간 | 정지 (스위칭 없음 → 잡음 없음) | 샘플링 | 필요한 획득 시간만큼 |
| 구동 구간 | 동작 (마음껏 시끄러워도 됨) | 정지 | 부하가 필요한 만큼 |
| 측정 구간 | 정지 | 샘플링 | (반복) |
PWM과 측정을 시간적으로 분리하면 아무리 시끄러운 구동도 문제가 되지 않습니다. 부하가 관성을 가지면(모터, 히터) 짧은 정지는 영향이 없습니다.
이것이 16-05에서 다루는 가장 효과적인 해법입니다.
모터 구동
H브리지
정방향/역방향 제어. MOSFET 4개(또는 전용 IC).
| 주의 | 설명 |
|---|---|
| 데드타임 | 상하 스위치가 동시에 켜지면 관통 전류로 파괴. 반드시 데드타임 확보 |
| 플라이백 | MOSFET 바디 다이오드(diode)가 담당하지만 느림 → 외부 쇼트키 권장 |
| 전류 감지 | 션트 + 전류 감지 증폭기 |
| 부트스트랩(bootstrap) | 하이사이드 N-MOSFET 구동에 필요 |
전류 감지
| 부품 | 어디에 붙나 | 하는 일 |
|---|---|---|
| 션트 R | H브리지 하단 ↔ GND | 모터 전류를 작은 전압으로 바꾼다. 크면 감도가 좋지만 그만큼 전압·전력을 버린다 |
| 전류 감지 증폭기 | 션트 양단 | 수십~수백 mV를 ADC 범위까지 키운다. 차동으로 받아 션트의 GND 쪽 튐을 무시한다 |
| · | 증폭기 출력 ↔ ADC | PWM 에지가 만드는 스파이크를 깎는다 |
⚠️ 션트 전압은 PWM에 동기해 크게 흔들립니다. 샘플링 타이밍을 PWM에 동기화(보통 PWM 중앙)해야 안정된 값을 얻습니다.
시뮬레이션으로 확인
# examples/10-mcu-interfacing/pwm-dac.yaml
meta:
name: PWM을 RC로 평활한 아날로그 출력
lesson: docs/10-mcu-interfacing/05-pwm.md
note: PWM 주파수와 RC를 바꾸며 리플을 비교
components:
- {ref: VP, type: vpulse, params: {v1: 0, v2: 3.3, td: 0, tr: 10n, tf: 10n, pw: 50u, per: 100u}}
- {ref: R1, type: r, value: 10k}
- {ref: C1, type: c, value: 1u}
nets:
PWM: [VP.p, R1.1]
OUT: [R1.2, C1.1]
GND: [VP.n, C1.2]
analyses:
- {type: tran, tstep: 1u, tstop: 100m}
expect:
- {measure: v, node: OUT, at: 90m, analysis: tran, value: 1.65, tol: 3%}정착 후 평균이 1.65 V(듀티 50%)이고, 리플이 계산값과 맞는지 확인하세요.
⚖️ 부품 트레이드오프
| 선택 | ✅ 좋아지는 것 | ⚠️ 나빠지는 것 |
|---|---|---|
| 높은 PWM 주파수 | 리플↓, 필터 부담↓, 소음 없음 | 스위칭 손실↑, EMI↑ |
| 낮은 PWM 주파수 | 손실↓, EMI 주파수↓ | 리플↑, 가청 소음 |
| 큰 필터 | 리플↓ | 응답 느림 |
| 2차 필터 | 리플 크게↓ | 부품↑, 지연↑ |
| 게이트 저항 크게 | EMI↓ | 스위칭 손실↑ |
| PWM 대신 진짜 DAC | 리플 없음, 빠름, 정밀 | 비쌈, 부품·핀 |
| PWM 대신 리니어 구동 | 노이즈 없음 | 효율 급락, 발열 |
💡 측정 시스템에서 소량의 아날로그 출력이 필요하다면 PWM보다 I2C/SPI DAC이 낫습니다. 리플이 없고 노이즈를 만들지 않습니다. 가격 차이도 크지 않습니다.
🔌 실제 쓰임새
| 용도 | 주파수 | 측정 회로 영향 |
|---|---|---|
| LED 표시등 조광 | 1 kHz | 작음 (전류 작음) |
| DC 모터 | 20~30 kHz | 큼 — 분리 필수 |
| 펠티에·히터 | 0.1~10 Hz | 큼 (전류 큼) — 시간 분리 권장 |
| 밸브·솔레노이드 | 수 kHz | 큼 |
| 아날로그 출력 | 높을수록 | 중간 |
| 자극 전류 생성 | 용도별 | 측정과 완전 분리 필요 |
⚠️ 이상과 실제의 차이
| 이상 | 실제 |
|---|---|
| 완벽한 사각파 | 상승·하강 시간, 링잉(ringing), 오버슈트(overshoot)오버슈트 overshoot계단 입력에 응답이 목표값을 넘어 솟는 정도로, 감쇠비 하나로 정해집니다.자세히 보기 → |
| 듀티가 정확 | 데드타임, 전파 지연으로 오차 |
| 평균값이 정확 | 변동(전원 리플)이 그대로 오차 |
| 노이즈 없음 | 광대역 고조파 |
| 필터로 완전 평활(smoothing) | 리플이 항상 남음 |
⚠️ PWM DAC의 정확도는 전원 전압에 직접 비례합니다. 3.3 V 레일이 1% 흔들리면 출력도 1% 흔들립니다. 정밀 출력이 필요하면 기준전압(voltage reference) 기반 DAC를 쓰세요.
연습문제
문제 1. 3.3 V PWM 20 kHz를 =10 kΩ, =10 µF으로 평활합니다. =0.5에서 리플은?
풀이
mu이동도mobilitym²/V·stau시정수time constantsT온도 또는 주기temperature or periodV_ripple전압 (ripple)voltage (ripple)V리플은 작지만 시정수가 100 ms라 응답이 매우 느립니다. 목표 전압에 도달하는 데 약 1초(10τ)가 걸립니다.
문제 2. µV 측정 회로 옆에서 모터를 25 kHz PWM으로 구동합니다. 어떤 대책을 세우겠습니까?
exercises/10-05-motor-pwm.yaml풀이
우선순위 순:
1. 시간 분리 (가장 효과적)
- ADC 샘플링 구간에 PWM을 정지. 모터의 기계적 관성 덕분에 수십 µs 정지는 영향 없음
- 또는 PWM 주기에 동기해 스위칭이 없는 순간에만 샘플링
2. 전원·접지 분리
- 모터 전원을 별도 레일로
- 모터 전류의 리턴을 아날로그 접지에서 완전히 분리, 전원 입구에서만 만남
- 아날로그 전원에 LDO + 필터
3. 물리적 분리와 차폐(shielding)차폐 shielding도체로 감싸 전기장을 막는 것으로, 한쪽 끝만 접지해야 접지 루프가 생기지 않습니다.자세히 보기 →
- 모터 드라이버를 아날로그부에서 최대한 멀리
- 모터 케이블을 신호 케이블과 분리, 꼬아서 루프 면적 축소
- 필요하면 실드 캔
4. 스위칭 완만하게
- 게이트 저항을 키워 , 감소
- 손실은 늘지만 EMI가 크게 줄어듦
5. 필터
- 모터 라인에 페라이트 비드(ferrite bead), 스너버
- 아날로그 입력에 RF 필터 (고주파가 증폭기에서 정류되어 DC 옵셋을 만드는 것 방지)
6. 신호 처리
- 25 kHz와 그 고조파를 디지털 노치로 제거 (단, ADC가 포화하지 않은 경우만)
1번(시간 분리)이 압도적으로 효과적입니다. 나머지는 시간 분리가 불가능할 때의 차선책입니다.
자세한 사례 → 16-05 액추에이터 간섭
이전 ← 04 안티에일리어싱 | 다음 → 06 통신의 전기적 관점