PWM과 구동

한 줄 요약 — 듀티비로 평균 전력을 제어합니다. 효율은 좋지만 광대역 노이즈원이라 측정 회로와 상극입니다.


PWM 기본

Vavg=Vhigh×D,D=tonTV_{avg} = V_{high}\times D, \qquad D = \frac{t_{on}}{T}
기호
D듀티비duty cycle
T온도 또는 주기temperature or period
t_on시간 (on)time (on)s
V_avg평균 전압average voltageV
V_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 저역통과로 평활합니다.

Vripple≈Vhigh×D(1−D)×TRCV_{ripple} \approx V_{high}\times D(1-D)\times\frac{T}{RC}
기호
C정전용량capacitanceF
D듀티비duty cycle
R저항resistanceΩ
T온도 또는 주기temperature or period
V_high전압 (high)voltage (high)V
V_ripple전압 (ripple)voltage (ripple)V

최악은 D=0.5D = 0.5 일 때입니다.

계산 예제

3.3 V PWM, 10 kHz, RR = 10 kΩ, CC = 1 µF, DD = 0.5:

τ=10 ms,T=100 μs\tau = 10\ \text{ms}, \quad T = 100\ \mu\text{s}
기호
mu이동도mobilitym²/V·s
tau시정수time constants
T온도 또는 주기temperature or period
Vripple≈3.3×0.25×100μ10m=8.25 mVV_{ripple} \approx 3.3\times0.25\times\frac{100\mu}{10\text{m}} = 8.25\ \text{mV}
기호
mu이동도mobilitym²/V·s
V_ripple전압 (ripple)voltage (ripple)V

8비트 DAC(13 mV LSB)로는 충분하지만 12비트(0.8 mV)에는 부족합니다.

개선:

  • PWM 주파수를 100 kHz로 → 리플(ripple)리플 ripple직류가 되다 만 나머지 교류분으로, 평활 커패시터가 얼마나 큰지로 정해집니다.Vr=If CV_r = \frac{I}{f\,C}자세히 보기 → 0.83 mV
  • 2차 필터 → 리플 제곱으로 감소
  • τ\tau를 키움 → 응답 느려짐 (트레이드오프)

💡 PWM DAC의 근본 한계: 리플을 줄이려면 τ\tau를 키워야 하고, 그러면 응답이 느려집니다. 정밀도와 속도가 정면으로 충돌합니다. 정밀 아날로그 출력이 필요하면 진짜 DAC를 쓰세요.


★ PWM이 측정 회로에 미치는 영향

PWM은 사각파이므로 기본 주파수의 홀수 배수 고조파를 광범위하게 만듭니다.

고조파 크기∝1n(n번째고조파)\text{고조파 크기} \propto \frac{1}{n} \quad (n번째 고조파)
기호
n비트 수 또는 개수number of bits or count

그리고 상승시간이 만드는 대역 상한:

fmax≈1πtrf_{max} \approx \frac{1}{\pi t_r}
기호
f_max최대 주파수maximum frequencyHz
t_r상승 시간rise times

결합 경로와 대책

경로대책
전원PWM 부하 전원을 분리, 벌크 커패시터(bulk capacitor)벌크 커패시터 bulk capacitor보드 입구에 두는 큰 커패시터로, 디커플링이 못 따라가는 느린 전류 변화를 받아 냅니다.자세히 보기 →
접지부하 리턴을 아날로그 접지에서 분리
자기장 (큰 전류 루프)루프 면적(loop area)루프 면적 loop area가는 길과 오는 길이 감싸는 넓이로, 이것이 곧 안테나 크기이므로 좁힐수록 잡음이 줍니다.자세히 보기 → 최소화, 물리적 거리
방사게이트 저항으로 에지 완만하게
케이블모터 케이블을 신호 케이블과 분리, 실드

가장 강력한 대책: 시간 분리

시간을 가로축에 놓고 구간을 번갈아 나눕니다.

구간PWMADC길이
측정 구간정지 (스위칭 없음 → 잡음 없음)샘플링필요한 획득 시간만큼
구동 구간동작 (마음껏 시끄러워도 됨)정지부하가 필요한 만큼
측정 구간정지샘플링(반복)

PWM과 측정을 시간적으로 분리하면 아무리 시끄러운 구동도 문제가 되지 않습니다. 부하가 관성을 가지면(모터, 히터) 짧은 정지는 영향이 없습니다.

이것이 16-05에서 다루는 가장 효과적인 해법입니다.


모터 구동

H브리지

정방향/역방향 제어. MOSFET 4개(또는 전용 IC).

주의설명
데드타임상하 스위치가 동시에 켜지면 관통 전류로 파괴. 반드시 데드타임 확보
플라이백MOSFET 바디 다이오드(diode)가 담당하지만 느림 → 외부 쇼트키 권장
전류 감지션트 + 전류 감지 증폭기
부트스트랩(bootstrap)하이사이드 N-MOSFET 구동에 필요

전류 감지

