Ang ADC Resolution Calculator ay isang libreng online tool na nagkakalkula ng step size, quantization error, at ideal signal-to-noise ratio (SNR) ng isang Analog-to-Digital Converter batay sa bit resolution at reference voltage nito. Sa pamamagitan ng isang interface, maaaring suriin ng mga user ang unipolar at bipolar input ranges, mag-convert sa pagitan ng mga input voltage at digital codes, at tukuyin ang pinakamababang bit resolution na kinakailangan upang malutas ang isang partikular na target voltage change. Ipinapakita ng tool ang mga kumpletong mathematical substitution para sa bawat kalkulasyon upang matulungan ang mga user na i-verify ang mga formula at maunawaan ang mga teoretikal na limitasyon ng kanilang converter.
Ang bawat numerong ilalagay mo ay nananatili sa browser na ito — walang ia-upload. Ang lahat ng kalkulasyon ay lokal na isinasagawa sa device ng user.
Paggamit ng Converter at Range
Upang simulan ang pagsusuri, ang mga sumusunod na input ay ibinibigay sa tool:
- Resolusyon N (mga bit): Isang buong numero mula 1 hanggang 32 na kumakatawan sa nominal na bit width ng converter.
- Reference voltage: Isang positibong numero para sa reference voltage.
- Yunit ng reference: Ang unit ng pagsukat para sa reference voltage.
- Saklaw ng input: Pagpili sa pagitan ng "Unipolar · 0 hanggang Vref" at "Bipolar · −Vref hanggang +Vref".
- Ipinapakitang decimal places: Ang bilang ng mga decimal place na ipapakita sa mga resulta.
Para sa mga opsyonal na pagsusuri, maaari ding ilagay ang mga sumusunod:
- I-convert: Isang toggle para sa conversion mode sa pagitan ng "Voltage → code" at "Code → voltage".
- Input voltage: Ang boltahe na iko-convert sa digital code.
- Code (mga bilang): Isang buong numero mula 0 hanggang sa pinakamataas na code ng converter.
- Unit ng boltahe: Ang yunit para sa input voltage o code voltage.
- Pinakamaliit na pagbabagong lulutasin: Ang target voltage step upang makuha ang kinakailangang bit resolution.
- Unit ng step: Ang yunit para sa pinakamaliit na pagbabago.
Ang interface ay mayroon ding mga button na "I-load ang halimbawa" at "I-clear" para sa mabilis na pagpuno o pag-reset ng mga input.
Laki ng Step at Noise
Ipinapakita ng tool ang mga sumusunod na resulta sa ilalim ng mga eksaktong label nito:
- Laki ng LSB step: Ang kalkuladong Least Significant Bit step size, kasama ang sub-label na nagpapakita ng porsyento ng full scale at ppm.
- Mga quantization level: Ang kabuuang bilang ng mga discrete level (2ᴺ).
- Pinakamataas na code: Ang maximum digital output code (2ᴺ − 1).
- Saklaw ng full-scale: Ang kabuuang voltage span ng converter.
- Max na error sa quantization (±½ LSB): Ang pinakamataas na teoretikal na quantization error.
- Ingay sa quantization (rms): Ang root-mean-square quantization noise voltage.
- Ideal na SNR (full-scale sine): Ang teoretikal na signal-to-noise ratio ceiling sa decibels.
- Dynamic range: Ang teoretikal na dynamic range sa decibels.
Pagsusuri sa Punto ng Pagsukat
Kapag ginamit ang opsyonal na conversion, ipinapakita ng tool ang mga sumusunod na detalye sa "Sa punto ng pagsukat":
- Output code: Ang digital code mula sa voltage-to-code conversion.
- Binary: Ang binary na representasyon ng output code.
- Hexadecimal: Ang hexadecimal na representasyon ng output code.
- Code voltage: Ang eksaktong boltahe na tumutugma sa ibinigay na digital code.
- Error sa quantization: Ang pagkakaiba sa pagitan ng actual input voltage at ng boltahe ng code.
- Input window para sa code na ito: Ang hanay ng mga input voltage na nagmamapa sa kalkuladong digital code.
Mga Panuntunan sa Matematika at Pag-clip
Ginagamit ng tool ang modelo ng isang ideal quantizer kung saan ang unang code transition ay nagaganap sa kalahating step (½ LSB), at ang LSB ay tinutukoy bilang FSR ÷ 2ᴺ. Ang bawat kalkulasyon ay naglalarawan ng isang ideal converter. Ang isang totoong ADC ay nagdaragdag ng INL, DNL, mga error sa offset, gain, at drift, pati na rin ang sariling tolerance at noise ng reference. Samakatuwid, ang ideal SNR, dynamic range, at ang ±½ LSB bound ay mga theoretical ceiling lamang, hindi ang totoong nasusukat na performance. Ang resolusyon (bilang ng bits) ay iba sa accuracy ng converter.
Saklaw ng Input at Pagmamapa
- Unipolar Range: Ang full-scale range (FSR) ay katumbas ng Vref. Ang input span ay tumatakbo mula 0 hanggang Vref.
- Bipolar Range: Ang full-scale range (FSR) ay katumbas ng 2 × Vref. Ang input span ay tumatakbo mula −Vref hanggang +Vref. Ang code 0 ay nagmamapa sa −Vref, ang mid-scale code na 2ᴺ⁻¹ ay nagmamapa sa 0 V, at ang pinakamataas na code ay nasa isang step sa ibaba ng +Vref.
Mga Kondisyon sa Pag-clip at Espesyal na Input
- High Rail Clipping: Kung ang input voltage ay nasa itaas ng high rail, ang output ay nag-saturate sa pinakamataas na code (2ᴺ − 1). Ipinapakita ng tool ang babala: "Ang input ay nasa itaas ng high rail: ang output ay nag-saturate sa top code, at ang ipinapakitang error ay ang totoong residual — hindi na nalalapat ang ±½ LSB bound."
- Low Rail Clipping: Kung ang input voltage ay nasa ibaba ng low rail, ang output ay nag-saturate sa code 0. Ipinapakita ng tool ang babala: "Ang input ay nasa ibaba ng low rail: ang output ay nag-saturate sa code 0, at ang ipinapakitang error ay ang totoong residual — hindi na nalalapat ang ±½ LSB bound."
- Eksaktong Mid-Scale: Kung ang input voltage ay eksaktong nasa gitna ng scale, ipinapakita ng tool na ang kalahati ng span ay nagmamapa sa mid-scale code na may zero quantization error.
Mga Formula at Paghalili
Ipinapakita ng calculator ang mga sumusunod na formula kasama ang paghalili ng mga inilagay na halaga:
- LSB step size:
LSB = FSR ÷ 2^N - Max na error sa quantization:
±LSB ÷ 2 - Ingay sa quantization (rms):
LSB ÷ √12 - Ideal na SNR (full-scale sine):
SNR = 6.02 × N + 1.76 dB - Dynamic range:
6.02 × N dB - Unipolar code:
code = round(Vin ÷ LSB) - Bipolar code:
code = round((Vin + Vref) ÷ LSB) - Unipolar voltage:
V = code × LSB - Bipolar voltage:
V = code × LSB − Vref - Error sa quantization sa punto ng pagsukat:
code voltage − input voltage - Resolution sizing:
N ≥ log₂(FSR ÷ step), na ini-round up sa susunod na buong numero ng bits.
Halimbawa ng Pagkalkula (12 bits, 3.3 V, Unipolar)
Gamit ang mga default na halaga ng halimbawa:
- Mga level: 2¹² = 4,096
- Pinakamataas na code: 4,095
- LSB: 3.3 V ÷ 4,096 ≈ 805.6641 µV
- Max quantization error: ±402.832 µV
- Quantization noise: ≈ 232.5752 µV rms
- Ideal SNR: ≈ 74.01 dB
- Dynamic range: ≈ 72.25 dB
- Kung ang input ay 1.65 V (eksaktong mid-scale), ito ay nagmamapa sa code 2,048 (binary
1000 0000 0000, hexadecimal0x800) na may zero quantization error.
Mga Error sa Interface
Ipinapakita ng tool ang mga sumusunod na mensahe ng error kapag hindi wasto ang mga input:
- Kapag hindi numero ang inilagay:
"‹field›: Ang “‹token›” ay hindi isang numero." - Kapag labas sa limitasyon ang resolusyon:
"Ang resolution ay dapat isang buong numero ng bits sa pagitan ng 1 at 32." - Kapag ang reference voltage ay zero o negatibo:
"Ang reference voltage ay dapat mas mataas sa zero." - Kapag hindi buong numero ang inilagay sa code:
"Ang code ay dapat isang buong numero ng counts." - Kapag labas sa limitasyon ang code:
"Ang code ay dapat nasa pagitan ng 0 at ‹max› para sa isang ‹bits›-bit converter." - Kapag ang target step size ay zero o negatibo:
"Ang pinakamaliit na pagbabagong lulutasin ay dapat mas mataas sa zero." - Kapag lumampas sa limitasyon ng kalkulasyon:
"Ang isang halaga o intermediate na resulta ay lumampas sa sinusuportahang hanay ng numero."
Mga Madalas Itanong (FAQ)
Ang 12-bit resolution ba ay nangangahulugang 12-bit accuracy?
Hindi. Ang resolution ay ang lapad lamang ng code — kung gaano kepino hinahati ang range. Ang accuracy ay nalilimitahan ng INL at mga error sa offset/gain ng converter, ng tolerance at noise ng reference, at ng circuit sa paligid nito. Iyan ang dahilan kung bakit tinutukoy ng mga datasheet ang ENOB: ang isang 12-bit SAR ay karaniwang nagbibigay ng 10–11 effective bits. Ang 74 dB na ideal SNR na ipinapakita rito ay ang ceiling na walang totoong 12-bit converter ang nakakaabot.
Paano binabago ng ±Vref input ang math?
Dodoble ang span sa 2 × Vref, kaya ang parehong converter ay lumulutas ng mga step na doble ang lapad: LSB = 2 × Vref ÷ 2^N. Ang mga code ay tumatakbo mula sa negatibong rail hanggang sa positibo — ang code 0 ay −Vref, ang mid code na 2^(N−1) ay 0 V, at ang top code ay nasa isang step sa ibaba ng +Vref. Piliin ang bipolar range sa itaas at ang zero volts ay tatama nang eksakto sa mid code.
Bakit ang ilang source ay naghahati sa 2^N at ang iba naman ay sa 2^N − 1?
Ang mga ito ay dalawang magkaibang modelo ng parehong converter. Ang mga datasheet at ang klasikong quantization theory ay nagtatakda ng LSB = FSR ÷ 2^N, kung saan ang unang code transition ay nasa kalahating step — iyan ang modelong ginagamit ng page na ito. Ang anyong Vref ÷ (2^N − 1) ay nagmumula sa pagmamapa ng top code nang eksakto sa Vref, na karaniwan sa mga tutorial ng microcontroller. Sa 12 bits, ang dalawa ay nagkakaiba nang humigit-kumulang 0.02%, na mas mababa sa tolerance ng anumang totoong reference; huwag lang pagsamahin ang dalawa kapag sinusuri ang mga numero mula sa iba't ibang source.
Ano ang maaari kong gawin kapag masyadong magaspang ang laki ng step?
Ang oversampling at averaging ay nagbibigay ng karagdagang resolution kapag ang signal ay may kaunting noise: ang pag-average ng 4× na mas maraming sample ay nagbibigay ng humigit-kumulang isang effective bit, at ang 16× ay nagbibigay ng dalawa, basta't ang noise ay white at uncorrelated — ang isang perpektong malinis at perpektong nakatigil na signal ay uulit-ulitin lang ang parehong code. Higit pa rito, lumipat sa isang converter na may mas maraming bits o magdagdag ng programmable-gain stage para mapuno ng signal ang mas malaking bahagi ng range.