아날로그 스위치와 멀티플렉서

한 줄 요약 — 신호 경로를 전자적으로 전환합니다. 채널 스위칭이 곧 멀티플렉싱이고, 여기서 발생하는 오차가 다채널 측정의 근본 한계입니다.


구조

CMOS 전송 게이트 (transmission gate)

NMOS와 PMOS를 병렬로 붙여 전 전압 범위에서 낮은 저항을 얻습니다.

NMOS 하나와 PMOS 하나를 나란히(병렬로) 붙인 것입니다. 두 소자의 소스·드레인이 각각 같은 점(IN, OUT)에 묶여 있고, 게이트에는 서로 반대인 제어 신호가 들어갑니다.

NMOSPMOS
게이트 신호제어 = High일 때 ON제어 = Low일 때 ON (반전 신호를 받음)
잘 통하는 구간신호가 GND에 가까울 때신호가 전원에 가까울 때
못 견디는 구간신호가 높으면 VGSV_{GS}가 줄어 저항 급증신호가 낮으면 같은 문제

둘을 병렬로 놓으면 한쪽이 약해지는 구간을 다른 쪽이 메워, 어느 신호 전압에서든 저항이 낮게 유지됩니다.

단독 소자문제
NMOS만소스 전압이 높으면 VGSV_{GS}가 줄어 저항 증가
PMOS만반대쪽에서 같은 문제
병렬서로 보완 → 전 범위에서 낮은 저항 ✅

핵심 파라미터

파라미터의미영향
RONR_{ON}도통(continuity) 저항 (수 Ω ~ 수백 Ω)신호 감쇠, 세틀링
ΔRON\Delta R_{ON} (평탄도)신호 전압에 따른 RONR_{ON} 변화왜곡
CONC_{ON}/COFFC_{OFF}채널 용량대역폭(bandwidth), 크로스토크(crosstalk)크로스토크 crosstalk옆 배선의 신호가 용량이나 자기장을 타고 내 신호에 섞여 들어오는 것입니다.자세히 보기 →
charge injection (QinjQ_{inj})스위칭 시 주입되는 전하옵셋 오차
누설 전류(leakage current)OFF 상태 누설고임피던스에서 오차
크로스토크채널 간 결합(coupling)인접 채널 간섭(interference)
tONt_{ON}/tOFFt_{OFF}전환 시간스캔 속도

★ Charge Injection — 다채널 측정의 골칫거리

스위치가 열리거나 닫힐 때, 게이트 용량에 저장된 전하 일부가 신호 경로로 주입됩니다.

ΔV=QinjChold\Delta V = \frac{Q_{inj}}{C_{hold}}
기호
Delta V전압 변화량voltage changeV
C_hold정전용량 (hold)capacitance (hold)F
Q_inj전하 / 품질 계수 (inj)charge / quality factor (inj)
V전압voltageV

계산

QinjQ_{inj} = 5 pC (전형적인 CMOS 스위치), 홀드 커패시터(capacitor) 100 pF:

ΔV=5×10−12100×10−12=50 mV\Delta V = \frac{5\times10^{-12}}{100\times10^{-12}} = 50\ \text{mV}
기호
Delta V전압 변화량voltage changeV
V전압voltageV

50 mV의 옵셋! µV 신호를 다루는 회로에서는 재앙입니다.

완화 방법

방법원리대가
홀드 커패시터를 크게ΔV=Q/C\Delta V = Q/C세틀링 느려짐 (τ=RONC\tau = R_{ON}C)
더미 스위치반대 극성 전하를 주입해 상쇄면적 2배, 완전 상쇄는 어려움
차동 구조양쪽에 같은 전하가 주입되어 차동에서 상쇄회로 2배
상관 이중 샘플링 (CDS)스위칭 전후를 빼서 제거샘플링 2회, 시간·잡음 증가
작은 스위치Qinj∝Q_{inj} \propto 게이트 면적RONR_{ON} 증가
느린 게이트 구동전하가 양쪽으로 나뉘어 주입량 감소전환 시간 증가

