Kalkylator för ADC-upplösning

Ange en ADC:s bitar och referensspänning för att få dess stegstorlek, kvantiseringsfel och ideala SNR, omvandla mellan volt och koder, och följ varje insättningssteg.

Omvandlare och område

Heltal från 1 till 32 — omvandlarens nominella bitbredd.
Ingångsområde

Mätpunkt (valfritt)

Lämna tomt för att hoppa över mätningen.

Hur många bitar behöver du? (valfritt)

Stegstorlek och brus

LSB-stegstorlek

Formler och insättning

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

    Varje tal du anger stannar i denna webbläsare – ingenting laddas upp.

    Vanliga frågor

    Varför dividerar vissa källor med 2^N och andra med 2^N − 1?

    De är två olika modeller av samma omvandlare. Datablad och klassisk kvantiseringsteori definierar LSB = FSR ÷ 2^N, med den första kodövergången vid ett halvt steg — det är den modellen som denna sida använder. Formen Vref ÷ (2^N − 1) kommer från att mappa den högsta koden exakt till Vref, vilket är vanligt i guider för mikrokontrollrar. Vid 12 bitar skiljer sig de två med ungefär 0.02%, vilket är långt under toleransen för en verklig referens; blanda bara inte ihop de två när du kontrollerar siffror från olika källor.

    Betyder 12-bitars upplösning 12-bitars noggrannhet?

    Nej. Upplösning är endast kodens bredd — hur fint området är uppdelat. Noggrannheten begränsas av omvandlarens INL och offset-/förstärkningsfel, referensens tolerans och brus samt kretsen runt omkring. Det är därför datablad anger ENOB: en 12-bitars SAR ger vanligtvis 10–11 effektiva bitar. Det ideala SNR på 74 dB som visas här är det tak som ingen verklig 12-bitars omvandlare når.

    Hur förändras matematiken med en ±Vref-insignal?

    Spänningsvidden fördubblas till 2 × Vref, så samma omvandlare löser upp steg som är dubbelt så breda: LSB = 2 × Vref ÷ 2^N. Koderna löper från den negativa matningen till den positiva — kod 0 är −Vref, mittkoden 2^(N−1) är 0 V och den högsta koden ligger ett steg under +Vref. Välj det bipolära området ovan så hamnar noll volt exakt på mittkoden.

    Vad kan jag göra när stegstorleken är för grov?

    Översampling och medelvärdesbildning ger bättre upplösning när signalen innehåller lite brus: att medelvärdesbilda 4× så många samplingar ger ungefär en effektiv bit till, 16× ger två, förutsatt att bruset är vitt och okorrelerat — en helt ren och helt stilla signal upprepar bara samma kod. Utöver det får man byta till en omvandlare med fler bitar eller lägga till ett programmerbart förstärkarsteg så att signalen fyller ut mer av området.

    Kalkylator för ADC-upplösning är ett kostnadsfritt verktyg online som beräknar en analog-till-digital-omvandlares (ADC) stegstorlek, kvantiseringsfel och ideala signal-to-noise ratio (SNR) baserat på dess bitupplösning och referensspänning. Från ett och samma gränssnitt kan användare utvärdera både unipolära och bipolära ingångsområden, omvandla fram och tillbaka mellan inspänningar och digitala koder samt bestämma den minsta bitupplösning som krävs för att lösa upp en specifik målspänningsförändring. Verktyget visar fullständigt redovisade matematiska insättningar för varje beräkning, vilket hjälper användare att verifiera de underliggande formlerna och förstå de teoretiska gränserna för sin omvandlare.

    Hur verktyget används i praktiken

    När du designar eller felsöker ett analogt gränssnitt matas parametrarna in i verktyget för att omedelbart beräkna omvandlarens prestanda. Processen sker helt lokalt: varje tal du anger stannar i denna webbläsare – ingenting laddas upp.

    Inmatningsparametrar

    • Upplösning N (bitar): Ett heltal från 1 till 32 som representerar omvandlarens nominella bitbredd.
    • Referensspänning: Ett positivt tal som anger referensspänningen.
    • Referensenhet: Måttenheten för referensspänningen.
    • Ingångsområde: Ett val mellan "Unipolär · 0 till Vref" och "Bipolär · −Vref till +Vref".
    • Visade decimaler: Antalet decimaler som visas i resultaten.
    • Omvandla (valfri mätpunkt): En väljare för att växla mellan "Spänning → kod" och "Kod → spänning".
    • Inspänning (valfritt): Den spänning som ska omvandlas till en digital kod.
    • Kod (antal steg) (valfritt): Ett heltal från 0 till omvandlarens högsta kod som ska omvandlas till en spänning.
    • Spänningsenhet: Måttenheten för inspänningen eller kodspänningen.
    • Minsta förändring att lösa upp (valfritt): En positiv målspänning som används för att beräkna den bitupplösning som krävs.
    • Stegenhet: Måttenheten för den minsta förändringen.

    Gränssnittet tillhandahåller även knapparna "Ladda exempel" och "Rensa" för att snabbt fylla i eller återställa dessa fält.

    Beräknade resultat och utdata

    Verktyget presenterar resultaten under specifika etiketter uppdelade i tre huvudkategorier:

    Stegstorlek och brus

    • LSB-stegstorlek: Den beräknade stegstorleken för den minst betydelsefulla biten (LSB), med en underetikett som visar steget som en procentandel av fullt utslag samt i ppm.
    • Kvantiseringsnivåer: Det totala antalet diskreta nivåer (2ᴺ).
    • Högsta kod: Den maximala digitala utkod som kan genereras (2ᴺ − 1).
    • Full-scale-område (FSR): Omvandlarens totala spänningsomfång.
    • Max kvantiseringsfel (±½ LSB): Det maximala teoretiska kvantiseringsfelet.
    • Kvantiseringsbrus (rms): Den effektiva kvantiseringsbrusspänningen (root-mean-square).
    • Idealt SNR (sinus vid fullt utslag): Det teoretiska taket för signal-till-brusförhållandet uttryckt i decibel.
    • Dynamiskt omfång: Det teoretiska dynamiska omfånget i decibel.

    Vid mätpunkten

    • Utkod: Den resulterande digitala koden från en spänning-till-kod-omvandling.
    • Binär: Den binära representationen av utkoden.
    • Hexadecimalt: Den hexadecimala representationen av utkoden.
    • Kodspänning: Den exakta spänning som motsvarar en given digital kod.
    • Kvantiseringsfel: Skillnaden mellan den faktiska inspänningen och den spänning som den resulterande koden representerar.
    • Ingångsfönster för denna kod: Det spänningsintervall på ingången som mappar till den beräknade digitala koden.

    Hur många bitar behöver du?

    När en målstorlek anges i fältet för minsta förändring, utvärderar verktyget om den valda upplösningen räcker. Om villkoret är uppfyllt visas meddelandet: "Att lösa upp ‹step› kräver minst ‹bits› bitar — denna ‹current›-bitars omvandlare klarar det." Om upplösningen är otillräcklig visas istället: "Att lösa upp ‹step› kräver minst ‹bits› bitar — denna ‹current›-bitars omvandlare löser endast upp ‹lsb›."

    Matematiska formler och insättning

    Verktyget visar de symboliska formlerna följt av de faktiska beräkningarna med användarens egna värden insatta:

    • LSB-stegstorlek: LSB = FSR ÷ 2ᴺ
    • Max kvantiseringsfel: ±LSB ÷ 2
    • Kvantiseringsbrus (rms): LSB ÷ √12
    • Idealt SNR (sinus vid fullt utslag): SNR = 6.02 × N + 1.76 dB
    • Dynamiskt omfång: 6.02 × N dB
    • Unipolär kod: kod = round(Vin ÷ LSB)
    • Bipolär kod: kod = round((Vin + Vref) ÷ LSB)
    • Unipolär spänning: V = kod × LSB
    • Bipolär spänning: V = kod × LSB − Vref
    • Kvantiseringsfel vid mätpunkten: kodspänning − inspänning
    • Dimensionering av upplösning: N ≥ log₂(FSR ÷ steg), avrundat uppåt till närmaste heltal

    Räkneexempel (Standardexempel)

    Om du klickar på "Ladda exempel" används följande värden: 12 bitar, 3.3 V referensspänning och unipolärt ingångsområde. Detta ger:

    • Kvantiseringsnivåer = 2¹² = 4 096
    • Högsta kod = 4 095
    • LSB-stegstorlek = 3.3 V ÷ 4 096 ≈ 805.6641 µV
    • Max kvantiseringsfel = ±402.832 µV
    • Kvantiseringsbrus ≈ 232.5752 µV rms
    • Idealt SNR ≈ 74.01 dB
    • Dynamiskt omfång ≈ 72.25 dB

    Om en inspänning på 1.65 V anges (vilket är exakt mitt på skalan), mappar detta till kod 2 048 (binärt 1000 0000 0000, hexadecimalt 0x800) med exakt noll i kvantiseringsfel.

    Regler, begränsningar och felhantering

    Verktyget utgår från en ideal kvantiseringsmodell där den första kodövergången sker vid ett halvt LSB-steg (½ LSB). En verklig omvandlare lägger till INL/DNL, offset-, förstärknings- och driftfel, och referensens egen tolerans och brus skalar varje steg. SNR-siffran är det teoretiska taket för en sinusvåg vid fullt utslag över Nyquist-bandbredden — en verklig ADC:s effektiva bitar (ENOB) ligger under dess nominella upplösning.

    Hantering av gränsvärden (Clipping)

    • Övre gränsen: Om inspänningen ligger över den övre gränsen mättas utsignalen vid den högsta koden (2ᴺ − 1). Verktyget visar då varningen: "Insignalen ligger över den övre gränsen: utsignalen mättas vid den högsta koden, och felet som visas är det verkliga restfelet — gränsen på ±½ LSB gäller inte längre."
    • Nedre gränsen: Om inspänningen ligger under den nedre gränsen mättas utsignalen vid kod 0. Verktyget visar då varningen: "Insignalen ligger under den nedre gränsen: utsignalen mättas vid kod 0, och felet som visas är det verkliga restfelet — gränsen på ±½ LSB gäller inte längre."
    • Mitt på skalan: Om insignalen är exakt mitt på skalan visas meddelandet: "Exakt mitt på skalan: halva spänningsvidden mappas till kod ‹code› med noll kvantiseringsfel."

    Felmeddelanden vid felaktig inmatning

    Om ogiltiga värden anges i gränssnittet avbryts beräkningen och något av följande felmeddelanden visas:

    • Om ett icke-numeriskt värde anges: "‹field›: “‹token›” är inte ett tal."
    • Om upplösningen ligger utanför tillåtet intervall: "Upplösningen måste vara ett heltal i bitar mellan 1 och 32."
    • Om referensspänningen är noll eller negativ: "Referensspänningen måste vara större än noll."
    • Om en kod inte är ett heltal: "En kod är ett heltal i antal steg."
    • Om koden ligger utanför omvandlarens intervall: "Koden måste vara mellan 0 och ‹max› för en ‹bits›-bitars omvandlare."
    • Om målstegstorleken är noll eller negativ: "Den minsta förändring som ska lösas upp måste vara större än noll."
    • Om beräkningen överskrider systemets gränser: "Ett värde eller ett mellanresultat överskrider det talområde som stöds."

    Vanliga frågor

    Betyder 12-bitars upplösning 12-bitars noggrannhet?
    Nej. Upplösning är endast kodens bredd — hur fint området är uppdelat. Noggrannheten begränsas av omvandlarens INL och offset-/förstärkningsfel, referensens tolerans och brus samt kretsen runt omkring. Det är därför datablad anger ENOB: en 12-bitars SAR ger vanligtvis 10–11 effektiva bitar. Det ideala SNR på 74 dB som visas här är det tak som ingen verklig 12-bitars omvandlare når.

    Hur förändras matematiken med en ±Vref-insignal?
    Spänningsvidden fördubblas till 2 × Vref, så samma omvandlare löser upp steg som är dubbelt så breda: LSB = 2 × Vref ÷ 2^N. Koderna löper från den negativa matningen till den positiva — kod 0 är −Vref, mittkoden 2^(N−1) är 0 V och den högsta koden ligger ett steg under +Vref. Välj det bipolära området ovan så hamnar noll volt exakt på mittkoden.

    Varför dividerar vissa källor med 2^N och andra med 2^N − 1?
    De är två olika modeller av samma omvandlare. Datablad och klassisk kvantiseringsteori definierar LSB = FSR ÷ 2^N, med den första kodövergången vid ett halvt steg — det är den modellen som denna sida använder. Formen Vref ÷ (2^N − 1) kommer från att mappa den högsta koden exakt till Vref, vilket är vanligt i guider för mikrokontrollrar. Vid 12 bitar skiljer sig de två med ungefär 0.02%, vilket är långt under toleransen för en verklig referens; blanda bara inte ihop de två när du kontrollerar siffror från olika källor.

    Vad kan jag göra när stegstorleken är för grov?
    Översampling och medelvärdesbildning ger bättre upplösning när signalen innehåller lite brus: att medelvärdesbilda 4× så många samplingar ger ungefär en effektiv bit till, 16× ger två, förutsatt att bruset är vitt och okorrelerat — en helt ren och helt stilla signal upprepar bara samma kod. Utöver det får man byta till en omvandlare med fler bitar eller lägga till ett programmerbart förstärkarsteg så att signalen fyller ut mer av området.