10장. MCU 인터페이싱
왼쪽 절반에만 찍고 오른쪽은 백지로 비웁니다 — 읽으면서 옆에 적어 보세요. 내용은 하나도 안 자릅니다.
2단으로 빽빽하게, 표시된 것만 — 시험 직전에 훑는 배치입니다.
GPIO 입출력
MCU 핀은 약합니다. 전류 한계를 알고, 아날로그 회로와의 간섭(interference)을 관리해야 합니다.
전류A게이트 전하C시간s
⚠️ 이상과 실제
| 이상 | 실제 |
|---|---|
| = | 전류에 따라 강하 |
| 전류 무한 | 핀·포트·칩 3중 한계 |
| 즉시 전환 | 슬루레이트, 배선 지연 |
| 아날로그에 영향 없음 | 전원·접지·용량으로 결합 |
| 부팅 시 정의된 상태 | 리셋 중에는 하이임피던스 — 외부 풀업/풀다운 필요 |
⚖️ 고르는 기준
| 선택 | ✅ 좋아지는 것 | ⚠️ 나빠지는 것 |
|---|---|---|
| 직렬 저항 (22~100 Ω) | EMI↓, 반사↓, 과전류 보호 | 지연↑, 강한 부하 구동 불가 |
| 높은 GPIO 속도 설정 | 빠른 통신 | EMI↑, 전력↑ |
| 낮은 GPIO 속도 설정 | EMI↓, 전력↓ | 고속 통신 불가 |
| 외부 드라이버/버퍼 | 구동력↑, MCU 보호 | 부품·전력 |
| 내부 풀업 사용 | 부품 0 | 부정확, 부팅 전 무효 |
| 외부 풀업 | 정확, 항상 유효 | 부품, 전류 |
버튼과 디바운싱
기계 접점은 붙었다 떨어졌다를 수 ms 동안 반복합니다. 하드웨어나 소프트웨어로 걸러야 합니다.
시정수s정전용량F저항Ω
이동도m²/V·s시정수s정전용량F저항Ω
⚠️ 이상과 실제
| 이상 | 실제 |
|---|---|
| 접점이 즉시 붙음 | 수 ms 채터링 |
| 채터링 시간이 일정 | 스위치 개체·마모·온도에 따라 변동 |
| RC만으로 충분 | 슈미트 입력이 없으면 발진 |
| 버튼은 노이즈원이 아님 | 긴 배선은 안테나, ESD 유입 경로 |
⚖️ 고르는 기준
| 방식 | ✅ 좋아지는 것 | ⚠️ 나빠지는 것 |
|---|---|---|
| RC + 슈미트 | 하드웨어에서 해결, CPU 부담 0, 노이즈도 함께 제거 | 부품 2개, 지연, 커패시터 방전 전류 |
| RS 래치 | 지연 없음, 완벽 | SPDT 스위치 + 게이트 필요 |
| 소프트웨어 (카운터) | 부품 0, 유연(임계값 조정) | CPU 자원, 노이즈 펄스가 GPIO에 그대로 들어옴 |
| 소프트웨어 (지연) | 가장 간단 | 블로킹, 실시간성 저하 |
ADC 입력 설계
ADC는 샘플링 커패시터(sampling capacitor)를 충전해서 측정합니다. 소스 임피던스가 크면 충전이 안 되고 값이 틀립니다.
시정수s샘플링 커패시터F신호원 저항Ω스위치 저항Ω
시정수s비트 수 또는 개수획득 시간s
전압 변화량V외부 커패시터F샘플링 커패시터F전압V
외부 커패시터F잡음 전압 밀도V/√Hz컨덕턴스 (소신호)S저항 (소신호)Ω신호원 저항Ω
시정수s
이동도m²/V·s획득 시간s
외부 커패시터F샘플링 커패시터F
시정수s
시정수s
⚠️ 이상과 실제
| 이상 | 실제 |
|---|---|
| 입력 임피던스 무한 | 샘플링 중에는 매우 낮음 (kΩ) |
| 즉시 측정 | 획득 시간 필요 |
| 채널 독립 | 멀티플렉스 시 이전 채널의 잔류 전하 (메모리 효과) |
| 기준전압(voltage reference) 정확 | 기준전압 잡음이 모든 측정에 곱해짐 (8-06) |
| 선형 | INL/DNL 오차, 미싱 코드 |
⚖️ 고르는 기준
| 선택 | ✅ 좋아지는 것 | ⚠️ 나빠지는 것 |
|---|---|---|
| ADC 드라이버(버퍼) | 소스 임피던스 무관, 빠른 샘플링 | 부품·전력, OP앰프 잡음·옵셋 추가 |
| 입력 커패시터 (100 nF) | 전하 공급, 노이즈 필터 | 응답 느림, 빠른 신호에 부적합 |
| 작은 입력 커패시터 (1 nF) | 빠른 재충전 | 전하 공급 부족 |
| 샘플링 시간 늘리기 | 부품 0 | 샘플링률 감소 |
| 소스 저항 낮추기 | 근본 해결 | 전류 소비, 신호원 부담 |
| 직렬 저항 + 커패시터 (RC) | 안티에일리어싱 겸용 | 대역폭 제한 |
⚖️ 고르는 기준
| 분압 저항 | 소비 전류 | 소스 임피던스 | ADC 적합성 |
|---|---|---|---|
| 1 k / 1 k | 큼 | 500 Ω | ✅ 우수 |
| 10 k / 10 k | 중간 | 5 kΩ | ✅ 양호 |
| 100 k / 100 k | 작음 | 50 kΩ | ⚠️ 샘플링 시간 필요 |
| 1 M / 1 M | 극소 | 500 kΩ | ❌ 버퍼 필수 |
안티에일리어싱
나이퀴스트 주파수(Nyquist frequency) 위의 성분은 되돌릴 수 없게 저주파로 접혀 들어옵니다. 반드시 아날로그에서 막아야 합니다.
주파수Hz샘플링 주파수Hz
최대 주파수Hz샘플링 주파수Hz
이득 (req)비트 수 또는 개수
이득 (req)신호 주파수Hz샘플링 주파수Hz비트 수 또는 개수
비트 수 또는 개수
신호 주파수Hz샘플링 주파수Hz
비트 수 또는 개수
비트 수 또는 개수
비트 수 또는 개수
⚠️ 이상과 실제
| 이상 | 실제 |
|---|---|
| 필터가 완벽히 차단 | 유한한 롤오프, 고주파 누설 |
| 나이퀴스트만 지키면 됨 | 실용적으로 5~10배 필요 |
| 신호만 접힘 | 노이즈도 접힘 |
| 필터 위치 무관 | 멀티플렉서 앞이어야 함 |
| 부품 값이 정확 | ±10~20% 변동 → 이동 |
⚖️ 고르는 기준
| 선택 | ✅ 좋아지는 것 | ⚠️ 나빠지는 것 |
|---|---|---|
| 높은 샘플링률 (오버샘플링) | 필터 차수↓, 분해능↑, 디지털 필터 자유 | ADC 전력·비용↑, 데이터량↑, 처리 부담 |
| 높은 필터 차수 | 낮은 샘플링률로 가능 | 부품↑, 위상 왜곡↑, 잡음↑, 부품 오차 감도↑ |
| 베셀 필터 | 파형 보존 | 차단(cutoff) 완만 → 차수↑ 또는 오버샘플링 필요 |
| 버터워스 | 급격한 차단 | 파형 왜곡(링잉(ringing)) |
| 필터를 생략 | 부품 0 | 에일리어싱 — 되돌릴 수 없음 ❌ |
PWM과 구동
듀티비로 평균 전력을 제어합니다. 효율은 좋지만 광대역 노이즈원이라 측정 회로와 상극입니다.
듀티비온도 또는 주기시간 (on)s평균 전압V전압 (high)V
정전용량F듀티비저항Ω온도 또는 주기전압 (high)V전압 (ripple)V
이동도m²/V·s시정수s온도 또는 주기
이동도m²/V·s전압 (ripple)V
비트 수 또는 개수
최대 주파수Hz상승 시간s
이동도m²/V·s시정수s온도 또는 주기
전압 (ripple)V
⚠️ 이상과 실제
| 이상 | 실제 |
|---|---|
| 완벽한 사각파 | 상승·하강 시간, 링잉(ringing), 오버슈트(overshoot) |
| 듀티가 정확 | 데드타임, 전파 지연으로 오차 |
| 평균값이 정확 | 변동(전원 리플)이 그대로 오차 |
| 노이즈 없음 | 광대역 고조파 |
| 필터로 완전 평활(smoothing) | 리플이 항상 남음 |
⚖️ 고르는 기준
| 선택 | ✅ 좋아지는 것 | ⚠️ 나빠지는 것 |
|---|---|---|
| 높은 PWM 주파수 | 리플↓, 필터 부담↓, 소음 없음 | 스위칭 손실↑, EMI↑ |
| 낮은 PWM 주파수 | 손실↓, EMI 주파수↓ | 리플↑, 가청 소음 |
| 큰 필터 | 리플↓ | 응답 느림 |
| 2차 필터 | 리플 크게↓ | 부품↑, 지연↑ |
| 게이트 저항 크게 | EMI↓ | 스위칭 손실↑ |
| PWM 대신 진짜 DAC | 리플 없음, 빠름, 정밀 | 비쌈, 부품·핀 |
| PWM 대신 리니어 구동 | 노이즈 없음 | 효율 급락, 발열 |
통신의 전기적 관점
프로토콜이 아니라 전기 특성을 봅니다. 거리, 속도, 노이즈 내성, 그리고 측정 회로에 주는 간섭(interference).
정전용량 (b)F최대 저항Ω최소 저항Ω상승 시간s전압 (DD)V
주파수 (ring)Hz
최대 저항Ω
최대 저항Ω
⚠️ 이상과 실제
| 이상 | 실제 |
|---|---|
| 신호가 깨끗 | 링잉, 오버슈트, 크로스토크(crosstalk) |
| 거리 무관 | 용량·인덕턴스(inductance)로 속도 제한 |
| 통신이 다른 회로에 영향 없음 | 전원·접지·용량 결합(coupling) |
| 프로토콜만 맞으면 동작 | 전기 레벨·타이밍·종단이 맞아야 함 |
| 절연하면 완전 격리 | 절연 배리어의 기생 용량(parasitic capacitance)으로 공통 모드 전류가 흐름 |
⚖️ 고르는 기준
| 선택 | ✅ 좋아지는 것 | ⚠️ 나빠지는 것 |
|---|---|---|
| I2C | 선 2개, 다중 장치 | 느림, 거리 짧음, 풀업(pull-up) 계산 필요 |
| SPI | 빠름, 단순 | 선 많음, EMI 큼, 거리 짧음 |
| 차동 (RS-485/LVDS) | 노이즈 내성·저EMI·장거리 | 부품(트랜시버), 선 2개/쌍, 종단 필요 |
| 절연 | 접지 루프 차단(cutoff), 안전 | 비쌈, 지연, 절연측 전원 필요 |
| 낮은 통신 속도 | EMI↓, 신뢰성↑ | 처리량↓ |
| 직렬 종단 저항 | 링잉(ringing)·EMI↓ | 지연, 부품 |
ADC 의 실제 한계 — ENOB 와 지터
12비트 ADC 가 12비트를 주는 일은 없습니다. 양자화·지터·잡음·왜곡이 제곱합으로 모여 실효 비트를 깎고, 어느 것이 지배하는지는 신호 주파수가 정합니다.
유효 비트 수bit신호 대 잡음·왜곡비dB
신호 대 잡음·왜곡비dB신호 대 잡음비dB전고조파 왜곡dB
비트 수 또는 개수전압 (FS)V전압 (순시값) (q, 실효값)V
비트 수 또는 개수신호 대 잡음비dB전압 (FS)V
비트 수 또는 개수
이득거리 또는 두께m주파수Hz시간s전압 (순시값)V
이득주파수Hz시간 (j, 실효값)s실효값 전압 (순시값)V
주파수Hz신호 대 잡음비dB시간 (j, 실효값)s
주파수Hz지터s
신호 대 잡음·왜곡비dB신호 대 잡음비dB전고조파 왜곡dB
인덕턴스H비트 수 또는 개수
신호 대 잡음비dB
신호 대 잡음비dB
신호 대 잡음비dB
신호 대 잡음·왜곡비dB
유효 비트 수bit
신호 대 잡음비dB
주파수Hz지터s
지터s
신호 대 잡음·왜곡비dB
유효 비트 수bit
인덕턴스H비트 수 또는 개수
⚠️ 이상과 실제
| 이상 | 실제 |
|---|---|
| 16비트면 16비트 | ENOB 는 늘 그보다 1~3비트 낮습니다 |
| 양자화 잡음이 백색 | 신호가 정적이면 코드에 갇혀 디더가 필요합니다 |
| 지터는 클럭만의 문제 | 전원 잡음이 클럭 버퍼를 통해 지터로 바뀝니다 |
| 오버샘플링은 항상 이득 | 잡음이 이미 LSB 보다 작으면 평균 내도 안 늘어납니다 |
| ENOB 가 주파수와 무관 | 지터 때문에 주파수가 오르면 떨어집니다 — 데이터시트의 SNDR vs 주파수 곡선을 보세요 |
⚖️ 고르는 기준
| 선택 | ✅ 좋아지는 것 | ⚠️ 나빠지는 것 |
|---|---|---|
| 비트 수 큰 ADC | 양자화 항만 | 다른 항이 지배하면 아무 효과 없음, 가격 |
| 좋은 클럭 (저지터) | 고주파에서 크게 | 저주파에서는 무의미, 가격 |
| 저잡음 드라이버 | 잡음 항 | 전류·면적 |
| 오버샘플링 | 잡음·양자화 항 | 데이터량, 대역 제한 |
| 풀스케일을 덜 씀 | THD↓ | SNR 이 그만큼 나빠짐 — 상쇄되기 쉬움 |
| ΔΣ 로 바꿈 | 저주파에서 압도적 | 지연, 다채널 스캔에 불리 |
DAC — 구조와 글리치
DAC 의 정확도는 저항 정합이 정하고, 파형의 깨끗함은 글리치가 정합니다. 둘은 서로 다른 문제이고 대책도 다릅니다.
듀티비결합 계수 또는 상수개수출력 전압V기준 전압V
인덕턴스H비트 수 또는 개수
듀티비전압 (DD)V출력 전압V
주파수 (PWM)Hz주파수 (sys)Hz개수
정전용량F주파수 (PWM)Hz저항Ω전압 (DD)V전압 (ripple)V
정전용량F주파수 (PWM)Hz저항Ω
이동도m²/V·s
이동도m²/V·s
⚠️ 이상과 실제
| 이상 | 실제 |
|---|---|
| 출력이 코드에 정확히 비례 | INL·DNL 이 있습니다. DNL > 1 LSB 면 코드가 빠집니다 |
| 코드가 바뀌면 바로 그 값 | 글리치가 먼저 지나갑니다 |
| DAC 출력이 이상적 전압원 | 출력 임피던스가 있습니다 — 버퍼가 필요할 때가 많습니다 |
| 기준전압이 정확 | DAC 정확도의 상한이 기준전압 정확도입니다 |
| PWM 은 그냥 평균 | 리플·정착·타이머 지터가 다 들어옵니다 |
⚖️ 고르는 기준
| 선택 | ✅ | ⚠️ |
|---|---|---|
| R-2R IC | 빠르고 예측 가능 | 12비트 이상은 값이 뜀 |
| ΔΣ DAC | 24비트, 정합 문제 없음 | 느림, 지연, 아날로그 LPF 필요 |
| PWM + RC | 부품 2개, 공짜 | 리플 vs 정착이 정면충돌 |
| PWM 2단 필터 | 같은 정착에서 리플↓ | 부품 4개 |
| 세그먼트 DAC | 글리치 거의 없음 | 칩 안에서만 가능 |
| 디글리처 추가 | 글리치 제거 | 부품, 자체 오차 |
연습문제
인쇄하면 답이 접힌 채로 나옵니다 — 그대로 문제지가 됩니다. 위의 “답도 함께 인쇄” 를 켜면 풀이까지 펴서 나옵니다.
- GPIO 입출력GPIO 핀당 8 mA, 포트당 60 mA 한계입니다. 같은 포트에서 LED 몇 개를 5 mA로 켤 수 있습니까?
연습 10-01-1 — 포트 한계가 핀 한계보다 먼저 걸린다 풀이
단, 칩 전체 한계도 확인해야 합니다. MCU 자체가 30 mA를 쓰고 칩 한계가 100 mA라면 LED에 쓸 수 있는 것은 70 mA → 14개. 포트 한계가 더 엄격하므로 12개가 답입니다.
여유를 두어 8~10개 정도로 설계하는 것이 안전합니다.
- GPIO 입출력ADC 변환 중에 UART로 데이터를 전송했더니 측정값에 주기적인 노이즈가 나타납니다. 원인과 해결책은?
풀이
원인:
- 전원 결합 — UART 송신 시 GPIO 스위칭 전류가 전원 전압을 흔들고, ADC 기준전압(voltage reference)이나 아날로그 전원에 침투
- 접지 결합 — 리턴 전류가 아날로그 접지 전위를 흔듦
- 용량 결합 — TX 배선이 아날로그 배선 근처를 지남
- DMA/버스 활동 — 내부 버스 활동도 전원을 흔듦
해결 (효과 순):
- 타이밍 분리 — ADC 변환이 끝난 후에 UART 전송. 인터럽트로 순서 제어 ← 가장 확실
- GPIO 슬루레이트 최소 설정
- TX 라인에 직렬 저항 (33~100 Ω)
- 아날로그 전원·접지 분리 강화
- UART 배선을 아날로그에서 물리적으로 분리
- 오버샘플링(oversampling) + 평균화로 완화 (근본 해결은 아님)
"변환 중에는 아무것도 하지 않는다" 가 정밀 측정 펌웨어의 원칙입니다. 일부 MCU는 ADC 변환 중 CPU를 sleep 시키는 모드를 제공합니다.
- 버튼과 디바운싱채터링 15 ms인 스위치에 RC 디바운싱을 설계하세요. = 10 kΩ이면 는?
연습 10-02-1 — 채터링 15 ms 를 RC 로 없애기 풀이
ms 정도로 잡으면:
470 nF 또는 1 µF 선택.
⚠️ 너무 크게 하면 버튼 반응이 느껴질 정도로 느려집니다. 50 ms를 넘지 않게 하세요.
- 버튼과 디바운싱1 ms 타이머로 소프트웨어 디바운싱을 합니다. 20 ms 디바운싱을 원하면 카운터 임계값은? 그리고 이 방식의 장점은?
풀이
임계값 = 20 (1 ms × 20 = 20 ms)
장점:
- 비블로킹 — CPU가 다른 일을 할 수 있음
- 노이즈 내성 — 단발 노이즈 펄스는 카운터를 조금 올릴 뿐 임계값에 도달하지 못함
- 히스테리시스(hysteresis) 효과 — 올릴 때와 내릴 때 임계값을 다르게 하면 더 안정
- 임계값을 런타임에 조정 가능
개선: 상승/하강 임계값을 다르게 (예: 눌림 20, 뗌 5) 하면 반응이 빠르면서도 안정적입니다.
- ADC 입력 설계 = 8 pF, = 1.5 kΩ, 소스 임피던스 20 kΩ. 10비트 획득 시간은?
연습 10-03-1 — ADC 획득 시간과 소스 임피던스 풀이
- ADC 입력 설계1 MΩ 분압기 출력을 ADC로 읽습니다. 100 nF 커패시터를 달면 되나요?
풀이
전하 공유 오차는 해결됩니다:
✅
하지만 재충전 시정수:
응답이 극도로 느려집니다. (는 1M∥1M = 500 kΩ)
용도 가능? 배터리 전압 (분당 1회) ✅ 가능 온도 (초당 1회) ✅ 가능 50 Hz 이상 신호 ❌ 불가 빠른 신호라면 버퍼가 필수입니다. 또는 분압 저항을 10 k/10 k로 낮추세요 (소비 전류가 100배 늘지만 가 500 µs로 개선).
- ADC 입력 설계8채널 멀티플렉스 ADC로 8개 센서를 읽습니다. 채널 1은 3.0 V, 채널 2는 0.1 V인데, 채널 2를 읽으면 0.15 V로 나옵니다. 원인과 해결책은?
풀이
원인: 메모리 효과 (획득 시간 부족)
채널 1의 3.0 V가 샘플링 커패시터에 남은 상태에서 채널 2로 전환됩니다. 커패시터를 3.0 V → 0.1 V로 방전시켜야 하는데, 획득 시간이 부족해 0.15 V에서 멈춘 것입니다.
필요한 정확도 확인: 12비트, 3.3 V 범위에서 1 LSB = 0.8 mV. 0.05 V 오차는 62 LSB입니다.
해결책:
- 획득 시간 늘리기 ← 가장 간단. MCU 설정에서 샘플링 사이클 증가
- 소스 임피던스 낮추기 — 각 채널에 버퍼 또는 낮은 임피던스 분압
- 각 채널에 커패시터 (100 nF) — 채널마다 전하를 준비해둠 ✅ 효과적
- 더미 변환 — 채널 전환 후 한 번 버리고 두 번째 값을 사용 (간단하고 효과적)
- 채널 순서 최적화 — 전압이 비슷한 채널끼리 인접하게 배치
가장 실용적: 채널 전환 후 첫 변환을 버리기 + 채널마다 커패시터. 펌웨어 한 줄과 부품 몇 개로 해결됩니다.
- 안티에일리어싱1 kHz 신호를 12비트로 측정합니다. = 10 kSPS일 때 필요한 필터 차수는?
풀이
- 안티에일리어싱위 문제에서 를 100 kSPS로 올리면?
연습 10-04-1·2 — 오버샘플링이 필터 차수를 사 준다 풀이
추가 이득: OSR = 100/2 = 50 → 비트 향상. 12비트 ADC로 약 14.8비트 실효 분해능.
대가: 데이터량 10배, ADC 속도 10배.
- 안티에일리어싱64채널을 멀티플렉스로 읽습니다. 전체 ADC 속도는 640 kSPS, 각 채널 신호 대역은 1 kHz입니다. 안티에일리어싱 필터를 어떻게 설계합니까?
풀이
채널당 실효 샘플링률:
따라서 채널당 10 kSPS 기준으로 설계합니다.
필터 위치: 반드시 멀티플렉서 앞, 채널마다.
채널 1 ~ 채널 64 (64개 배선) = 4차 LPF × 64개 | ★ 채널마다 하나씩 — 여기가 비용 폭발 지점 > 64:1 MUX > ADC 640 kSPS | 채널당 실효 10 kSPS문제: 4차 필터 × 64채널 = OP앰프 128개. 비현실적입니다.
실무적 대안:
- 오버샘플링 — ADC를 6.4 MSPS로 올리면 채널당 100 kSPS → 2차면 충분 (OP앰프 64개). 여전히 많지만 절반
- 패시브 RC 1차 + 오버샘플링 — 채널당 1 MSPS면 1차 RC(저항 1개+커패시터(capacitor) 1개)로도 충분. OP앰프 0개 ✅
- 채널 그룹화 — 8채널씩 8그룹, 그룹마다 ADC. 채널당 샘플링률이 8배 올라감
- 시그마-델타 ADC 채널당 배치 — 내장 오버샘플링으로 아날로그 필터 최소화
- 대역이 좁으면 필터 없이 오버샘플링 + 디지털 필터
결론: 다채널 시스템에서는 "채널당 아날로그 필터"가 비용을 지배하므로, 오버샘플링으로 필터를 최대한 단순화(패시브 RC 1차)하는 것이 표준 전략입니다.
이것이 16-01의 액티브 어레이에서 각 픽셀에 복잡한 필터를 넣지 않고, 대신 매우 빠른 멀티플렉싱(τ≈20 ns)으로 오버샘플링하는 설계 선택의 배경입니다.
- PWM과 구동3.3 V PWM 20 kHz를 =10 kΩ, =10 µF으로 평활합니다. =0.5에서 리플은?
연습 10-05-1 — PWM 을 평활해 DAC 으로 쓰기 풀이
리플은 작지만 시정수가 100 ms라 응답이 매우 느립니다. 목표 전압에 도달하는 데 약 1초(10τ)가 걸립니다.
- PWM과 구동µV 측정 회로 옆에서 모터를 25 kHz PWM으로 구동합니다. 어떤 대책을 세우겠습니까?
풀이
우선순위 순:
1. 시간 분리 (가장 효과적)
- ADC 샘플링 구간에 PWM을 정지. 모터의 기계적 관성 덕분에 수십 µs 정지는 영향 없음
- 또는 PWM 주기에 동기해 스위칭이 없는 순간에만 샘플링
2. 전원·접지 분리
- 모터 전원을 별도 레일로
- 모터 전류의 리턴을 아날로그 접지에서 완전히 분리, 전원 입구에서만 만남
- 아날로그 전원에 LDO + 필터
3. 물리적 분리와 차폐(shielding)
- 모터 드라이버를 아날로그부에서 최대한 멀리
- 모터 케이블을 신호 케이블과 분리, 꼬아서 루프 면적 축소
- 필요하면 실드 캔
4. 스위칭 완만하게
- 게이트 저항을 키워 , 감소
- 손실은 늘지만 EMI가 크게 줄어듦
5. 필터
- 모터 라인에 페라이트 비드(ferrite bead), 스너버
- 아날로그 입력에 RF 필터 (고주파가 증폭기에서 정류되어 DC 옵셋을 만드는 것 방지)
6. 신호 처리
- 25 kHz와 그 고조파를 디지털 노치로 제거 (단, ADC가 포화하지 않은 경우만)
1번(시간 분리)이 압도적으로 효과적입니다. 나머지는 시간 분리가 불가능할 때의 차선책입니다.
자세한 사례 → 16-05 액추에이터 간섭
- 통신의 전기적 관점2 m 케이블로 I2C를 연결하려 합니다. 가능합니까?
연습 10-06-1 — 2 m 케이블로 I2C 를 끌 수 있나 풀이
직접 연결은 어렵습니다.
2 m 케이블의 용량은 약 200~250 pF입니다. 규격 한계 400 pF에는 들지만, 여기에 IC 핀과 PCB 용량이 더해지면 초과할 수 있습니다.
100 kHz라면:
→ 아슬아슬하게 가능400 kHz라면:
→ 풀업을 1 kΩ으로 낮춰야 하고, 전류가 3 mA로 늘어남게다가 노이즈 문제가 심각합니다. 2 m 케이블은 안테나 역할을 해 노이즈를 주워오고, I2C는 노이즈 내성이 낮습니다.
권장 대안:
- I2C 버스 확장기 (P82B715) — 케이블 구간의 전류 구동력을 높임
- 차동으로 변환 (PCA9615, I2C over RS-485)
- 다른 인터페이스 — RS-485, CAN
- 원격에 MCU를 두고 로컬 I2C + 원격 통신은 차동으로
- 통신의 전기적 관점생체 신호 측정 보드를 PC에 연결합니다. 어떤 인터페이스를 쓰겠습니까?
풀이
절연이 최우선입니다.
옵션 비교:
방식 절연 속도 전력 평가 USB 직결 ❌ 빠름 PC 급전 접지 루프 + 안전 문제 절연 USB (아이솔레이터) ✅ 12 Mbps 절연측 전원 필요 실용적 Bluetooth/BLE ✅ 완전 느림 (~1 Mbps) 배터리 채널 적을 때 최선 Wi-Fi ✅ 완전 빠름 배터리 소모 큼 다채널에 적합 광섬유 ✅ 완전 매우 빠름 양쪽 전원 최고 성능, 비쌈 권장:
- 채널 수가 적고 배터리 구동 가능 → BLE (완전 절연, 간단, 저전력)
- 다채널 고속 → Wi-Fi 또는 광섬유
- 유선이 필요하고 전력도 받아야 함 → 절연 USB 아이솔레이터 (ADuM4160 등) + 절연 DC-DC
⚠️ 절연 DC-DC의 스위칭 노이즈에 주의하세요. 절연 배리어의 기생 용량을 통해 공통 모드 전류가 흐릅니다. 저용량 절연 소자를 고르고, 공통 모드 초크를 추가하세요.
가장 조용한 구성: 배터리 + BLE. 대지와 전기적 연결이 전혀 없어 접지 루프도, 60 Hz 픽업 경로도 없습니다.
- ADC 의 실제 한계 — ENOB 와 지터12비트 ADC 로 1 MHz 신호를 잽니다. 지터가 양자화 잡음보다 나빠지지 않으려면 클럭 지터는 얼마 이하여야 합니까?
연습 10-07 — ADC 입력이 12비트까지 차는 데 걸리는 시간 풀이
12비트 양자화 SNR:
지터 SNR 이 74 dB 이상이어야 하므로
32 ps. 웬만한 크리스털 오실레이터가 만족합니다. 그런데 같은 계산을
10 MHz 신호에 하면 3.2 ps, 100 MHz 면 320 fs — 저지터 클럭이 비싸지는
지점이 여기입니다. - ADC 의 실제 한계 — ENOB 와 지터SNR 이 80 dB, THD 가 −80 dB 입니다. SNDR 과 ENOB 는?
풀이
둘이 같은 크기이므로 전력이 두 배 → 3 dB 나빠집니다.
둘 중 하나만 고쳐서는 3 dB 도 못 법니다. 잡음을 −∞ 로 만들어도 SNDR 은
80 dB 라 ENOB 는 13.0 — 0.5비트만 올라갑니다. 비슷한 크기의 항이 둘이면
둘 다 손봐야 합니다. - ADC 의 실제 한계 — ENOB 와 지터2차 ΔΣ 로 OSR 128 을 쓰면 몇 비트를 법니까? 1비트 비교기로 시작해도 됩니까?
풀이
보정항을 빼면 실제로는 15~16비트쯤입니다.
1비트로 시작해도 됩니다. 1 + 16 = 17비트 수준이 나옵니다 — ΔΣ 오디오
ADC 가 정확히 이 구조입니다.⚠️ 대가: 샘플링을 128배 빠르게 돌려야 하고, 디지털 데시메이션 필터의
군지연이 수백 샘플입니다. 신호 대역 20 kHz 면 실제 클럭은 5.1 MHz 이고
지연은 수 ms 입니다. 실시간 제어 루프 안에는 못 넣습니다. - DAC — 구조와 글리치8비트 R-2R DAC 을 1% 저항으로 만들면 실제 몇 비트가 나옵니까?
연습 10-08-1 — 1 % 저항으로 만든 8비트 R-2R 은 몇 비트인가 풀이
MSB 의 오차가 가장 크게 나타납니다. MSB 가 1% 틀리면 출력이
풀스케일의 0.5% 만큼 틀립니다.약 7.6비트 — 8비트를 못 채웁니다.
⚠️ 게다가 DNL 이 1 LSB 를 넘으면 단조성이 깨져 코드를 올렸는데
출력이 내려가는 구간이 생깁니다. 제어 루프 안에 넣으면 발진합니다.12비트를 개별 저항으로 만들려면 0.024%(0.1% 도 부족) 이 필요한데,
그런 저항은 개당 수천 원이고 온도계수까지 맞춰야 합니다. IC 를 사는
것이 언제나 쌉니다. - DAC — 구조와 글리치PWM DAC 의 리플을 1/10 로 줄이면서 정착 시간은 그대로 두려면?
풀이
1차 RC 로는 불가능합니다 — 리플과 정착이 같은 로 정해지니까요.
방법 둘:
① PWM 주파수를 10배로. 리플 이므로
20 kHz → 200 kHz 면 리플이 1/10.
⚠️ 대가: 분해능이 비트 줄어듭니다 (같은 시스템 클럭에서).② 2단 필터로. 같은 총 정착 시간에서 20 kHz 감쇠가 훨씬 큽니다.
1단 −20 dB/dec 대신 2단 −40 dB/dec.를 각각 절반으로 나눠 두 단을 만들면 정착은 비슷하고 리플은
크게 줍니다. 부품 2개 추가로 해결되는 가장 싼 답입니다.⚠️ 2단은 2차 시스템이므로
를 봐야 합니다. 같은 두 단을 버퍼 없이 이으면 뒷단이
앞단을 로딩해서 계산과 어긋납니다 — 뒷단 저항을
앞단의 10배로 하거나 사이에 버퍼를 넣습니다. - DAC — 구조와 글리치DAC 으로 만든 자극 파형에 매 코드 전환마다 스파이크가 보입니다. 어떻게 합니까?
풀이
글리치입니다. 특히 메이저 캐리(0111→1000)에서 큽니다.
대책을 순서대로:
- 데이터시트의
glitch impulse확인 — 세그먼트 구조인지 봅니다.
아니면 소자를 바꾸는 것이 가장 확실합니다
- 출력에 LPF — 파형 대역보다 충분히 위에 놓으면 글리치만 평균됩니다.
⚠️ 자극 파형의 상승 시간도 같이 느려집니다
- 디글리처(샘플홀드) — 전이 동안 출력을 붙잡습니다. 정확하지만
샘플홀드 자체의 전하 주입이 새 오차입니다
- 코드 전환을 부드럽게 — 큰 점프를 여러 작은 스텝으로 나누면
메이저 캐리를 피할 수 있을 때가 있습니다
측정 회로에서는 2번이 보통 정답입니다 — 자극 파형이 그렇게 빠를
필요가 없다면, 필터로 글리치를 없애는 것이 가장 싸고 확실합니다. - 데이터시트의