ADC 분해능·스케일링 계산기
ADC 비트 수와 기준 전압으로 1 LSB·코드 ↔ 전압을 계산하고, 4–20mA(션트 저항)·0–10V(분압) 입력을 공학값으로 환산해 1카운트가 몇 bar·°C 인지 보여 줍니다.
계산식
- 1 LSB = V_REF ÷ 2^N (Microchip AN693)
- 코드 = ⌊V_IN × 2^N ÷ V_REF⌋, 최댓값 2^N − 1 (ATmega328P §23.7 을 N비트로)
- V = 코드 × V_REF ÷ 2^N
- 전류 신호: V = I × R_션트, 전압 신호: V = Vin × 분압비
- 공학값 = 하한 + (코드 − 코드_하한) ÷ (코드_상한 − 코드_하한) × (상한 − 하한)
- 양자화 오차 실효값 = 1 LSB ÷ √12, 최대 SNR = 6.02 × N + 1.76 dB, ENOB = (SINAD − 1.76) ÷ 6.02
분해능은 «쓰는 코드 수» 로 본다
- 12비트 ADC 라도 신호가 풀스케일 전체를 쓰지 않으면 실제 분해능은 줄어듭니다. 4–20 mA 를 150 Ω 로 받으면 0.6~3.0 V 라 3.3 V 기준에서 쓰는 코드는 약 2979 개, 0–10 bar 면 1카운트가 약 0.0034 bar 입니다.
- 4 mA 아래(0.6 V 아래)도 코드가 남아 있어 단선(0 mA)·하한 밑 값을 구별할 수 있고, 상한 위 여유(3.0~3.3 V)는 20 mA 를 조금 넘는 값을 잘리지 않게 받습니다.
- 션트를 250 Ω 로 바꾸고 5 V 기준을 쓰면 20 mA = 5 V 가 정확히 풀스케일이라, 20 mA 를 조금만 넘어도 코드가 끝(2^N − 1)에 붙습니다. 계산기의 «상한이 잘림» 경고가 이 경우입니다.
비트별 1 LSB
| 비트 | 코드 수 | 3.3 V | 5 V | 10 V | 최대 SNR |
|---|---|---|---|---|---|
| 8 | 256 | 12.89 mV | 19.53 mV | 39.06 mV | 49.92 dB |
| 10 | 1,024 | 3.223 mV | 4.883 mV | 9.766 mV | 61.96 dB |
| 12 | 4,096 | 805.7 µV | 1.221 mV | 2.441 mV | 74.00 dB |
| 14 | 16,384 | 201.4 µV | 305.2 µV | 610.4 µV | 86.04 dB |
| 16 | 65,536 | 50.35 µV | 76.29 µV | 152.6 µV | 98.08 dB |
| 24 | 16,777,216 | 0.1967 µV | 0.298 µV | 0.596 µV | 146.24 dB |
분해능과 정확도는 다르다
- 1 LSB 는 «구별할 수 있는 가장 작은 단계» 일 뿐, 그만큼 정확하다는 뜻은 아닙니다. AN693 은 이상적인 변환기도 양자화 오차가 최대 ±½ LSB 이고, 실제 변환기에는 오프셋·이득 오차와 DNL·INL(비직선성)이 더해진다고 설명합니다.
- 6.02N + 1.76 dB 는 풀스케일 사인파를 0 ~ fs/2 대역에서 잴 때의 이론 최댓값입니다. 데이터시트의 SINAD 를 넣어 구한 ENOB 가 실제로 쓸 수 있는 비트 수에 가깝습니다.
- 기준 전압의 오차는 모든 코드에 비율로 들어갑니다. 비율 측정(센서 전원과 기준 전압을 같은 전원으로)이 아니면 기준 전압의 정확도·온도 변화도 봅니다.
입력 회로
- ATmega328P 데이터시트(§23.6.1)는 ADC 가 출력 임피던스 약 10 kΩ 이하의 신호에 맞춰져 있다고 적고, 나이퀴스트 주파수(f_ADC/2)보다 높은 성분은 입력 전에 저역 필터로 없애라고 권합니다. RC 필터의 차단 주파수는 RC 시정수 계산기로 고릅니다.
- 0–10 V 를 3.3 V ADC 로 받을 때 분압비 0.3 이면 10 V → 3.0 V 로 위쪽 여유가 남습니다. 저항 값은 분압 저항 계산기에서 표준 값으로 고릅니다.
자주 묻는 것
12비트 ADC 의 분해능은?
4096 단계입니다. 3.3 V 기준이면 1 LSB = 3.3 ÷ 4096 ≈ 0.806 mV, 5 V 기준이면 약 1.22 mV 입니다.
ADC 값을 실제 압력·온도로 바꾸려면?
신호 하한·상한에서의 코드를 구한 뒤 직선 비례로 바꿉니다: 공학값 = 하한 + (코드 − 코드_하한) ÷ (코드_상한 − 코드_하한) × (상한 − 하한). 위 계산기의 «원시 코드 → 공학값» 이 이 식입니다.
PLC 아날로그 입력 모듈의 값(0–27648, 0–32000)도 되나요?
그건 모듈이 이미 환산해서 내는 값이라 비트·기준 전압 대신 그 범위를 씁니다. 4–20mA 환산 계산기에 S7·MELSEC 등 문서로 확인한 범위가 있습니다.
4–20 mA 를 받을 션트 저항은 몇 Ω 인가요?
20 mA × R 가 ADC 기준 전압보다 조금 낮게 고릅니다(3.3 V 면 150 Ω → 3.0 V). 루프 전원에서 션트가 차지하는 전압도 함께 봐야 하므로 4–20mA 루프 부하 계산기로 확인합니다.
PLC 카운트(0–27648 등)·NE 43 경계는 4–20mA 환산 계산기. 분압 저항은 분압 저항 계산기. 입력 필터는 RC 시정수·차단 주파수 계산기. 작은 신호를 ADC 범위로 키우는 증폭기는 op amp 증폭률 계산기.