치트시트

10장. MCU 인터페이싱

문서 8개 · 수식 69개 · 회로 19개 · 함정 8개 · 문제 20개

왼쪽 절반에만 찍고 오른쪽은 백지로 비웁니다 — 읽으면서 옆에 적어 보세요. 내용은 하나도 안 자릅니다.

2단으로 빽빽하게, 표시된 것만 — 시험 직전에 훑는 배치입니다.

GPIO 입출력

MCU 핀은 약합니다. 전류 한계를 알고, 아날로그 회로와의 간섭(interference)을 관리해야 합니다.

전류A게이트 전하C시간s

GPIO 직렬 저항이 에지를 완만하게 한다 회로도RS100Ω직렬 저항VGCL20pF배선+입력 용량SRCOUTGND
GPIO 직렬 저항이 에지를 완만하게 한다

⚠️ 이상과 실제

이상실제
= 전류에 따라 강하
전류 무한핀·포트·칩 3중 한계
즉시 전환슬루레이트, 배선 지연
아날로그에 영향 없음전원·접지·용량으로 결합
부팅 시 정의된 상태리셋 중에는 하이임피던스 — 외부 풀업/풀다운 필요

⚖️ 고르는 기준

선택✅ 좋아지는 것⚠️ 나빠지는 것
직렬 저항 (22~100 Ω)EMI↓, 반사↓, 과전류 보호지연↑, 강한 부하 구동 불가
높은 GPIO 속도 설정빠른 통신EMI↑, 전력↑
낮은 GPIO 속도 설정EMI↓, 전력↓고속 통신 불가
외부 드라이버/버퍼구동력↑, MCU 보호부품·전력
내부 풀업 사용부품 0부정확, 부팅 전 무효
외부 풀업정확, 항상 유효부품, 전류

버튼과 디바운싱

기계 접점은 붙었다 떨어졌다를 수 ms 동안 반복합니다. 하드웨어나 소프트웨어로 걸러야 합니다.

시정수s정전용량F저항Ω

이동도m²/V·s시정수s정전용량F저항Ω

RC 디바운싱 필터 회로도RP10kΩ풀업RF10kΩ필터 저항VDD3.3VCF100nF필터 커패시터VCSWSW_IDEALVPBTNOUTCTLGND
RC 디바운싱 필터

⚠️ 이상과 실제

이상실제
접점이 즉시 붙음수 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

ADC 샘플링 커패시터 충전 회로도RSRC10kΩ소스 임피던스RSW1kΩADC 스위치 저항VSCS10pF샘플링 커패시터SRCINCAPGND
ADC 샘플링 커패시터 충전
ADC 입력에 외부 커패시터 달기 회로도RS10kΩ소스 임피던스RSW1kΩADC 스위치 저항VSCEXT100nF외부 커패시터CS10pF샘플링 커패시터SRCINCAPGND
ADC 입력에 외부 커패시터 달기
ADC 드라이버 (버퍼 + R_iso + C_filt) 회로도RISO33Ω격리 저항RSW1kΩADC 스위치 저항VS1V신호CF2.2nF전하 저장 + LPFCS10pF샘플링 커패시터VP5VVN-5VU1OPA320ADC 드라이버VCCVCCVEEVEEINOUTADCCAPGND
ADC 드라이버 (버퍼 + R_iso + C_filt)

⚠️ 이상과 실제

