ADC-oppløsningskalkulator

Tast inn en ADCs bit og referansespenning for å finne trinnstørrelse, kvantiseringsfeil og ideell SNR, konvertere mellom volt og koder, og se alle utregningstrinn.

Omformer og område

Heltall fra 1 til 32 — omformerens nominelle bitbredde.
Inngangsområde

Målepunkt (valgfritt)

La stå tom for å hoppe over målingen.

Hvor mange bit trenger du? (valgfritt)

Trinnstørrelse og støy

LSB-trinnstørrelse

Formler og innsetting

LSB = FSR ÷ 2ᴺ · maks feil = ½ LSB · SNR = 6.02N + 1.76 dB

    Hvert tall du legger inn blir værende i denne nettleseren – ingenting blir lastet opp.

    Ofte stilte spørsmål

    Hvorfor deler noen kilder på 2^N og andre på 2^N − 1?

    De er to ulike modeller av den samme omformeren. Datablader og klassisk kvantiseringsteori definerer LSB = FSR ÷ 2^N, med den første kodeovergangen ved et halvt trinn — det er denne modellen denne siden bruker. Formelen Vref ÷ (2^N − 1) kommer fra å avbilde den øverste koden nøyaktig på Vref, noe som er vanlig i veiledninger for mikrokontrollere. Ved 12 bit skiller de to seg med rundt 0.02%, langt under toleransen til en reell referanse; bare ikke bland de to når du sammenligner tall fra ulike kilder.

    Betyr 12-bit oppløsning 12-bit nøyaktighet?

    Nei. Oppløsning er kun bredden på koden — hvor fint området er delt opp. Nøyaktigheten begrenses av omformerens INL og offset-/forsterkningsfeil, referansens toleranse og støy, samt kretsen rundt. Det er derfor datablader oppgir ENOB: en 12-bit SAR leverer typisk 10–11 effektive bit. Den ideelle SNR-verdien på 74 dB som vises her, er det teoretiske taket som ingen reell 12-bit omformer når.

    Hvordan endrer en ±Vref-inngang matematikken?

    Spennet dobles til 2 × Vref, så den samme omformeren løser opp trinn som er dobbelt så brede: LSB = 2 × Vref ÷ 2^N. Kodene går fra den negative forsyningslinjen til den positive — kode 0 er −Vref, midtkoden 2^(N−1) er 0 V, og den øverste koden ligger ett trinn under +Vref. Velg det bipolare området ovenfor, så vil null volt lande nøyaktig på midtkoden.

    Hva kan jeg gjøre når trinnstørrelsen er for grov?

    Oversampling og midling gir bedre oppløsning når signalet har litt støy: å midle 4× så mange samplinger gir omtrent én ekstra effektiv bit, mens 16× gir to, forutsatt at støyen er hvit og ukorrelert — et helt rent og helt stillestående signal vil bare gjenta den samme koden. Utover det må du bytte til en omformer med flere bit eller legge til et trinn med programmerbar forsterkning slik at signalet fyller mer av området.

    Beregning av LSB-trinnstørrelse og kvantiseringsstøy

    En analog-til-digital-omformer (ADC) oversetter et kontinuerlig analogt spenningssignal til diskrete digitale koder. Oppløsningen til en ADC bestemmer hvor mange unike digitale verdier omformeren kan bruke for å representere det analoge inngangsspennet. Jo høyere oppløsningen er, desto mindre blir avstanden mellom hvert digitale trinn, noe som reduserer feilen som oppstår under digitaliseringen.

    Når du designer analoge inngangstrinn eller feilsøker mikrokontrollere, må du kjenne den nøyaktige spenningsverdien til det minste signifikante bitet (LSB). Denne kalkulatoren beregner LSB-trinnstørrelsen, det totale antallet kvantiseringsnivåer, den maksimale teoretiske kvantiseringsfeilen og det ideelle signal-til-støy-forholdet (SNR) basert på bitbredden og referansespenningskilden.

    Slik beregnes omformerens parametere

    Matematikken bak en ideell kvantiserer tar utgangspunkt i at den første kodeovergangen skjer ved nøyaktig et halvt LSB-trinn. Dette gir et symmetrisk feilbånd rundt hver digitale kode.

    Fullskalaområde (FSR) og trinnstørrelse

    Det totale spenningsområdet som omformeren kan måle, kalles fullskalaområdet (FSR). Hvordan dette området defineres, avhenger av om inngangen er konfigurert som unipolar eller bipolar:

    • Unipolar · 0 til Vref: Inngangsspennet går fra 0 til Vᵣef. Fullskalaområdet er lik referansespenningen: FSR = Vᵣef
    • Bipolar · −Vref til +Vref: Inngangsspennet går fra -Vᵣef til +Vᵣef. Fullskalaområdet er det doble av referansespenningen: FSR = 2 × Vᵣef

    Antall kvantiseringsnivåer bestemmes direkte av bitbredden N: Nivåer = 2^N

    Den teoretiske LSB-trinnstørrelsen beregnes ved å dele fullskalaområdet på det totale antallet nivåer: LSB = FSR / (2^N)

    Den maksimale digitale utgangskoden (Øverste kode) som omformeren kan avgi, er alltid én mindre enn det totale antallet nivåer: Øverste kode = 2^N - 1

    Kvantiseringsfeil og støy

    Siden en ADC må runde av en kontinuerlig analog spenning til nærmeste diskrete trinn, oppstår det en uunngåelig kvantiseringsfeil. For en ideell omformer ligger denne feilen innenfor et bånd på pluss/minus et halvt trinn: Maks kvantiseringsfeil = ±LSB / 2

    Under antakelsen om at kvantiseringsfeilen er jevnt fordelt som en sagtannbølge over tid, kan den effektive kvantiseringsstøyen (rms) beregnes matematisk: Kvantiseringsstøy (rms) = LSB / (√(12))

    Ideell SNR og dynamisk område

    Det teoretiske taket for signal-til-støy-forholdet til en ADC som måler en fullskala sinusbølge over hele Nyquist-båndbredden, bestemmes utelukkende av bitbredden: SNR = 6.02 × N + 1.76 dB

    Det teoretiske dynamiske området, som representerer forholdet mellom det største og det minste signalet omformeren kan registrere, beregnes som: Dynamisk område = 6.02 × N dB

    Konvertering mellom spenning og digitale koder

    Kalkulatoren lar deg utføre toveiskonvertering mellom analoge spenninger og digitale koder ved et spesifisert målepunkt.

    Spenning → kode

    Når en analog inngangsspenning (Vᵢₙ) skal gjøres om til en digital verdi, brukes avrunding til nærmeste heltall:

    • Unipolar: kode = avrundet(Vᵢₙ ÷ LSB)
    • Bipolar: kode = avrundet((Vᵢₙ + Vᵣef) ÷ LSB)

    Hvis inngangsspenningen overskrider omformerens grenser, vil koden gå i metning:

    • Hvis inngangen ligger over den øvre grensen, går utgangen i metning ved den øverste koden (2^N - 1).
    • Hvis inngangen ligger under den nedre grensen, går utgangen i metning ved kode 0.

    Kode → spenning

    Når en digital kode skal oversettes tilbake til en analog spenning, representerer resultatet den nøyaktige spenningen i senter av det gjeldende kvantiseringsintervallet:

    • Unipolar: V = kode × LSB
    • Bipolar: V = kode × LSB - Vᵣef

    Kvantiseringsfeilen ved målepunktet beregnes deretter som differansen mellom den rekonstruerte kodespenningen og den opprinnelige inngangsspenningen: Kvantiseringsfeil = kodespenning - inngangsspenning

    Hvor mange bit trenger du?

    I feltet «Hvor mange bit trenger du? (valgfritt)» kan du skrive inn den minste endringen signalet ditt krever, for eksempel 100 µV. Verktøyet regner da ut hvor mange bit som minst må til for å løse opp et slikt trinn:

    N ≥ log₂(FSR ÷ trinn)

    Resultatet rundes alltid opp til nærmeste hele antall bit. Deretter sammenlignes kravet med den valgte oppløsningen: dekker omformeren målet, bekrefter verktøyet det, og hvis ikke, viser det hvilket trinn den gjeldende omformeren faktisk løser opp.

    Eksempel på utregning (12-bit system)

    For å verifisere beregningene kan vi bruke standardverdiene fra kalkulatorens eksempelmodus: en 12-bit ADC med en unipolar referansespenning på 3.3 V.

    1. Kvantiseringsnivåer: 2¹² = 4096 nivåer.
    2. Øverste kode: 4096 - 1 = 4095.
    3. LSB-trinnstørrelse: 3.3 V ÷ 4096 ≈ 805.6641 µV.
    4. Maks kvantiseringsfeil: ± 805.6641 µV ÷ 2 ≈ ± 402.832 µV.
    5. Kvantiseringsstøy (rms): 805.6641 µV ÷ √(12) ≈ 232.5752 µV rms.
    6. Ideell SNR: 6.02 × 12 + 1.76 ≈ 74.01 dB.
    7. Dynamisk område: 6.02 × 12 ≈ 72.25 dB.

    Hvis vi legger inn en inngangsspenning på nøyaktig 1.65 V (som er nøyaktig midt på skalaen), vil dette kartlegges til kode 2048 (binært 1000 0000 0000, heksadesimalt 0x800) med nøyaktig null i kvantiseringsfeil.

    Begrensninger i praktiske kretser

    Tallene som beregnes av dette verktøyet representerer en teoretisk perfekt ADC. I den virkelige verden vil fysiske komponenter alltid introdusere feilkilder som forringer ytelsen:

    • Statiske feil: Integral ulinearitet (INL) og differensiell ulinearitet (DNL) beskriver avvik fra den ideelle overføringsfunksjonen. I tillegg vil offsetfeil og forsterkningsfeil forskyve hele skalaen.
    • Referansestøy og drift: Spenningsreferansen er aldri helt stabil. Temperaturdrift, aldring og høyfrekvent støy på referanselinjen vil skalere LSB-trinnstørrelsen direkte og øke den totale systemstøyen.
    • Effektive antall bit (ENOB): På grunn av termisk støy, forvrengning og jitter vil en reell ADC alltid ha et lavere praktisk signal-til-støy-forhold enn den teoretiske SNR-verdien. Dette uttrykkes i datablader som ENOB, som for en typisk 12-bit omformer ofte ligger rundt 10 til 11 effektive bit.

    Personvern og lokal kjøring

    Når du bruker denne kalkulatoren, blir alle inndata behandlet lokalt på din egen enhet. Hvert tall du legger inn blir værende i denne nettleseren – ingenting blir lastet opp til eksterne servere.


    Ofte stilte spørsmål (FAQ)

    Betyr 12-bit oppløsning 12-bit nøyaktighet?

    Nei. Oppløsning er kun bredden på koden — hvor fint området er delt opp. Nøyaktigheten begrenses av omformerens INL og offset-/forsterkningsfeil, referansens toleranse og støy, samt kretsen rundt. Det er derfor datablader oppgir ENOB: en 12-bit SAR leverer typisk 10–11 effektive bit. Den ideelle SNR-verdien på 74 dB som vises her, er det teoretiske taket som ingen reell 12-bit omformer når.

    Hvordan endrer en ±Vref-inngang matematikken?

    Spennet dobles til 2 × Vref, så den samme omformeren løser opp trinn som er dobbelt så brede: LSB = 2 × Vref ÷ 2^N. Kodene går fra den negative forsyningslinjen til den positive — kode 0 er −Vref, midtkoden 2^(N−1) er 0 V, og den øverste koden ligger ett trinn under +Vref. Velg det bipolare området ovenfor, så vil null volt lande nøyaktig på midtkoden.

    Hvorfor deler noen kilder på 2^N og andre på 2^N − 1?

    De er to ulike modeller av den samme omformeren. Datablader og klassisk kvantiseringsteori definerer LSB = FSR ÷ 2^N, med den første kodeovergangen ved et halvt trinn — det er denne modellen denne siden bruker. Formelen Vref ÷ (2^N − 1) kommer fra å avbilde den øverste koden nøyaktig på Vref, noe som er vanlig i veiledninger for mikrokontrollere. Ved 12 bit skiller de to seg med rundt 0.02%, langt under toleransen til en reell referanse; bare ikke bland de to når du sammenligner tall fra ulike kilder.

    Hva kan jeg gjøre når trinnstørrelsen er for grov?

    Oversampling og midling gir bedre oppløsning når signalet har litt støy: å midle 4× så mange samplinger gir omtrent én ekstra effektiv bit, mens 16× gir to, forutsatt at støyen er hvit og ukorrelert — et helt rent og helt stillestående signal vil bare gjenta den samme koden. Utover det må du bytte til en omformer med flere bit eller legge til et trinn med programmerbar forsterkning slik at signalet fyller mer av området.