클럭과 타이밍

한 줄 요약 — 클럭은 시스템의 심장이자 가장 큰 노이즈원입니다. 측정 시스템에서는 클럭의 지터가 곧 측정 오차입니다.


클럭원

종류정확도지터비고
RC 내장 발진기±1~5%큼무료, 온도 드리프트
크리스털 (XTAL)±10~50 ppm작음부하 커패시터(capacitor) 필요
크리스털 발진기 (XO)±10~50 ppm작음완제품, 편리
TCXO±0.5~2 ppm작음온도 보상
OCXO±0.01 ppm매우 작음항온조, 비쌈·전력
PLL 체배원본에 의존증가주파수 유연

크리스털 회로

크리스털 부하 커패시터 배치 (피어스 발진기) 회로도RM30Ω모션 저항LM3.5mH모션 인덕턴스CM22fF모션 용량RF1MΩ바이어스 귀환 저항VIN1V인버터 출력 대신C116pF부하 C1C216pF부하 C2XOUTM1M2XINGND
크리스털 부하 커패시터 배치 (피어스 발진기)워크벤치에서 열기 →
부품어디에 붙나하는 일
XTALXIN ↔ XOUT기계적으로 진동하는 수정. 회로적으로는 매우 Q가 높은 직렬 RLC(모션 저항·인덕턴스·용량)처럼 보인다
C1XIN ↔ GNDXIN 쪽 부하 용량
C2XOUT ↔ GNDXOUT 쪽 부하 용량
RFR_FXIN ↔ XOUTMCU 내부 인버터를 선형 영역에 바이어스한다 (보통 칩 안에 내장)

💡 C1·C2는 크리스털과 병렬이 아니라 각각 GND로 갑니다. 크리스털이 보는 부하 용량은 이 둘의 직렬 합이고, 그래서 아래 식이 C1C2/(C1+C2)C_1C_2/(C_1+C_2) 형태입니다.

부하 커패시터 계산:

CL=C1C2C1+C2+CstrayC_L = \frac{C_1C_2}{C_1+C_2} + C_{stray}
기호
C_stray정전용량 (stray)capacitance (stray)F
C_11번 정전용량capacitance 1F
C_22번 정전용량capacitance 2F
C_L부하 정전용량load capacitanceF

C1=C2C_1 = C_2일 때:

C1=C2=2(CL−Cstray)C_1 = C_2 = 2(C_L - C_{stray})
기호
C_stray정전용량 (stray)capacitance (stray)F
C_11번 정전용량capacitance 1F
C_22번 정전용량capacitance 2F
C_L부하 정전용량load capacitanceF

CstrayC_{stray}는 보통 3~5 pF입니다.

예: CLC_L = 12 pF, CstrayC_{stray} = 4 pF → C1=C2=16C_1 = C_2 = 16 pF (E12: 15 pF)

⚠️ 부하 커패시터는 반드시 C0G/NP0를 쓰세요. X7R을 쓰면 온도에 따라 주파수가 드리프트합니다 (3-04).

레이아웃:

  • 크리스털을 MCU 핀에 최대한 가깝게
  • 배선(trace) 아래에 그라운드 가드
  • 다른 신호가 근처를 지나지 않게
  • 크리스털 주변에 가드링(guard ring)가드링 guard ring고임피던스 노드를 같은 전압의 링으로 둘러싸 표면 누설을 없애는 기법입니다.자세히 보기 →

★ 지터 (jitter) — 측정 정확도에 직결

지터는 클럭 에지의 시간 변동입니다.

ADC 샘플링에서의 지터 영향

샘플링 시점이 Δt\Delta t만큼 흔들리면, 신호가 변하는 중이므로 전압 오차가 생깁니다.

ΔV=dVdt×Δt\Delta V = \frac{dV}{dt}\times\Delta t
기호
Delta t시간 간격time intervals
Delta V전압 변화량voltage changeV
d거리 또는 두께distance or thicknessm
t시간times
V전압voltageV

정현파 Vsin⁡(2πft)V\sin(2\pi ft)의 최대 기울기는 2πfV2\pi fV이므로:

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

계산 표

신호 주파수지터SNR 한계유효 비트
1 kHz1 ns104 dB17비트
10 kHz1 ns84 dB13.6비트
100 kHz1 ns64 dB10.3비트
1 MHz1 ns44 dB7비트
100 kHz10 ps104 dB17비트

고주파 신호를 고분해능으로 측정하려면 지터가 ps급이어야 합니다.

다행히 생체 신호(kHz 이하)에서는 ns급 지터로도 충분합니다. 하지만 멀티플렉싱 어레이에서는 채널 간 샘플링 시각 차이가 별도 문제가 됩니다 → 16-01


★ 클럭이 만드는 노이즈

클럭은 주기적이고 강한 신호라 노이즈원으로서 특히 나쁩니다.

