MCU/DAQ 인터페이스

한 줄 요약 — 아날로그를 디지털로 넘기는 경계. 드라이버·기준전압(voltage reference)·타이밍·절연 네 가지가 성능을 좌우합니다.


전체 구조

주 경로

AFE 출력ADC 드라이버낮은 출력 임피던스로 ADC 를 끈다AA 필터안티에일리어싱ADCMCU / FPGA절연PC

ADC 로 옆에서 들어오는 두 개가 결과 정확도를 좌우합니다.

옆가지어디로 들어가나왜 중요한가
기준전압 IC + 필터ADC의 REF 핀모든 측정값에 곱해진다. 여기 드리프트가 곧 전체 오차
저지터 클럭ADC의 샘플링 클럭지터가 곧 샘플 시점의 오차 → 고주파 신호에서 SNR 상한을 만든다

1. ADC 드라이버

ADC 드라이버 (버퍼 + R_iso + C_filt) 회로도RISO33Ω격리 저항RSW1kΩADC 스위치 저항VS1V신호CF2.2nF전하 저장 + LPFCS10pF샘플링 커패시터VP5VVN-5VU1OPA320ADC 드라이버VCCVCCVEEVEEINOUTADCCAPGND
ADC 드라이버 (버퍼 + R_iso + C_filt)워크벤치에서 열기 →
요소역할선정
OP앰프낮은 출력 임피던스(impedance)출력 임피던스 output impedance회로가 부하에 전압을 얼마나 굳건히 유지해 주는지를 나타내는 값으로, 낮을수록 부하에 덜 흔들립니다.자세히 보기 →, 빠른 정착정착 시간(settling time)정착 시간 settling time출력이 목표값의 허용 오차 안으로 들어와 머무를 때까지 걸리는 시간으로, 다채널 측정의 속도 상한을 정합니다.자세히 보기 →이 샘플링 주기 내
RisoR_{iso}용량성 부하 분리 (발진 방지)10~50 Ω (7-07)
CfiltC_{filt}샘플링 전하 공급 + AA≥10×Csample\geq 10\times C_{sample}

정착 시간 확인

tacq≥0.693(b+1)×(Riso+Rsw)Csamplet_{acq} \geq 0.693(b+1)\times(R_{iso}+R_{sw})C_{sample}
기호
C_sample샘플링 커패시터sampling capacitorF
R_iso분리 저항isolation resistanceΩ
R_sw스위치 저항switch resistanceΩ
t_acq획득 시간acquisition times

예: RisoR_{iso}=22 Ω, RswR_{sw}=1 kΩ, CsampleC_{sample}=10 pF, 12비트

τ=1022×10p=10.2 ns,tacq=92 ns\tau = 1022\times10\text{p} = 10.2\ \text{ns}, \quad t_{acq} = 92\ \text{ns}
기호
tau시정수time constants
t_acq획득 시간acquisition times

샘플링 주기가 1 µs면 충분합니다 ✅

OP앰프 선정 기준

항목요구
정착 시간 (0.01%)샘플링 주기의 1/3 이내
대역폭(bandwidth)샘플링률 이상
출력 스윙ADC 입력 범위 전체 (레일투레일)
잡음앞단 대비 작게

예: OPA320, ADA4841, OPA365


2. 기준전압 — 정확도의 상한

LDO10 Ω + 10 µFREF IC 입력 격리REF IC10 Ω + 10 µFREF IC 자체 잡음 저감ADC 샘플링 전류가 크면 버퍼 추가ADC REF
항목요구이유
초기 정확도±0.05~0.1%절대 정확도
온도 드리프트< 10 ppm/°C교정으로 못 잡음
잡음LSB보다 작게모든 측정에 곱해짐
출력 임피던스ADC 요구 충족샘플링 전류 공급

계산 — 16비트

LSB = 2.5 V/65536=38 μ2.5\ \text{V}/65536 = 38\ \muV

기준전압 잡음 목표: < 3 µVrms (피크 9 µV = LSB의 24%)