💡 CDS(상관 이중 샘플링)가 가장 강력합니다. 리셋 직후의 값과 신호가 실린 값을 두 번 읽어 빼면, charge injection뿐 아니라 소스 팔로워(source follower)소스 팔로워 source follower전압 이득이 1인데도 쓰는 이유는 높은 임피던스를 낮은 임피던스로 바꿔 주기 때문입니다.자세히 보기 →의 VthV_{th} 편차와 1/f 잡음1/f 잡음 flicker noise주파수가 낮을수록 커지는 잡음으로, DC 근처를 재는 측정에서는 이것이 지배합니다.자세히 보기 →까지 함께 제거됩니다. CMOS 이미지 센서와 픽셀 어레이의 표준 기법입니다.


★ RONR_{ON}과 세틀링

스위치의 RONR_{ON}이 부하 용량과 함께 시정수시정수 time constantRC 회로가 목표값까지 63%를 가는 데 걸리는 시간으로, 회로의 빠르기를 한 숫자로 나타냅니다.τ=RC\tau = RC자세히 보기 →를 만듭니다.

τ=(Rsource+RON)×Cload\tau = (R_{source} + R_{ON})\times C_{load}
기호
tau시정수time constants
C_load부하 정전용량load capacitanceF
R_ON도통 저항on-resistanceΩ
R_source신호원 저항source resistanceΩ

계산 예제

RONR_{ON} = 100 Ω, 신호원 500 Ω, 배선(trace) 용량 20 pF:

τ=600×20×10−12=12 ns\tau = 600\times20\times10^{-12} = 12\ \text{ns}
기호
tau시정수time constants

12비트 세틀링: 8.3τ=1008.3\tau = 100 ns

채널당 100 ns × 2500채널 = 250 µs/프레임 → 4 kHz 프레임 레이트

RONR_{ON}이 세틀링을 통해 시스템의 최대 채널 수와 대역폭을 직접 제한합니다. 이것이 16-01의 핵심 제약입니다.


★ RONR_{ON} 평탄도와 왜곡

RONR_{ON}은 신호 전압에 따라 변합니다. 이것이 부하 저항과 분압되면 비선형 왜곡이 됩니다.

Vout=VinRLRON(Vin)+RLV_{out} = V_{in}\frac{R_L}{R_{ON}(V_{in})+R_L}
기호
R_ON도통 저항on-resistanceΩ
R_L부하 저항load resistanceΩ
V_in입력 전압input voltageV
V_out출력 전압output voltageV

대책:

  • RL≫RONR_L \gg R_{ON} (고임피던스 부하) → 분압 영향 최소화
  • RONR_{ON} 평탄도가 좋은 소자 선택
  • 버퍼로 받기 (스위치 뒤에 고임피던스 입력)

크로스토크

OFF 채널의 신호가 COFFC_{OFF}를 통해 새어 들어옵니다.

crosstalk≈20log⁡10(2πf COFFRL)\text{crosstalk} \approx 20\log_{10}(2\pi f\,C_{OFF}R_L)
기호
C_OFF정전용량 (OFF)capacitance (OFF)F
f주파수frequencyHz
R_L부하 저항load resistanceΩ

계산: COFFC_{OFF} = 1 pF, RLR_L = 10 kΩ, ff = 10 kHz

=20log⁡10(2π×104×10−12×104)=20log⁡10(6.28×10−4)≈−64 dB= 20\log_{10}(2\pi\times10^4\times10^{-12}\times10^4) = 20\log_{10}(6.28\times10^{-4}) \approx -64\ \text{dB}

−64 dB. 12비트(74 dB)에는 부족합니다. RLR_L을 낮추거나 COFFC_{OFF}가 작은 소자를 써야 합니다.

⚠️ 세틀링 부족도 크로스토크로 나타납니다. 이전 채널의 값이 완전히 사라지지 않은 상태에서 다음 채널을 읽으면, 이전 채널의 신호가 섞입니다. 이것을 메모리 효과라고 하며, 순차 스캔 시스템에서 가장 흔한 크로스토크 원인입니다.


시뮬레이션으로 확인

멀티플렉서 세틀링과 크로스토크 회로도RS1500ΩRS2500ΩV11V채널1 신호V20V채널2 신호CL20pF열 배선 용량RL10MΩ버퍼 입력VC1VC2SW1SW_MUXSW2SW_MUXCH1CH2S1S2BUSC1C2GND
멀티플렉서 세틀링과 크로스토크워크벤치에서 열기 →
# examples/09-digital/mux-settling.yaml
meta:
  name: 멀티플렉서 세틀링과 크로스토크
  lesson: docs/09-digital/06-analog-switch.md
  note: 두 채널을 번갈아 선택하며 세틀링이 충분한지 확인