문제대책
고조파가 광대역으로 방사슬루레이트(slew rate)슬루레이트 slew rate출력이 오를 수 있는 최고 속도로, 이걸 넘기면 정현파가 삼각파로 잘려 나옵니다.fmax=SR2πVpf_{max} = \frac{\mathrm{SR}}{2\pi V_p}자세히 보기 → 제한, 직렬 저항, 짧은 배선
전원을 통한 결합(coupling)디커플링, 전원 분리
아날로그 배선과 크로스토크(crosstalk)크로스토크 crosstalk옆 배선의 신호가 용량이나 자기장을 타고 내 신호에 섞여 들어오는 것입니다.자세히 보기 →물리적 분리, 가드 트레이스
접지 리턴 전류그라운드 플레인(plane)그라운드 플레인 ground plane한 층을 통째로 접지로 쓰는 것으로, 리턴 패스가 알아서 최단 경로를 찾게 해 줍니다.자세히 보기 →, 리턴 경로 확보

⚠️ 클럭 주파수의 고조파가 측정 대역에 떨어질 수 있습니다. 예를 들어 8 MHz 클럭의 스퓨리어스가 다운컨버전되어 저주파에 나타나기도 합니다. 스펙트럼을 확인하고, 문제가 되면 클럭 주파수를 바꿔보세요.


클럭 분배

방식특징
데이지 체인간단, 스큐(skew) 큼
스타 (버퍼)스큐 작음, 버퍼 필요
트리 (H-tree)스큐 최소, 면적
차동 클럭 (LVDS)노이즈 면역 우수, EMI 낮음

💡 측정 시스템에서 클럭을 보드 간에 보낼 때는 LVDS 같은 차동 전송을 쓰세요. 싱글엔디드는 접지 잡음을 그대로 받고 EMI를 크게 방사합니다.


시뮬레이션으로 확인

크리스털 부하 커패시터의 영향 회로도RM30Ω모션 저항LM3.5mH모션 인덕턴스CM22fF모션 용량C05pF병렬 용량V11VC115pF부하 커패시터INM1M2OUTGND
크리스털 부하 커패시터의 영향워크벤치에서 열기 →
# examples/09-digital/crystal-load.yaml
meta:
  name: 크리스털 부하 커패시터의 영향
  lesson: docs/09-digital/04-timing.md
  note: 크리스털을 등가 RLC로 모델링해 공진 주파수를 확인
components:
  - {ref: V1, type: vac, value: 1}
  - {ref: RM, type: r, value: 30,    label: 모션 저항}
  - {ref: LM, type: l, value: 3.5m,  label: 모션 인덕턴스}
  - {ref: CM, type: c, value: 22f,   label: 모션 용량}
  - {ref: C0, type: c, value: 5p,    label: 병렬 용량}
  - {ref: C1, type: c, value: 15p,   label: 부하 커패시터}
nets:
  IN:  [V1.p, RM.1, C0.1]
  M1:  [RM.2, LM.1]
  M2:  [LM.2, CM.1]
  OUT: [CM.2, C0.2, C1.1]
  GND: [V1.n, C1.2]
analyses:
  - {type: ac, sweep: dec, points: 500, fstart: 15MEG, fstop: 17MEG}

부하 커패시터 값을 바꾸면 공진(resonance)공진 resonance인덕터와 커패시터의 임피던스가 서로 상쇄되는 주파수로, 그 자리에서 전압이나 전류가 크게 솟습니다.f0=12πLCf_0 = \frac{1}{2\pi\sqrt{LC}}자세히 보기 → 주파수가 미세하게 이동하는 것을 볼 수 있습니다.


⚖️ 부품 트레이드오프

선택✅ 좋아지는 것⚠️ 나빠지는 것
크리스털정확·저지터·저렴부하 커패시터 필요, 기동 시간, 진동에 민감
내장 RC 발진기부품 0개부정확(±5%), 지터 큼, 온도 드리프트
TCXO/OCXO최고 정확도비쌈, 전력(OCXO는 발열까지)
높은 클럭 주파수처리량↑EMI↑, 전력↑, 지터 관리 어려움
낮은 클럭 주파수EMI↓, 전력↓처리량↓
PLL 체배주파수 유연지터 증가, 잡음
차동 클럭 (LVDS)노이즈 면역, 낮은 EMI부품·전력, 배선 2배

⚠️ PLL은 지터를 증가시킵니다. 저지터가 필요한 ADC 클럭은 PLL을 거치지 않은 원본 크리스털에서 직접 받는 것이 좋습니다. MCU 시스템 클럭(PLL 출력)을 ADC 클럭으로 쓰면 지터가 나빠집니다.


🔌 실제 쓰임새

자리요구
MCU 시스템 클럭일반 크리스털
ADC 샘플링 클럭저지터 — 별도 크리스털 또는 저지터 발진기
UART 통신±2% 이내 (크리스털 권장)
USB±0.25% (크리스털 필수)
시각 동기 (여러 장비)GPS 규율 클럭, PTP
어레이 스캔안정성 + 저EMI