소자잡음 (0.1~10 Hz)
REF302525 µVpp
ADR45252.1 µVpp ✅
LM4040 (션트)큼
제너매우 큼 ❌

⚠️ ADC를 24비트로 바꿔도 기준전압이 그대로면 실효 분해능(resolution)분해능 resolutionADC 가 구분할 수 있는 가장 작은 전압 차이로, 비트 수와 기준전압으로 정해집니다.1 LSB=Vref/2n1\,\mathrm{LSB} = V_{ref}/2^n자세히 보기 →은 변하지 않습니다.

켈빈 연결

REF IC 출력에서 배선 두 가닥을 뽑습니다.

배선어디로하는 일
forceADC REF+전류가 흐르는 굵은 배선. 여기서 I×RtraceI \times R_{trace}만큼 전압이 떨어진다
senseADC의 sense 핀 (지원 시)전류가 거의 안 흐르는 배선. ADC가 “실제 REF 전압”을 이 선으로 읽으므로 force 쪽 강하가 상쇄된다

기준전압 배선(trace)의 저항에서 생기는 강하를 배제합니다.

기준전압 배선(trace)의 저항에서 생기는 강하를 배제합니다.


3. 클럭과 타이밍

지터가 SNR을 제한합니다

SNRjitter=−20log⁡10(2πfsig tjitter)\text{SNR}_{jitter} = -20\log_{10}(2\pi f_{sig}\,t_{jitter})
기호
f_sig신호 주파수signal frequencyHz
SNR신호 대 잡음비signal-to-noise ratiodB
t_jitter시간 (jitter)time (jitter)s
신호지터(jitter)SNR 한계
1 kHz1 ns104 dB
5 kHz1 ns90 dB ✅
100 kHz1 ns64 dB
100 kHz10 ps104 dB

생체 신호(kHz 이하)에서는 ns급 지터로 충분합니다.

권장

항목지침
ADC 클럭PLL을 거치지 않은 크리스털 직결 (PLL은 지터 증가)
트리거하드웨어 타이머 (소프트웨어 지터 회피)
다채널 동기공통 클럭 분배, LVDS
변환 중디지털 활동 정지 (10-01)

4. ADC 종류 선택

종류분해능속도특징적합
SAR12~18비트100 kSPS~10 MSPS지연 없음, 멀티플렉싱 쉬움다채널 범용
ΔΣ16~32비트1 SPS~100 kSPS내장 오버샘플링(oversampling)오버샘플링 oversampling필요한 것보다 빠르게 샘플링해 평균 내면 분해능이 올라가고 안티에일리어싱 필터가 쉬워집니다.Δn=12log⁡2(OSR)\Delta n = \tfrac{1}{2}\log_2(\mathrm{OSR})자세히 보기 → → AA 필터 간단생체 신호
파이프라인12~16비트10 MSPS~1 GSPS지연 있음고속
통합형(dual-slope)높음매우 느림노이즈 제거 우수계측기

💡 생체 신호 다채널에는 ΔΣ 기반 전용 AFE 칩(ADS1299, RHD2000, Intan 등)이 표준입니다. PGA + ΔΣ ADC + 디지털 필터가 채널마다 집적되어 있어, 외부 부품이 극도로 적습니다.

전용 AFE 칩의 이점

이점설명
채널당 부품 최소저항 1~2개, 커패시터(capacitor) 2~3개
DC 오프셋 내성24비트라 큰 오프셋도 수용 (13-05)
PGA 내장게인 1~24 프로그래머블
내장 임피던스 측정전극(electrode) 상태 모니터링
내장 DRL
동시 샘플링롤링 셔터 문제 없음

5. 절연 — 생체 측정에서 필수

방식속도비고
광커플러~1 Mbps저렴, 느림
디지털 아이솔레이터~150 MbpsADuM, Si86xx
절연(isolation) USB12 MbpsADuM4160
무선 (BLE/Wi-Fi)다양완전 절연 ✅
광섬유매우 빠름최고, 비쌈

★ 왜 필요한가