이상실제
입력 임피던스 무한샘플링 중에는 매우 낮음 (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

비트 수 또는 개수

비트 수 또는 개수

비트 수 또는 개수

안티에일리어싱 필터 (2차, 5kHz) 회로도R110kΩR210kΩC14.7nFVIN1VC22.2nFVP3.3VU1OPA320VCCVCCINMIDINPOUTGND
안티에일리어싱 필터 (2차, 5kHz)

⚠️ 이상과 실제

이상실제
필터가 완벽히 차단유한한 롤오프, 고주파 누설
나이퀴스트만 지키면 됨실용적으로 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

PWM을 RC로 평활한 아날로그 출력 회로도R110kΩVPC11µFPWMOUTGND
PWM을 RC로 평활한 아날로그 출력
모터 전류 션트 감지 회로도R31kΩRF100ΩADC 격리IMOT2A모터 전류RSH50mΩ션트R11kΩR420kΩCF10nFADC 입력 필터VP5VR220kΩU1OPA320전류 감지 증폭기VCCVCCSHPSUMREFOUTADCGND
모터 전류 션트 감지

⚠️ 이상과 실제

이상실제
완벽한 사각파상승·하강 시간, 링잉(ringing), 오버슈트(overshoot)
듀티가 정확데드타임, 전파 지연으로 오차
평균값이 정확 변동(전원 리플)이 그대로 오차
노이즈 없음광대역 고조파
필터로 완전 평활(smoothing)리플이 항상 남음

⚖️ 고르는 기준

선택✅ 좋아지는 것⚠️ 나빠지는 것
높은 PWM 주파수리플↓, 필터 부담↓, 소음 없음스위칭 손실↑, EMI↑
낮은 PWM 주파수손실↓, EMI 주파수↓리플↑, 가청 소음
큰 필터 리플↓응답 느림
2차 필터리플 크게↓부품↑, 지연↑
게이트 저항 크게EMI↓스위칭 손실↑
PWM 대신 진짜 DAC리플 없음, 빠름, 정밀비쌈, 부품·핀
PWM 대신 리니어 구동노이즈 없음효율 급락, 발열

통신의 전기적 관점

프로토콜이 아니라 전기 특성을 봅니다. 거리, 속도, 노이즈 내성, 그리고 측정 회로에 주는 간섭(interference).

정전용량 (b)F최대 저항Ω최소 저항Ω상승 시간s전압 (DD)V

주파수 (ring)Hz

최대 저항Ω

최대 저항Ω

SPI 클럭의 직렬 종단 회로도RS33ΩLT80nH배선 인덕턴스VGCL12pF수신 입력 용량SRCMIDRXGND
SPI 클럭의 직렬 종단

⚠️ 이상과 실제

이상실제
신호가 깨끗링잉, 오버슈트, 크로스토크(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비트 수 또는 개수

ADC 드라이버의 선형성 회로도RISO22ΩADC 드라이버 격리VSRG1kΩCADC1nFADC 입력VP2.5VVN-2.5VRF1kΩU1OPA140VCCVCCVEEVEEINFBOUTADCGND
ADC 드라이버의 선형성

⚠️ 이상과 실제

이상실제
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

PWM DAC 의 리플과 정착 회로도R1100kΩR2100kΩ2단V1C1470nFC2470nFPWMMIDOUTGND
PWM DAC 의 리플과 정착

⚠️ 이상과 실제

이상실제
출력이 코드에 정확히 비례INL·DNL 이 있습니다. DNL > 1 LSB 면 코드가 빠집니다
코드가 바뀌면 바로 그 값글리치가 먼저 지나갑니다
DAC 출력이 이상적 전압원출력 임피던스가 있습니다 — 버퍼가 필요할 때가 많습니다
기준전압이 정확DAC 정확도의 상한이 기준전압 정확도입니다
PWM 은 그냥 평균리플·정착·타이머 지터가 다 들어옵니다

⚖️ 고르는 기준

선택✅⚠️
R-2R IC빠르고 예측 가능12비트 이상은 값이 뜀
ΔΣ DAC24비트, 정합 문제 없음느림, 지연, 아날로그 LPF 필요
PWM + RC부품 2개, 공짜리플 vs 정착이 정면충돌
PWM 2단 필터같은 정착에서 리플↓부품 4개
세그먼트 DAC글리치 거의 없음칩 안에서만 가능
디글리처 추가글리치 제거부품, 자체 오차

연습문제

인쇄하면 답이 접힌 채로 나옵니다 — 그대로 문제지가 됩니다. 위의 “답도 함께 인쇄” 를 켜면 풀이까지 펴서 나옵니다.

  1. GPIO 입출력GPIO 핀당 8 mA, 포트당 60 mA 한계입니다. 같은 포트에서 LED 몇 개를 5 mA로 켤 수 있습니까?
    연습 10-01-1 — 포트 한계가 핀 한계보다 먼저 걸린다 회로도R1270Ω전류를 정하는 저항V13.3VGPIO HighD1LED_REDIOAGND
    연습 10-01-1 — 포트 한계가 핀 한계보다 먼저 걸린다
    풀이

    605=12 개\frac{60}{5} = 12\ \text{개}

    단, 칩 전체 한계도 확인해야 합니다. MCU 자체가 30 mA를 쓰고 칩 한계가 100 mA라면 LED에 쓸 수 있는 것은 70 mA → 14개. 포트 한계가 더 엄격하므로 12개가 답입니다.

    여유를 두어 8~10개 정도로 설계하는 것이 안전합니다.

  2. GPIO 입출력ADC 변환 중에 UART로 데이터를 전송했더니 측정값에 주기적인 노이즈가 나타납니다. 원인과 해결책은?
    풀이

    원인:

    1. 전원 결합 — UART 송신 시 GPIO 스위칭 전류가 전원 전압을 흔들고, ADC 기준전압(voltage reference)이나 아날로그 전원에 침투
    2. 접지 결합 — 리턴 전류가 아날로그 접지 전위를 흔듦
    3. 용량 결합 — TX 배선이 아날로그 배선 근처를 지남
    4. DMA/버스 활동 — 내부 버스 활동도 전원을 흔듦

    해결 (효과 순):

    1. 타이밍 분리 — ADC 변환이 끝난 후에 UART 전송. 인터럽트로 순서 제어 ← 가장 확실
    2. GPIO 슬루레이트 최소 설정
    3. TX 라인에 직렬 저항 (33~100 Ω)
    4. 아날로그 전원·접지 분리 강화
    5. UART 배선을 아날로그에서 물리적으로 분리
    6. 오버샘플링(oversampling) + 평균화로 완화 (근본 해결은 아님)

    "변환 중에는 아무것도 하지 않는다" 가 정밀 측정 펌웨어의 원칙입니다. 일부 MCU는 ADC 변환 중 CPU를 sleep 시키는 모드를 제공합니다.

  3. 버튼과 디바운싱채터링 15 ms인 스위치에 RC 디바운싱을 설계하세요. = 10 kΩ이면 는?
    연습 10-02-1 — 채터링 15 ms 를 RC 로 없애기 회로도R110kΩ풀업VDD3.3VC12.2µF디바운스VSW누름 동작SW1SW_IDEAL스위치VPPINCTLGND
    연습 10-02-1 — 채터링 15 ms 를 RC 로 없애기
    풀이

    τ≥5\tau \geq 5 ms 정도로 잡으면:

    C=τR=5×10−3104=0.5 μFC = \frac{\tau}{R} = \frac{5\times10^{-3}}{10^4} = 0.5\ \mu\text{F}

    470 nF 또는 1 µF 선택.

    ⚠️ 너무 크게 하면 버튼 반응이 느껴질 정도로 느려집니다. 50 ms를 넘지 않게 하세요.

  4. 버튼과 디바운싱1 ms 타이머로 소프트웨어 디바운싱을 합니다. 20 ms 디바운싱을 원하면 카운터 임계값은? 그리고 이 방식의 장점은?
    풀이

    임계값 = 20 (1 ms × 20 = 20 ms)

    장점:

    • 비블로킹 — CPU가 다른 일을 할 수 있음
    • 노이즈 내성 — 단발 노이즈 펄스는 카운터를 조금 올릴 뿐 임계값에 도달하지 못함
    • 히스테리시스(hysteresis) 효과 — 올릴 때와 내릴 때 임계값을 다르게 하면 더 안정
    • 임계값을 런타임에 조정 가능

    개선: 상승/하강 임계값을 다르게 (예: 눌림 20, 뗌 5) 하면 반응이 빠르면서도 안정적입니다.

  5. ADC 입력 설계 = 8 pF, = 1.5 kΩ, 소스 임피던스 20 kΩ. 10비트 획득 시간은?
    연습 10-03-1 — ADC 획득 시간과 소스 임피던스 회로도RSRC20kΩ소스 임피던스RSW1.5kΩADC 내부 스위치V1샘플링 시작CS8pF샘플링 커패시터SRCPINCAPGND
    연습 10-03-1 — ADC 획득 시간과 소스 임피던스
    풀이

    τ=(20k+1.5k)×8p=172 ns\tau = (20\text{k}+1.5\text{k})\times8\text{p} = 172\ \text{ns}

    tacq=0.693×11×172 ns≈1.31 μst_{acq} = 0.693\times11\times172\ \text{ns} \approx 1.31\ \mu\text{s}

  6. ADC 입력 설계1 MΩ 분압기 출력을 ADC로 읽습니다. 100 nF 커패시터를 달면 되나요?
    풀이

    전하 공유 오차는 해결됩니다:

    CsampleCext=10p100n=10−4\frac{C_{sample}}{C_{ext}} = \frac{10\text{p}}{100\text{n}} = 10^{-4}

    ✅

    하지만 재충전 시정수:

    τ=500k×100n=50 ms\tau = 500\text{k}\times100\text{n} = 50\ \text{ms}

    응답이 극도로 느려집니다. (RthR_{th}는 1M∥1M = 500 kΩ)

    용도가능?
    배터리 전압 (분당 1회)✅ 가능
    온도 (초당 1회)✅ 가능
    50 Hz 이상 신호❌ 불가

    빠른 신호라면 버퍼가 필수입니다. 또는 분압 저항을 10 k/10 k로 낮추세요 (소비 전류가 100배 늘지만 τ\tau가 500 µs로 개선).

  7. 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입니다.

    ln⁡2.90.0008≈8.2⇒8.2τ 필요\ln\frac{2.9}{0.0008} \approx 8.2 \Rightarrow 8.2\tau\ \text{필요}

    해결책:

    1. 획득 시간 늘리기 ← 가장 간단. MCU 설정에서 샘플링 사이클 증가
    2. 소스 임피던스 낮추기 — 각 채널에 버퍼 또는 낮은 임피던스 분압
    3. 각 채널에 커패시터 (100 nF) — 채널마다 전하를 준비해둠 ✅ 효과적
    4. 더미 변환 — 채널 전환 후 한 번 버리고 두 번째 값을 사용 (간단하고 효과적)
    5. 채널 순서 최적화 — 전압이 비슷한 채널끼리 인접하게 배치

    가장 실용적: 채널 전환 후 첫 변환을 버리기 + 채널마다 커패시터. 펌웨어 한 줄과 부품 몇 개로 해결됩니다.

  8. 안티에일리어싱1 kHz 신호를 12비트로 측정합니다. = 10 kSPS일 때 필요한 필터 차수는?
    풀이

    fs−fsigfsig=91=9⇒20log⁡109=19.1 dB/차수\frac{f_s-f_{sig}}{f_{sig}} = \frac{9}{1} = 9 \Rightarrow 20\log_{10}9 = 19.1\ \text{dB/차수}

    n≥7419.1=3.9→4차n \geq \frac{74}{19.1} = 3.9 \rightarrow \textbf{4차}

  9. 안티에일리어싱위 문제에서 를 100 kSPS로 올리면?
    연습 10-04-1·2 — 오버샘플링이 필터 차수를 사 준다 회로도R15.6kΩ차단 2.8 kHzR25.6kΩC120nFR35.6kΩVS1VC25nFC310nFVP5VVN-5VU1OPA320VCCVCCVEEVEEINA1A2S2OUTGND
    연습 10-04-1·2 — 오버샘플링이 필터 차수를 사 준다
    풀이

    991=99⇒20log⁡1099=39.9 dB/차수\frac{99}{1} = 99 \Rightarrow 20\log_{10}99 = 39.9\ \text{dB/차수}

    n≥7439.9=1.85→2차n \geq \frac{74}{39.9} = 1.85 \rightarrow \textbf{2차}

    추가 이득: OSR = 100/2 = 50 → log⁡2(50)/2≈2.8\log_2(50)/2 \approx 2.8비트 향상. 12비트 ADC로 약 14.8비트 실효 분해능.

    대가: 데이터량 10배, ADC 속도 10배.

  10. 안티에일리어싱64채널을 멀티플렉스로 읽습니다. 전체 ADC 속도는 640 kSPS, 각 채널 신호 대역은 1 kHz입니다. 안티에일리어싱 필터를 어떻게 설계합니까?
    풀이

    채널당 실효 샘플링률:

    640 kSPS64=10 kSPS\frac{640\ \text{kSPS}}{64} = 10\ \text{kSPS}

    따라서 채널당 10 kSPS 기준으로 설계합니다.

    10−11=9⇒19.1 dB/차수,n≥7419.1=3.9→4차\frac{10-1}{1} = 9 \Rightarrow 19.1\ \text{dB/차수}, \quad n \geq \frac{74}{19.1} = 3.9 \rightarrow \textbf{4차}

    필터 위치: 반드시 멀티플렉서 앞, 채널마다.

    채널 1 ~ 채널 64 (64개 배선)
    = 4차 LPF × 64개 | ★ 채널마다 하나씩 — 여기가 비용 폭발 지점
    > 64:1 MUX
    > ADC 640 kSPS | 채널당 실효 10 kSPS

    문제: 4차 필터 × 64채널 = OP앰프 128개. 비현실적입니다.

    실무적 대안:

    1. 오버샘플링 — ADC를 6.4 MSPS로 올리면 채널당 100 kSPS → 2차면 충분 (OP앰프 64개). 여전히 많지만 절반
    2. 패시브 RC 1차 + 오버샘플링 — 채널당 1 MSPS면 1차 RC(저항 1개+커패시터(capacitor) 1개)로도 충분. OP앰프 0개 ✅
    3. 채널 그룹화 — 8채널씩 8그룹, 그룹마다 ADC. 채널당 샘플링률이 8배 올라감
    4. 시그마-델타 ADC 채널당 배치 — 내장 오버샘플링으로 아날로그 필터 최소화
    5. 대역이 좁으면 필터 없이 오버샘플링 + 디지털 필터

    결론: 다채널 시스템에서는 "채널당 아날로그 필터"가 비용을 지배하므로, 오버샘플링으로 필터를 최대한 단순화(패시브 RC 1차)하는 것이 표준 전략입니다.

    이것이 16-01의 액티브 어레이에서 각 픽셀에 복잡한 필터를 넣지 않고, 대신 매우 빠른 멀티플렉싱(τ≈20 ns)으로 오버샘플링하는 설계 선택의 배경입니다.

  11. PWM과 구동3.3 V PWM 20 kHz를 =10 kΩ, =10 µF으로 평활합니다. =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}

    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}

    리플은 작지만 시정수가 100 ms라 응답이 매우 느립니다. 목표 전압에 도달하는 데 약 1초(10τ)가 걸립니다.

  12. PWM과 구동µV 측정 회로 옆에서 모터를 25 kHz PWM으로 구동합니다. 어떤 대책을 세우겠습니까?
    풀이

    우선순위 순:

    1. 시간 분리 (가장 효과적)

    • ADC 샘플링 구간에 PWM을 정지. 모터의 기계적 관성 덕분에 수십 µs 정지는 영향 없음
    • 또는 PWM 주기에 동기해 스위칭이 없는 순간에만 샘플링

    2. 전원·접지 분리

    • 모터 전원을 별도 레일로
    • 모터 전류의 리턴을 아날로그 접지에서 완전히 분리, 전원 입구에서만 만남
    • 아날로그 전원에 LDO + 필터

    3. 물리적 분리와 차폐(shielding)

    • 모터 드라이버를 아날로그부에서 최대한 멀리
    • 모터 케이블을 신호 케이블과 분리, 꼬아서 루프 면적 축소
    • 필요하면 실드 캔

    4. 스위칭 완만하게

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

    5. 필터

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

    6. 신호 처리

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

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

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

  13. 통신의 전기적 관점2 m 케이블로 I2C를 연결하려 합니다. 가능합니까?
    연습 10-06-1 — 2 m 케이블로 I2C 를 끌 수 있나 회로도RP2.2kΩ풀업VDD3.3VVCCB150pF2 m 케이블 + 장치SW1SW_IDEAL개방 드레인VPSDACTLGND
    연습 10-06-1 — 2 m 케이블로 I2C 를 끌 수 있나
    풀이

    직접 연결은 어렵습니다.

    2 m 케이블의 용량은 약 200~250 pF입니다. 규격 한계 400 pF에는 들지만, 여기에 IC 핀과 PCB 용량이 더해지면 초과할 수 있습니다.

    100 kHz라면:

    Rmax=1000 ns0.8473×250 pF≈4.7 kΩR_{max} = \frac{1000\ \text{ns}}{0.8473\times250\ \text{pF}} \approx 4.7\ \text{k}\Omega
    → 아슬아슬하게 가능

    400 kHz라면:

    Rmax=300 ns0.8473×250 pF≈1.4 kΩR_{max} = \frac{300\ \text{ns}}{0.8473\times250\ \text{pF}} \approx 1.4\ \text{k}\Omega
    → 풀업을 1 kΩ으로 낮춰야 하고, 전류가 3 mA로 늘어남

    게다가 노이즈 문제가 심각합니다. 2 m 케이블은 안테나 역할을 해 노이즈를 주워오고, I2C는 노이즈 내성이 낮습니다.

    권장 대안:

    1. I2C 버스 확장기 (P82B715) — 케이블 구간의 전류 구동력을 높임
    2. 차동으로 변환 (PCA9615, I2C over RS-485)
    3. 다른 인터페이스 — RS-485, CAN
    4. 원격에 MCU를 두고 로컬 I2C + 원격 통신은 차동으로
  14. 통신의 전기적 관점생체 신호 측정 보드를 PC에 연결합니다. 어떤 인터페이스를 쓰겠습니까?
    풀이

    절연이 최우선입니다.

    옵션 비교:

    방식절연속도전력평가
    USB 직결❌빠름PC 급전접지 루프 + 안전 문제
    절연 USB (아이솔레이터)✅12 Mbps절연측 전원 필요실용적
    Bluetooth/BLE✅ 완전느림 (~1 Mbps)배터리채널 적을 때 최선
    Wi-Fi✅ 완전빠름배터리 소모 큼다채널에 적합
    광섬유✅ 완전매우 빠름양쪽 전원최고 성능, 비쌈

    권장:

    • 채널 수가 적고 배터리 구동 가능 → BLE (완전 절연, 간단, 저전력)
    • 다채널 고속 → Wi-Fi 또는 광섬유
    • 유선이 필요하고 전력도 받아야 함 → 절연 USB 아이솔레이터 (ADuM4160 등) + 절연 DC-DC

    ⚠️ 절연 DC-DC의 스위칭 노이즈에 주의하세요. 절연 배리어의 기생 용량을 통해 공통 모드 전류가 흐릅니다. 저용량 절연 소자를 고르고, 공통 모드 초크를 추가하세요.

    가장 조용한 구성: 배터리 + BLE. 대지와 전기적 연결이 전혀 없어 접지 루프도, 60 Hz 픽업 경로도 없습니다.

  15. ADC 의 실제 한계 — ENOB 와 지터12비트 ADC 로 1 MHz 신호를 잽니다. 지터가 양자화 잡음보다 나빠지지 않으려면 클럭 지터는 얼마 이하여야 합니까?
    연습 10-07 — ADC 입력이 12비트까지 차는 데 걸리는 시간 회로도RSRC1kΩ소스 임피던스VS센서 출력CS10pF샘플 커패시터VC샘플 창SW1SW_MUX샘플 스위치 (R_ON 100 Ω)SRCMUXHOLDCTLGND
    연습 10-07 — ADC 입력이 12비트까지 차는 데 걸리는 시간
    풀이

    12비트 양자화 SNR:

    SNRq=6.02×12+1.76=74 dB\mathrm{SNR}_q = 6.02 \times 12 + 1.76 = 74\ \text{dB}

    지터 SNR 이 74 dB 이상이어야 하므로

    −20log⁡10(2πftj)≥74⇒2πftj≤10−74/20=2.0×10−4-20\log_{10}(2\pi f t_j) \ge 74 \quad\Rightarrow\quad 2\pi f t_j \le 10^{-74/20} = 2.0\times10^{-4}

    tj≤2.0×10−42π×106=3.2×10−11=32 pst_j \le \frac{2.0\times10^{-4}}{2\pi \times 10^6} = 3.2\times10^{-11} = \mathbf{32\ \text{ps}}

    32 ps. 웬만한 크리스털 오실레이터가 만족합니다. 그런데 같은 계산을
    10 MHz 신호에 하면 3.2 ps, 100 MHz 면 320 fs — 저지터 클럭이 비싸지는
    지점이 여기입니다.

  16. ADC 의 실제 한계 — ENOB 와 지터SNR 이 80 dB, THD 가 −80 dB 입니다. SNDR 과 ENOB 는?
    풀이

    둘이 같은 크기이므로 전력이 두 배 → 3 dB 나빠집니다.

    SNDR=−10log⁡10(10−8+10−8)=−10log⁡10(2×10−8)=77 dB\mathrm{SNDR} = -10\log_{10}(10^{-8} + 10^{-8}) = -10\log_{10}(2\times10^{-8}) = 77\ \text{dB}

    ENOB=77−1.766.02=12.5 비트\mathrm{ENOB} = \frac{77 - 1.76}{6.02} = \mathbf{12.5\ \text{비트}}

    둘 중 하나만 고쳐서는 3 dB 도 못 법니다. 잡음을 −∞ 로 만들어도 SNDR 은
    80 dB 라 ENOB 는 13.0 — 0.5비트만 올라갑니다. 비슷한 크기의 항이 둘이면
    둘 다 손봐야 합니다.

  17. ADC 의 실제 한계 — ENOB 와 지터2차 ΔΣ 로 OSR 128 을 쓰면 몇 비트를 법니까? 1비트 비교기로 시작해도 됩니까?
    풀이

    Δn≈2L+12log⁡2(OSR)=52log⁡2128=2.5×7=17.5 비트\Delta n \approx \frac{2L+1}{2}\log_2(\mathrm{OSR}) = \frac{5}{2}\log_2 128 = 2.5 \times 7 = 17.5\ \text{비트}

    보정항을 빼면 실제로는 15~16비트쯤입니다.

    1비트로 시작해도 됩니다. 1 + 16 = 17비트 수준이 나옵니다 — ΔΣ 오디오
    ADC 가 정확히 이 구조입니다.

    ⚠️ 대가: 샘플링을 128배 빠르게 돌려야 하고, 디지털 데시메이션 필터의
    군지연이 수백 샘플입니다. 신호 대역 20 kHz 면 실제 클럭은 5.1 MHz 이고
    지연은 수 ms 입니다. 실시간 제어 루프 안에는 못 넣습니다.

  18. DAC — 구조와 글리치8비트 R-2R DAC 을 1% 저항으로 만들면 실제 몇 비트가 나옵니까?
    연습 10-08-1 — 1 % 저항으로 만든 8비트 R-2R 은 몇 비트인가 회로도RMSB20kΩMSB 의 2R — 여기가 전부R2B20kΩR1B20kΩR0B20kΩRA10kΩRB10kΩRC10kΩVB33.3VMSB (비트3) = 1VB20V비트2 = 0VB10V비트1 = 0VB00VLSB (비트0) = 0RT20kΩ종단B3B2B1B0N0N1N2OUTGND
    연습 10-08-1 — 1 % 저항으로 만든 8비트 R-2R 은 몇 비트인가
    풀이

    MSB 의 오차가 가장 크게 나타납니다. MSB 가 1% 틀리면 출력이
    풀스케일의 0.5% 만큼 틀립니다.

    0.5%=1200⇒log⁡2200=7.6 비트0.5\% = \frac{1}{200} \quad\Rightarrow\quad \log_2 200 = 7.6\ \text{비트}

    약 7.6비트 — 8비트를 못 채웁니다.

    ⚠️ 게다가 DNL 이 1 LSB 를 넘으면 단조성이 깨져 코드를 올렸는데
    출력이 내려가는 구간이 생깁니다. 제어 루프 안에 넣으면 발진합니다.

    12비트를 개별 저항으로 만들려면 0.024%(0.1% 도 부족) 이 필요한데,
    그런 저항은 개당 수천 원이고 온도계수까지 맞춰야 합니다. IC 를 사는
    것이 언제나 쌉니다.

  19. DAC — 구조와 글리치PWM DAC 의 리플을 1/10 로 줄이면서 정착 시간은 그대로 두려면?
    풀이

    1차 RC 로는 불가능합니다 — 리플과 정착이 같은 RCRC 로 정해지니까요.

    방법 둘:

    ① PWM 주파수를 10배로. 리플 ∝1/fPWM\propto 1/f_{PWM} 이므로
    20 kHz → 200 kHz 면 리플이 1/10.
    ⚠️ 대가: 분해능이 log⁡210=3.3\log_2 10 = 3.3비트 줄어듭니다 (같은 시스템 클럭에서).

    ② 2단 필터로. 같은 총 정착 시간에서 20 kHz 감쇠가 훨씬 큽니다.
    1단 −20 dB/dec 대신 2단 −40 dB/dec.

    RCRC 를 각각 절반으로 나눠 두 단을 만들면 정착은 비슷하고 리플은
    크게 줍니다. 부품 2개 추가로 해결되는 가장 싼 답입니다.

    ⚠️ 2단은 2차 시스템이므로
    ζ\zeta 를 봐야 합니다. 같은 RCRC 두 단을 버퍼 없이 이으면 뒷단이
    앞단을 로딩해서 계산과 어긋납니다 — 뒷단 저항을
    앞단의 10배로 하거나 사이에 버퍼를 넣습니다.

  20. DAC — 구조와 글리치DAC 으로 만든 자극 파형에 매 코드 전환마다 스파이크가 보입니다. 어떻게 합니까?
    풀이

    글리치입니다. 특히 메이저 캐리(0111→1000)에서 큽니다.

    대책을 순서대로:

    1. 데이터시트의 glitch impulse 확인 — 세그먼트 구조인지 봅니다.

    아니면 소자를 바꾸는 것이 가장 확실합니다

    1. 출력에 LPF — 파형 대역보다 충분히 위에 놓으면 글리치만 평균됩니다.

    ⚠️ 자극 파형의 상승 시간도 같이 느려집니다

    1. 디글리처(샘플홀드) — 전이 동안 출력을 붙잡습니다. 정확하지만

    샘플홀드 자체의 전하 주입이 새 오차입니다

    1. 코드 전환을 부드럽게 — 큰 점프를 여러 작은 스텝으로 나누면

    메이저 캐리를 피할 수 있을 때가 있습니다

    측정 회로에서는 2번이 보통 정답입니다 — 자극 파형이 그렇게 빠를
    필요가 없다면, 필터로 글리치를 없애는 것이 가장 싸고 확실합니다.