components:
  - {ref: V1,  type: vdc, value: 1.0,  label: 채널1 신호}
  - {ref: V2,  type: vdc, value: 0.0,  label: 채널2 신호}
  - {ref: RS1, type: r, value: 500}
  - {ref: RS2, type: r, value: 500}
  - {ref: SW1, type: sw, model: SW_MUX}
  - {ref: SW2, type: sw, model: SW_MUX}
  - {ref: CL,  type: c, value: 20p, label: 열 배선 용량}
  - {ref: RL,  type: r, value: 10MEG, label: 버퍼 입력}
  - {ref: VC1, type: vpulse, params: {v1: 5, v2: 0, td: 0,     tr: 1n, tf: 1n, pw: 100n, per: 200n}}
  - {ref: VC2, type: vpulse, params: {v1: 0, v2: 5, td: 0,     tr: 1n, tf: 1n, pw: 100n, per: 200n}}
nets:
  CH1: [V1.p, RS1.1]
  CH2: [V2.p, RS2.1]
  S1:  [RS1.2, SW1.1]
  S2:  [RS2.2, SW2.1]
  BUS: [SW1.2, SW2.2, CL.1, RL.1]
  C1:  [VC1.p, SW1.cp]
  C2:  [VC2.p, SW2.cp]
  GND: [V1.n, V2.n, CL.2, RL.2, SW1.cn, SW2.cn, VC1.n, VC2.n]
analyses:
  - {type: tran, tstep: 1n, tstop: 1u}

BUS 파형을 보면 채널 전환 후 값이 안정되는 데 걸리는 시간을 확인할 수 있습니다. 100 ns 안에 충분히 세틀링하는지 보세요.


⚖️ 부품 트레이드오프

선택✅ 좋아지는 것⚠️ 나빠지는 것
낮은 RONR_{ON}세틀링 빠름, 감쇠 적음큰 게이트 → QinjQ_{inj}↑, CONC_{ON}↑ (크로스토크↑)
높은 RONR_{ON} (작은 스위치)QinjQ_{inj}↓, 용량↓세틀링 느림
큰 홀드 커패시터charge injection 영향↓, kT/C 잡음↓세틀링 느림
작은 홀드 커패시터빠름ΔV=Q/C\Delta V = Q/C 커짐, kT/C 잡음↑ (3-02)
더미 스위치QinjQ_{inj} 상쇄면적, 완전 상쇄 불가
차동 구조옵셋·잡음 상쇄, CMRR회로 2배, 배선 2배
CDS옵셋·1/f 제거샘플 2회 → 대역폭 절반, 잡음 2\sqrt2배

💡 RONR_{ON}과 QinjQ_{inj}는 근본적으로 상충합니다. 둘 다 게이트 면적에 의존하는데 방향이 반대입니다. 이 트레이드오프가 멀티플렉싱 어레이 설계의 중심에 있습니다.


🔌 실제 쓰임새

용도소자
다채널 ADC 입력 선택아날로그 멀티플렉서 (ADG708 등)
어레이 행/열 선택집적 스위치 트랜지스터 (16-01)
샘플-홀드스위치 + 커패시터 + 버퍼
이득 전환 (PGA)스위치 + 저항 네트워크
신호 경로 라우팅크로스포인트 스위치
초핑 (chopping)고속 스위치로 1/f 잡음 제거
교정(calibration) 신호 주입스위치로 테스트 신호 선택

⚠️ 이상과 실제의 차이

이상실제
RONR_{ON} = 0수 Ω~수백 Ω, 신호 전압에 따라 변동
OFF = 완전 차단(cutoff)누설 전류 + COFFC_{OFF}를 통한 결합
스위칭에 부작용 없음charge injection, 클럭 피드스루
즉시 전환tONt_{ON}/tOFFt_{OFF} 존재, 세틀링 필요
채널 독립크로스토크, 메모리 효과
전원 무관RONR_{ON}이 전원 전압에 크게 의존