PC의 접지는 대지에 연결되어 있습니다. USB로 직결하면:

  1. 접지 루프(ground loop)접지 루프 ground loop접지가 두 경로로 이어져 만들어진 고리로, 자기장을 받아 전압을 만들어 냅니다.자세히 보기 → → 60 Hz 험 (12-08)
  2. 안전 문제 — 고장 시 인체에 전류가 흐를 수 있음
  3. PC의 스위칭 노이즈 유입

절연 시 주의: 절연 배리어에도 기생 용량(수 pF)이 있어 공통 모드 전류가 흐릅니다. 저용량 소자를 고르고 공통 모드 초크를 추가하세요.

💡 가장 조용하고 안전한 구성: 배터리 + BLE/Wi-Fi. 대지와 전기적 연결이 아예 없습니다.


데이터 대역폭 계산

데이터율=Nch×fs×b8 [B/s]\text{데이터율} = N_{ch}\times f_s\times \frac{b}{8}\ [\text{B/s}]
기호
f_s샘플링 주파수sampling frequencyHz
N_ch개수 (ch)count (ch)
시스템계산데이터율
32ch × 20 kSPS × 16비트32×20k×232\times20\text{k}\times21.28 MB/s
256ch × 30 kSPS × 16비트256×30k×2256\times30\text{k}\times215.4 MB/s
2500ch × 20 kSPS × 12비트2500×20k×1.52500\times20\text{k}\times1.575 MB/s ❌
인터페이스실효 대역폭
UART 92160090 kB/s
USB 2.0 FS1 MB/s
USB 2.0 HS~35 MB/s
USB 3.0~350 MB/s
BLE~10 kB/s ❌
Wi-Fi (실효)1~5 MB/s
이더넷 1G~100 MB/s

⚠️ 채널이 많아지면 데이터 전송이 병목이 됩니다. 대책:

  • 온보드 압축 (무손실 또는 스파이크(spike)만 추출)
  • 온보드 스파이크 검출 — 파형 대신 이벤트만 전송
  • 데시메이션 (필요한 대역만)
  • 고속 인터페이스 (USB 3.0, 이더넷)

시뮬레이션으로 확인

ADC 드라이버와 샘플링 정착 회로도RISO22ΩRSW1kΩADC 스위치VINCF1nFADC 입력 필터CS10pF샘플링 커패시터VP3.3VU1OPA320VCCVCCINOUTADCCAPGND
ADC 드라이버와 샘플링 정착워크벤치에서 열기 →
# examples/16-case-studies/adc-driver.yaml
meta:
  name: ADC 드라이버와 샘플링 정착
  lesson: docs/16-case-studies/04-daq-interface.md
  note: R_ISO를 0/22/100Ω으로 바꾸며 안정성과 정착 시간을 비교
components:
  - {ref: VP,   type: vdc, value: 3.3}
  - {ref: VIN,  type: vpulse, params: {v1: 0.5, v2: 2.5, td: 1u, tr: 10n, tf: 10n, pw: 5u, per: 10u}}
  - {ref: U1,   type: opamp, model: OPA320}
  - {ref: RISO, type: r, value: 22}
  - {ref: CF,   type: c, value: 1n,  label: ADC 입력 필터}
  - {ref: RSW,  type: r, value: 1k,  label: ADC 스위치}
  - {ref: CS,   type: c, value: 10p, label: 샘플링 커패시터}
nets:
  VCC: [VP.p, U1.'v+']
  IN:  [VIN.p, U1.'in+']
  OUT: [U1.out, U1.'in-', RISO.1]
  ADC: [RISO.2, CF.1, RSW.1]
  CAP: [RSW.2, CS.1]
  GND: [VP.n, VIN.n, CF.2, CS.2, U1.'v-']
analyses:
  - {type: tran, tstep: 1n, tstop: 20u}
expect:
  - {measure: v, node: CAP, at: 3u, analysis: tran, value: 2.5, tol: 0.02%}

RISOR_{ISO} = 0이면 OP앰프가 1 nF 부하로 발진할 수 있고, 100 Ω이면 정착이 느려집니다. 22 Ω이 균형점입니다.