모터 전류 션트 감지 회로도R31kΩRF100ΩADC 격리IMOT2A모터 전류RSH50mΩ션트R11kΩR420kΩCF10nFADC 입력 필터VP5VR220kΩU1OPA320전류 감지 증폭기VCCVCCSHPSUMREFOUTADCGND
모터 전류 션트 감지워크벤치에서 열기 →
부품어디에 붙나하는 일
션트 RH브리지 하단 ↔ GND모터 전류를 작은 전압으로 바꾼다. 크면 감도가 좋지만 그만큼 전압·전력을 버린다
전류 감지 증폭기션트 양단수십~수백 mV를 ADC 범위까지 키운다. 차동으로 받아 션트의 GND 쪽 튐을 무시한다
RFR_F·CFC_F증폭기 출력 ↔ ADCPWM 에지가 만드는 스파이크를 깎는다

⚠️ 션트 전압은 PWM에 동기해 크게 흔들립니다. 샘플링 타이밍을 PWM에 동기화(보통 PWM 중앙)해야 안정된 값을 얻습니다.


시뮬레이션으로 확인

PWM을 RC로 평활한 아날로그 출력 회로도R110kΩVPC11µFPWMOUTGND
PWM을 RC로 평활한 아날로그 출력워크벤치에서 열기 →
# 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 주파수↓리플↑, 가청 소음
큰 필터 τ\tau리플↓응답 느림
2차 필터리플 크게↓부품↑, 지연↑
게이트 저항 크게EMI↓스위칭 손실↑
PWM 대신 진짜 DAC리플 없음, 빠름, 정밀비쌈, 부품·핀
PWM 대신 리니어 구동노이즈 없음효율 급락, 발열

💡 측정 시스템에서 소량의 아날로그 출력이 필요하다면 PWM보다 I2C/SPI DAC이 낫습니다. 리플이 없고 노이즈를 만들지 않습니다. 가격 차이도 크지 않습니다.


🔌 실제 쓰임새

용도주파수측정 회로 영향
LED 표시등 조광1 kHz작음 (전류 작음)
DC 모터20~30 kHz큼 — 분리 필수
펠티에·히터0.1~10 Hz큼 (전류 큼) — 시간 분리 권장
밸브·솔레노이드수 kHz큼
아날로그 출력높을수록중간
자극 전류 생성용도별측정과 완전 분리 필요

⚠️ 이상과 실제의 차이

이상실제
완벽한 사각파상승·하강 시간, 링잉(ringing), 오버슈트(overshoot)오버슈트 overshoot계단 입력에 응답이 목표값을 넘어 솟는 정도로, 감쇠비 하나로 정해집니다.Mp=e−πζ/1−ζ2M_p = e^{-\pi\zeta/\sqrt{1-\zeta^2}}자세히 보기 →
듀티가 정확데드타임, 전파 지연으로 오차
평균값이 정확VhighV_{high} 변동(전원 리플)이 그대로 오차
노이즈 없음광대역 고조파
필터로 완전 평활(smoothing)리플이 항상 남음

⚠️ PWM DAC의 정확도는 전원 전압에 직접 비례합니다. 3.3 V 레일이 1% 흔들리면 출력도 1% 흔들립니다. 정밀 출력이 필요하면 기준전압(voltage reference) 기반 DAC를 쓰세요.


연습문제

문제 1. 3.3 V PWM 20 kHz를 RR=10 kΩ, CC=10 µF으로 평활합니다. DD=0.5에서 리플은?

연습 10-05-1 — PWM 을 평활해 DAC 으로 쓰기 회로도R110kΩVPWM20 kHz 듀티 50 %C110µF평활 — 리플과 속도를 함께 정합니다PWMOUTGND
연습 10-05-1 — PWM 을 평활해 DAC 으로 쓰기워크벤치에서 열기 →
풀이 τ=100 ms,T=50 μs\tau = 100\ \text{ms}, \quad T = 50\ \mu\text{s}
기호
mu이동도mobilitym²/V·s
tau시정수time constants
T온도 또는 주기temperature or period
Vripple≈3.3×0.25×50×10−60.1=0.41 mVV_{ripple} \approx 3.3\times0.25\times\frac{50\times10^{-6}}{0.1} = 0.41\ \text{mV}
기호
V_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. 스위칭 완만하게

  • 게이트 저항을 키워 dv/dtdv/dt, di/dtdi/dt 감소
  • 손실은 늘지만 EMI가 크게 줄어듦

5. 필터

  • 모터 라인에 페라이트 비드(ferrite bead), 스너버
  • 아날로그 입력에 RF 필터 (고주파가 증폭기에서 정류되어 DC 옵셋을 만드는 것 방지)

6. 신호 처리

  • 25 kHz와 그 고조파를 디지털 노치로 제거 (단, ADC가 포화하지 않은 경우만)

1번(시간 분리)이 압도적으로 효과적입니다. 나머지는 시간 분리가 불가능할 때의 차선책입니다.

자세한 사례 → 16-05 액추에이터 간섭


이전 ← 04 안티에일리어싱 | 다음 → 06 통신의 전기적 관점