⚠️ break-before-make 확인: 대부분의 멀티플렉서(multiplexer)는 새 채널을 켜기 전에 이전 채널을 끕니다. 만약 make-before-break라면 두 채널이 순간적으로 단락(short)되어 신호원끼리 충돌합니다.


연습문제

문제 1. RONR_{ON} = 50 Ω, 부하 용량 50 pF. 10비트 세틀링 시간은?

연습 9-06-1 — 아날로그 스위치의 10비트 세틀링 회로도RON50Ω스위치 도통 저항V1CH50pF홀드 커패시터INOUTGND
연습 9-06-1 — 아날로그 스위치의 10비트 세틀링워크벤치에서 열기 →
풀이 τ=50×50×10−12=2.5 ns\tau = 50\times50\times10^{-12} = 2.5\ \text{ns}
기호
tau시정수time constants
tsettle=6.9τ=17.3 nst_{settle} = 6.9\tau = 17.3\ \text{ns}
기호
tau시정수time constants
t_settle정착 시간settling times

문제 2. QinjQ_{inj} = 2 pC인 스위치를 홀드 커패시터 10 pF과 씁니다. 옵셋 오차는? 16비트 ADC(±1 V)에서 몇 LSB입니까?

exercises/09-06-charge-injection.yaml
풀이 ΔV=2×10−1210×10−12=0.2 V\Delta V = \frac{2\times10^{-12}}{10\times10^{-12}} = 0.2\ \text{V}
기호
Delta V전압 변화량voltage changeV
V전압voltageV

200 mV!

LSB = 2/65536=30.5 μ2/65536 = 30.5\ \muV이므로:

0.230.5×10−6≈6557 LSB\frac{0.2}{30.5\times10^{-6}} \approx 6557\ \text{LSB}

완전히 사용 불가능합니다.

개선:

  • 홀드 커패시터를 1 nF으로 → ΔV=2\Delta V = 2 mV (65 LSB) — 여전히 큼
  • CDS 적용 → 대부분 제거 ✅
  • 차동 구조 → 상쇄
  • QinjQ_{inj}가 작은 소자 (0.1 pC급)

charge injection은 단순히 커패시터를 키워서 해결할 수 있는 수준이 아닙니다. CDS나 차동 구조 같은 회로 기법이 필요합니다.

문제 3. 2500채널 어레이에서 채널당 세틀링 100 ns가 필요합니다. 프레임 레이트와 채널당 유효 대역폭은? 대역폭을 2배로 하려면 무엇을 바꿔야 합니까?

exercises/09-06-scan-bandwidth.yaml
풀이

프레임 시간: 2500×100 ns=250 μs2500\times100\ \text{ns} = 250\ \mu\text{s} 프레임 레이트: 1/250μ=4 kHz1/250\mu = 4\ \text{kHz} 채널당 유효 대역폭: 나이퀴스트로 2 kHz (실용적으로는 프레임 레이트의 1/4~1/5인 800 Hz~1 kHz)

대역폭 2배로 만들려면 (프레임 레이트 8 kHz):

방법어떻게대가
세틀링 시간 절반 (50 ns)τ\tau를 절반으로 → RONR_{ON} 또는 CC를 절반으로RONR_{ON}↓ = 큰 스위치 = QinjQ_{inj}↑; CC↓ = 배선 짧게(레이아웃 제약)
정확도 낮춤 (12비트→10비트)8.3τ→6.9τ8.3\tau \rightarrow 6.9\tau17% 개선뿐 — 부족
병렬 리드아웃열마다 ADC를 두어 50열 동시면적·전력 50배, 채널 간 정합 문제
채널 수 절반1250채널만 읽기공간 해상도 손실
관심 영역(ROI)만 스캔필요한 영역만유연성 있음, 실용적 ✅

실무적 답: 병렬 리드아웃(열 병렬 ADC) 이 표준 해법입니다. CMOS 이미지 센서가 고속·고해상도를 달성한 방법과 같습니다. 열마다 간단한 ADC를 두면 행 단위로만 순차 처리하면 되므로 속도가 열 수만큼 빨라집니다.

이 설계 판단의 전개가 16-01의 핵심입니다.


이전 ← 05 풀업·오픈드레인·레벨 시프터 | 다음 → 07 카르노맵과 해저드