⚖️ 트레이드오프

선택✅⚠️
SAR ADC지연 없음, 멀티플렉싱 쉬움AA 필터 부담
ΔΣ ADC고분해능, AA 간단, DC 오프셋 수용지연(latency), 느림
전용 AFE 칩채널당 부품 최소, 검증됨유연성↓, 특정 용도에 최적화
개별 부품 구성최적화 자유부품↑, 설계·검증 부담
큰 RisoR_{iso}발진 방지 확실정착 느림
작은 RisoR_{iso}빠른 정착발진 위험
절연안전, 접지 루프 제거비용, 지연, 절연측 전원
무선완전 절연, 편의대역폭 제한, 전력, 지연

🔌 실제 구성 예

소채널 연구용 (8~32ch)

전극ADS1299 × NPGA + ΔΣ ADC + DRL 이 칩 안에 다 들어 있다SPIMCU절연 USBPC
  • 채널당 외부 부품: 저항 1개 + 커패시터 2개
  • 데이터: 32ch × 1 kSPS × 3B = 96 kB/s ✅

다채널 고속 (256ch+)

전극[AFE 칩 다수][LVDS][FPGA: 필터·압축·스파이크 검출][USB3/이더넷]PC
  • FPGA에서 온보드 처리로 데이터량 감축

이식형 무선

전극[ASIC: AFE+ADC+압축][BLE]외부 수신기
  • 전력이 최우선 제약
  • 스파이크 이벤트만 전송

⚠️ 이상과 실제의 차이

이상실제
ADC가 정확INL/DNL, 미싱 코드, 기준전압 오차
샘플링이 즉시획득 시간(acquisition time)획득 시간 acquisition timeADC 가 샘플링 커패시터를 채우는 데 쓰는 시간으로, 신호원 임피던스가 높으면 모자라게 됩니다.자세히 보기 → 필요
채널 독립멀티플렉스 메모리 효과 (10-03)
클럭이 정확지터
절연하면 완전 격리배리어 기생 용량(parasitic capacitance)기생 용량 parasitic capacitance부품·배선·케이블이 원치 않게 갖는 커패시턴스로, 고임피던스 신호원에서 대역폭을 가장 먼저 잡아먹습니다.자세히 보기 →으로 공통 모드 전류
데이터가 다 전송됨대역폭 병목

연습문제

문제 1. 64채널, 30 kSPS, 16비트. 데이터율과 적합한 인터페이스는?

exercises/16-04-spi-rise.yaml
풀이 64×30,000×2=3.84 MB/s64\times30{,}000\times2 = 3.84\ \text{MB/s}
인터페이스가능?
UART❌
USB 2.0 FS (1 MB/s)❌
USB 2.0 HS (35 MB/s)✅
Wi-Fi (1~5 MB/s)⚠️ 아슬아슬
BLE❌
이더넷✅

USB 2.0 HS 또는 이더넷을 씁니다. 무선이 필요하면 온보드 압축이나 데시메이션(decimation)이 필요합니다.

문제 2. 16비트 ADC(±2.5 V)에 기준전압 잡음 20 µVrms인 소자를 썼습니다. 실효 분해능은?

exercises/16-04-reference-noise.yaml
풀이

LSB = 5/65536=76.3 μ5/65536 = 76.3\ \muV

기준전압 잡음이 풀스케일에서 만드는 오차:

20 μV2.5 V×2.5 V=20 μV rms\frac{20\ \mu\text{V}}{2.5\ \text{V}}\times2.5\ \text{V} = 20\ \mu\text{V rms}
기호
mu이동도mobilitym²/V·s

피크(3σ) = 60 µV ≈ 0.8 LSB

약 15비트 실효 (1비트 손실).

더 나쁜 경우: 잡음 50 µVrms면 피크 150 µV = 2 LSB → 14비트

개선: ADR4525(2.1 µVpp) 사용 → 손실 거의 없음


이전 ← 03 저잡음 전원 | 다음 → 05 액추에이터 간섭