⚠️ 이상과 실제의 차이

이상실제
클럭이 정확한 주파수ppm 단위 오차, 온도·에이징 드리프트
에지가 완벽지터, 상승시간, 링잉(ringing)
클럭이 동시에 도달스큐
클럭이 노이즈 안 만듦가장 강한 주기적 노이즈원
크리스털이 항상 발진부하 커패시터·구동 레벨이 맞아야 함. 기동 실패 흔함

⚠️ 크리스털 기동 실패는 부하 커패시터 값이 틀렸거나, 구동 레벨(drive level)이 부족하거나, PCB 기생 용량(parasitic capacitance)기생 용량 parasitic capacitance부품·배선·케이블이 원치 않게 갖는 커패시턴스로, 고임피던스 신호원에서 대역폭을 가장 먼저 잡아먹습니다.자세히 보기 →이 예상보다 클 때 발생합니다. 저온에서만 실패하는 경우도 있어 온도 시험이 필요합니다.


연습문제

문제 1. 크리스털 CLC_L = 18 pF, 기판 기생 5 pF. 부하 커패시터 값은?

연습 9-04-1 — 크리스털 부하 커패시터 26 pF 이 어디서 나오나 회로도LM9.89mH기계적 가지I11A1 A → 전압이 곧 임피던스CM10fF0.01 pF — 이런 부품은 없습니다C05pF전극 사이 용량CL13.5pF부하 (27 pF 두 개의 직렬)ZMIDGND
연습 9-04-1 — 크리스털 부하 커패시터 26 pF 이 어디서 나오나워크벤치에서 열기 →
풀이 C1=C2=2(18−5)=26 pFC_1 = C_2 = 2(18-5) = 26\ \text{pF}
기호
C_11번 정전용량capacitance 1F
C_22번 정전용량capacitance 2F

E12에서 22 pF 또는 27 pF. 27 pF이 더 가깝습니다.

문제 2. 10 kHz 신호를 16비트 정확도로 샘플링하려면 허용 지터는?

exercises/09-04-jitter-16bit.yaml
풀이

16비트 SNR ≈ 98 dB

tjitter=10−SNR/202πf=10−98/202π×104=1.26×10−56.28×104≈200 pst_{jitter} = \frac{10^{-\text{SNR}/20}}{2\pi f} = \frac{10^{-98/20}}{2\pi\times10^4} = \frac{1.26\times10^{-5}}{6.28\times10^4} \approx 200\ \text{ps}
기호
f주파수frequencyHz
SNR신호 대 잡음비signal-to-noise ratiodB
t_jitter시간 (jitter)time (jitter)s

200 ps 이하. 일반 크리스털 발진기(수 ps~수십 ps 지터)로 충분히 달성 가능합니다.

만약 1 MHz 신호라면: 2 ps — 훨씬 어렵습니다. 저지터 발진기가 필요합니다.

문제 3. 2500채널 어레이를 순차 스캔합니다. 첫 채널과 마지막 채널의 샘플링 시각이 172 µs 차이납니다. 이것이 문제가 됩니까?

exercises/09-04-scan-skew.yaml
풀이

용도에 따라 다릅니다.

문제가 되는 경우:

  • 공간적 전파 현상 관찰 — 신경 활동의 전파 속도를 측정한다면, 172 µs는 실제 전파 지연(수 ms)의 상당 부분입니다. 채널 간 시간차가 공간 정보를 왜곡합니다
  • 동기 이벤트 검출 — 여러 채널의 동시 발화를 판정할 때 시간차가 오판을 만듦
  • 위상(phase) 관계 분석 — 주파수 대역 간 위상 결합(phase-amplitude coupling) 분석

문제가 안 되는 경우:

  • 각 채널의 파형 자체만 볼 때
  • 신호 대역이 172 µs보다 훨씬 느릴 때 (< 1 kHz)

대책:

  1. 타임스탬프 보정 — 각 채널의 샘플링 시각을 알고 있으므로 후처리로 보정(리샘플링). 가장 실용적
  2. 동시 샘플-홀드 — 모든 채널을 동시에 샘플링한 뒤 순차적으로 읽음. 픽셀마다 샘플-홀드 커패시터가 필요해 면적·복잡도 증가. 이미지 센서의 “글로벌 셔터”와 같은 개념
  3. 병렬 리드아웃 — 열마다 ADC를 두면 행 단위로만 시간차 발생 (50배 개선)
  4. 스캔 순서 최적화 — 관심 영역을 먼저 읽거나, 인터리브

이것이 롤링 셔터(rolling shutter) 문제와 정확히 같습니다. 카메라에서 빠르게 움직이는 물체가 기울어져 보이는 현상과 같은 원리입니다.

자세한 논의 → 16-01


이전 ← 03 순차 논리와 플립플롭 | 다음 → 05 풀업·오픈드레인·레벨 시프터