비교기와 히스테리시스

한 줄 요약 — 두 전압을 비교해 디지털 출력을 냅니다. 히스테리시스(hysteresis)가 없으면 문턱 근처에서 발진합니다.


비교기의 동작

부귀환(negative feedback)부귀환 negative feedback출력의 일부를 되돌려 빼면 이득은 줄지만 정확도·선형성·대역폭·임피던스가 모두 좋아집니다.ACL=A1+AβA_{CL} = \frac{A}{1+A\beta}자세히 보기 → 없이 개루프로 씁니다.

Vout={VhighV+>V−VlowV+<V−V_{out} = \begin{cases} V_{high} & V_+ > V_- \\ V_{low} & V_+ < V_-\end{cases}
기호
e잡음 전압 밀도noise voltage densityV/√Hz
V전압voltageV
V_high전압 (high)voltage (high)V
V_low전압 (low)voltage (low)V
V_out출력 전압output voltageV

⚠️ 부귀환이 없으므로 01의 가상 단락(virtual short)가상 단락 virtual short부귀환이 걸린 OP앰프는 두 입력의 전압을 같게 만들려고 하므로, 두 입력이 붙어 있는 것처럼 풀 수 있습니다.자세히 보기 →이 성립하지 않습니다. 두 입력이 크게 다를 수 있습니다.


OP앰프 vs 전용 비교기

OP앰프비교기 IC
출력아날로그 (레일 근처에서 포화(saturation))디지털 (오픈 드레인(open drain)오픈 드레인 open drain출력이 끌어내리기만 하고 올리지는 못하는 구조로, 여럿을 한 선에 묶을 수 있어 I2C 가 이것을 씁니다.자세히 보기 → 또는 푸시풀)
응답 속도느림 (µs) — 포화에서 회복이 오래 걸림빠름 (ns)
위상(phase) 보상있음 (개루프 사용에 불리)없음
로직 호환별도 회로 필요직접 연결

⚠️ OP앰프를 비교기로 쓰지 마세요. 내부 보상 때문에 느리고, 포화 상태에서 회복하는 데 시간이 걸리며, 입력 차동 전압이 클 때 손상될 수도 있습니다. 전용 비교기(LM393, TLV3501 등)를 쓰세요.


★ 히스테리시스가 필요한 이유

입력이 문턱 근처에서 천천히 움직이면, 노이즈 때문에 출력이 여러 번 토글합니다(채터링).

히스테리시스가 없을 때 생기는 일

시각입력출력
문턱에서 멀 때안정안정
문턱 근처잡음이 문턱을 여러 번 넘나듦출력이 여러 번 토글

입력이 문턱을 딱 한 번 지나가더라도, 신호에 실린 수 mV 의 잡음이 문턱을 왔다갔다 하면 출력이 그때마다 뒤집힙니다. MCU 가 이걸 세면 버튼 한 번에 수십 번 눌린 것으로 읽습니다.

이것은 다음 문제를 일으킵니다:

  • 카운터가 여러 번 셈
  • 스위칭 노이즈가 여러 번 발생
  • 소비 전력 증가

슈미트 트리거 — 양귀환으로 해결

출력의 일부를 비반전 입력으로 되돌립니다(양귀환).

슈미트 트리거 (히스테리시스) 회로도R110kΩR2330kΩVREF2.5VVINVP5VU1LM311VCCVCCINREFFBPOUTGND
슈미트 트리거 (히스테리시스)워크벤치에서 열기 →

히스테리시스 — 출력을 + 입력으로 되먹여 문턱 자체를 움직입니다.

출력 상태문턱
High문턱이 올라감 → 내려가려면 더 많이 내려와야 함
Low문턱이 내려감 → 올라가려면 더 많이 올라와야 함

문턱 두 개 사이 간격이 잡음보다 크면, 한 번 넘어간 뒤에는 잡음이 아무리 흔들려도 되돌아오지 않습니다.

출력이 High일 때와 Low일 때 문턱이 달라집니다.

VTH=VrefR2R1+R2+VOHR1R1+R2V_{TH} = V_{ref}\frac{R_2}{R_1+R_2} + V_{OH}\frac{R_1}{R_1+R_2}
기호
R_11번 저항resistance 1Ω
R_22번 저항resistance 2Ω
V_OH출력 High 전압output high voltageV
V_ref기준 전압reference voltageV
V_TH전압 (TH)voltage (TH)V
VTL=VrefR2R1+R2+VOLR1R1+R2V_{TL} = V_{ref}\frac{R_2}{R_1+R_2} + V_{OL}\frac{R_1}{R_1+R_2}
기호
R_11번 저항resistance 1Ω
R_22번 저항resistance 2Ω
V_OL출력 Low 전압output low voltageV
V_ref기준 전압reference voltageV
V_TL전압 (TL)voltage (TL)V
ΔVhyst=(VOH−VOL)R1R1+R2\Delta V_{hyst} = (V_{OH}-V_{OL})\frac{R_1}{R_1+R_2}
기호
Delta V전압 변화량voltage changeV
R_11번 저항resistance 1Ω
R_22번 저항resistance 2Ω
V_hyst전압 (hyst)voltage (hyst)V
V_OH출력 High 전압output high voltageV
V_OL출력 Low 전압output low voltageV

히스테리시스 폭 정하기

히스테리시스 > 노이즈 진폭 (피크-투-피크)

노이즈가 20 mVpp라면 히스테리시스를 50~100 mV로 잡습니다.


계산 예제

예제 — 슈미트 트리거(Schmitt trigger) 설계

3.3 V 로직, Vref=1.65V_{ref} = 1.65 V, 히스테리시스 100 mV 목표.

ΔV=3.3×R1R1+R2=0.1\Delta V = 3.3\times\frac{R_1}{R_1+R_2} = 0.1
기호
Delta V전압 변화량voltage changeV
R_11번 저항resistance 1Ω
R_22번 저항resistance 2Ω
V전압voltageV
R1R1+R2=0.0303\frac{R_1}{R_1+R_2} = 0.0303
기호
R_11번 저항resistance 1Ω
R_22번 저항resistance 2Ω

R1=10R_1 = 10 kΩ이면 R1+R2=330R_1+R_2 = 330 kΩ → R2=320R_2 = 320 kΩ (E24: 330 kΩ)

문턱:

VTH=1.65×0.97+3.3×0.0303=1.60+0.10=1.70 VV_{TH} = 1.65\times0.97 + 3.3\times0.0303 = 1.60+0.10 = 1.70\ \text{V}
기호
V_TH전압 (TH)voltage (TH)V
VTL=1.65×0.97+0=1.60 VV_{TL} = 1.65\times0.97 + 0 = 1.60\ \text{V}
기호
V_TL전압 (TL)voltage (TL)V

히스테리시스 100 mV ✅

⚠️ 양귀환 저항이 VrefV_{ref} 소스를 로딩합니다. VrefV_{ref}가 분압기(voltage divider)로 만들어졌다면 그 출력 임피던스(impedance)출력 임피던스 output impedance회로가 부하에 전압을 얼마나 굳건히 유지해 주는지를 나타내는 값으로, 낮을수록 부하에 덜 흔들립니다.자세히 보기 →를 고려해야 하고, 가능하면 버퍼로 받은 VrefV_{ref} 를 쓰세요.


시뮬레이션으로 확인

슈미트 트리거 (히스테리시스) 회로도R110kΩR2330kΩVREF2.5VVINVP5VU1LM311VCCVCCINREFFBPOUTGND
슈미트 트리거 (히스테리시스)워크벤치에서 열기 →
# examples/07-opamp/schmitt-trigger.yaml
meta:
  name: 슈미트 트리거 (히스테리시스)
  lesson: docs/07-opamp/04-comparator.md
components:
  - {ref: VP,   type: vdc, value: 5}
  - {ref: VREF, type: vdc, value: 2.5}
  - {ref: VIN,  type: vsin, params: {offset: 2.5, amp: 1, freq: 1k}}
  - {ref: R1,   type: r, value: 10k}
  - {ref: R2,   type: r, value: 330k}
  - {ref: U1,   type: opamp, model: LM311}
nets:
  VCC:  [VP.p, U1.'v+']
  IN:   [VIN.p, U1.'in-']
  REF:  [VREF.p, R2.1]
  FBP:  [R2.2, R1.1, U1.'in+']
  OUT:  [U1.out, R1.2]
  GND:  [VP.n, VREF.n, VIN.n, U1.'v-']
analyses:
  - {type: tran, tstep: 1u, tstop: 5m}

과도해석 파형에서 상승 시와 하강 시의 전환점이 다른 것을 확인할 수 있습니다.


⚖️ 부품 트레이드오프

선택✅ 좋아지는 것⚠️ 나빠지는 것
히스테리시스 크게노이즈 면역 강함, 확실한 전환작은 신호를 놓침, 문턱 정확도 저하, 타이밍 오차
히스테리시스 작게정밀한 문턱노이즈로 채터링
빠른 비교기짧은 전파 지연소비 전류 큼, 발진하기 쉬움, EMI
느린 비교기저전력, 안정지연
오픈 드레인(drain) 출력와이어드 OR 가능, 레벨 변환 자유풀업(pull-up)풀업 pull-up아무도 신호선을 잡고 있지 않을 때 전압을 높은 쪽으로 끌어 두어, 떠 있는 입력을 없애는 저항입니다.자세히 보기 → 저항 필요, 상승 시간이 RCRC로 느림
푸시풀 출력빠른 상승·하강레벨 고정, 관통 전류
입력 RC 필터 추가고주파 노이즈 제거응답 지연

★ 측정 회로 관점 — 비교기는 노이즈원입니다

비교기의 출력이 전환될 때 급격한 dv/dtdv/dt와 전원 전류 스파이크(spike)가 발생합니다. 근처의 µV 측정에 영향을 줍니다.

대책:

  • 비교기 전원을 아날로그와 분리, 디커플링 강화
  • 출력에 직렬 저항으로 dv/dtdv/dt 완화
  • 히스테리시스를 충분히 줘서 불필요한 전환 자체를 없앰
  • 물리적 거리 확보

🔌 실제 쓰임새

용도비고
문턱 검출 (과전압·과전류)히스테리시스 필수
영교차 검출정밀한 타이밍 필요 → 히스테리시스 최소 + 저노이즈
스파이크 검출신경 신호에서 임계값 초과 검출
발진기 (릴랙세이션)슈미트 + RC
PWM 생성삼각파와 비교
아날로그 → 디지털 (1비트)
파형 정형느린 파형을 급격한 에지로

💡 신경 스파이크 검출에서 임계값 비교기는 가장 단순한 방법입니다. 다만 스파이크 진폭이 변하고 노이즈가 있어서, 실무에서는 대개 디지털로 처리(적응형 임계값, 템플릿 매칭)합니다.


⚠️ 이상과 실제의 차이

이상실제
즉시 전환전파 지연 (ns~µs), 입력 오버드라이브에 따라 달라짐
문턱이 정확입력 옵셋 전압(mV급)만큼 이동
출력이 깨끗전환 시 링잉(ringing), 전원 스파이크
히스테리시스가 계산대로VOHV_{OH}, VOLV_{OL}이 부하에 따라 변동
발진 안 함히스테리시스 없으면 반드시 발진 (기생 피드백)

연습문제

문제 1. 5 V 시스템에서 히스테리시스 200 mV를 만들려면 R1/R2R_1/R_2 비율은?

연습 7-04-1 — 히스테리시스 200 mV 만들기 회로도R110kΩ기준 쪽R2240kΩ출력 쪽 — 히스테리시스 폭을 정합니다VIN문턱을 오가는 입력RA100kΩRB100kΩVP5VU1TL071VCCVCCVCCREFPLUSINOUTGND
연습 7-04-1 — 히스테리시스 200 mV 만들기워크벤치에서 열기 →
풀이 R1R1+R2=0.25=0.04\frac{R_1}{R_1+R_2} = \frac{0.2}{5} = 0.04
기호
R_11번 저항resistance 1Ω
R_22번 저항resistance 2Ω

R1=10R_1 = 10 kΩ이면 R1+R2=250R_1+R_2 = 250 kΩ → R2=240R_2 = 240 kΩ

문제 2. 비교기 입력에 30 mVpp의 노이즈가 있습니다. 적절한 히스테리시스는?

exercises/07-04-hysteresis-30mv.yaml
풀이

최소 30 mV, 권장 60~100 mV.

노이즈 진폭의 2~3배로 잡아 여유를 둡니다. 노이즈가 가우시안이라면 rms의 6~8배를 봐야 하므로, 30 mVpp가 rms 5 mV 정도라면 히스테리시스 50 mV 이상이 안전합니다.

문제 3. 신경 신호(50 µV)에서 스파이크(200 µV)를 검출하려 합니다. 증폭 후 비교기로 검출할 때 히스테리시스를 어떻게 정합니까?

exercises/07-04-spike-threshold.yaml
풀이

먼저 신호 체인을 정합니다.

게인 5000배라 가정 → 배경 신호 250 mV, 스파이크 1 V, 잡음(입력 환산 2 µV rms) 10 mV rms

임계값: 배경 잡음의 3~5σ로 잡습니다. 5σ = 50 mV (입력 환산 10 µV).

히스테리시스: 잡음 rms의 2~3배 → 20~30 mV (입력 환산 4~6 µV)

하지만 실무에서는 아날로그 비교기를 안 쓰는 경우가 많습니다.

이유:

  1. 스파이크 진폭이 시간·채널에 따라 변해 고정 임계값이 부적절
  2. 배경 잡음 수준도 변함 → 적응형 임계값이 필요
  3. 여러 뉴런의 스파이크를 구분(spike sorting)하려면 파형 전체가 필요
  4. 채널이 수천 개면 비교기를 채널마다 둘 수 없음

실무 접근:

  • 아날로그는 증폭·필터링·디지털화만 담당
  • 스파이크 검출과 분류는 디지털에서 (임계값을 잡음 추정치의 배수로 자동 설정, 예: 4×4\times median absolute deviation)
  • 아날로그 비교기는 트리거나 실시간 폐루프 제어가 필요할 때만

“이 기능을 아날로그로 할 것인가 디지털로 할 것인가”는 신호 체인 설계의 중요한 판단입니다. 일반 원칙: 정보를 잃는 처리는 최대한 나중에 하세요. 비교기는 파형 정보를 1비트로 버립니다. → 16-00 방법론


이전 ← 03 차동 증폭기와 계측 증폭기 | 다음 → 05 액티브 필터