ADC-muuntimen toiminta ja teoreettiset rajat
Analogia-digitaalimuuntimen (ADC) resoluutio määrittää, kuinka hienojakoisesti laite pystyy jakamaan jatkuvan analogisen jännitteen erillisiin digitaalisiin arvoihin. ADC Resolution Calculator on ilmainen verkkotyökalu, joka laskee muuntimen Least Significant Bit (LSB) -askelkoon, kvantisointivirheen sekä ihanteellisen signaali-kohinasuhteen (SNR) bittileveyden ja referenssijännitteen perusteella.
Työkalun avulla voidaan arvioida sekä yksisuuntaisia (unipolar) että kaksisuuntaisia (bipolar) tuloalueita. Lisäksi sillä voi muuntaa jännitteitä digitaalisiksi koodeiksi ja päinvastoin sekä määrittää pienimmän bittiresoluution, joka vaaditaan tietyn jännitemuutoksen havaitsemiseen. Työkalu näyttää jokaisen laskutoimituksen kohdalla täydelliset matemaattiset sijoitukset, mikä auttaa varmistamaan kaavat ja ymmärtämään muuntimen teoreettiset rajat.
Muuntimen parametrit ja laskennan syötteet
Laskenta perustuu käyttäjän syöttämiin arvoihin:
- Resoluutio N (bittiä): Kokonaisluku väliltä 1–32 — muuntimen nimellinen bittileveys.
- Referenssijännite: Positiivinen luku, joka määrittää muuntimen vertailujännitteen.
- Referenssin yksikkö: Referenssijännitteen mittayksikkö (esimerkiksi V, mV tai µV).
- Tuloalue: Valinta vaihtoehtojen "Yksisuuntainen · 0... Vref" ja "Kaksisuuntainen · −Vref... +Vref" välillä.
- Näytettävät desimaalit: Tuloksissa käytettävien desimaalien määrä.
- Muunnos (valinnainen mittauspiste): Valinta tilojen "Jännite → koodi" ja "Koodi → jännite" välillä.
- Tulojännite (valinnainen): Jännitearvo, joka muunnetaan digitaaliseksi koodiksi. Voidaan jättää tyhjäksi.
- Koodi (lukema) (valinnainen): Kokonaisluku nollasta suurimpaan koodiin, joka muunnetaan jännitteeksi. Voidaan jättää tyhjäksi.
- Jännitteen yksikkö: Tulojännitteen tai koodin jännitteen yksikkö.
- Pienin erotettava muutos (valinnainen): Positiivinen kohdejännitteen muutos, jota käytetään tarvittavan bittiresoluution laskemiseen.
- Askeleen yksikkö: Pienimmän erotettavan muutoksen yksikkö.
Käyttöliittymän "Lataa esimerkki" -painike täyttää kentät esimerkkiarvoilla ja "Tyhjennä"-painike nollaa syötteet.
Laskimen antamat tulokset
Työkalu ryhmittelee tulokset seuraavien otsikoiden alle:
Askelkoko ja kohina
- LSB-askelkoko: Laskettu Least Significant Bit -askelkoko. Alateksti näyttää askeleen suhteellisen osuuden prosentteina täydestä asteikosta sekä ppm-arvona (parts per million).
- Kvantisointitasot: Erillisten digitaalisten tasojen kokonaismäärä (2^N).
- Suurin koodi: Suurin mahdollinen digitaalinen lähtökoodi (2^N - 1).
- Täysi jännitealue (FSR): Muuntimen koko jännitealueen leveys.
- Suurin kvantisointivirhe (±½ LSB): Teoreettinen suurin kvantisointivirhe.
- Kvantisointikohina (rms): Kvantisoinnista aiheutuva tehollisarvoinen kohinajännite.
- Ihanteellinen SNR (täyden asteikon sini): Teoreettinen signaali-kohinasuhteen yläraja desibeleinä.
- Dynamiikka: Teoreettinen dynaaminen alue desibeleinä.
Mittauspisteessä
- Lähtökoodi: Jännite-koodi-muunnoksen tuottama digitaalinen koodi.
- Binääri: Lähtökoodin binääriesitys.
- Heksadesimaali: Lähtökoodin heksadesimaaliesitys.
- Koodin jännite: Digitaalista koodia vastaava täsmällinen jännitearvo.
- Kvantisointivirhe: Todellisen tulojännitteen ja koodin edustaman jännitteen välinen erotus.
- Tuloikkuna tälle koodille: Jännitealue, joka kohdistuu kyseiselle digitaaliselle koodille.
Kuinka monta bittiä tarvitset?
Kun kenttään "Pienin erotettava muutos" syötetään arvo, työkalu ilmoittaa, riittääkö nykyinen bittimäärä sen havaitsemiseen. Jos nykyinen resoluutio on riittävä, työkalu vahvistaa, että muunnin kattaa tavoiteaskeleen. Jos resoluutio ei riitä, työkalu ilmoittaa, montako bittiä tavoiteaskeleen erottamiseen vähintään tarvitaan ja minkä askeleen nykyinen muunnin vielä erottaa.
Matemaattiset kaavat ja sijoitukset
Työkalu näyttää laskutoimitusten välivaiheet symbolisina kaavoina ja sijoittaa niihin käyttäjän syöttämät arvot:
- Kvantisointitasot: Tasot = 2^N
- Täysi jännitealue (yksisuuntainen): FSR = Vref
- Täysi jännitealue (kaksisuuntainen): FSR = 2 × Vref
- LSB-askelkoko: LSB = FSR ÷ 2^N
- Suurin kvantisointivirhe: Suurin kvantisointivirhe = ±LSB ÷ 2
- Kvantisointikohina (rms): Kvantisointikohina (rms) = LSB ÷ √12
- Ihanteellinen SNR (täyden asteikon sini): SNR = 6.02 × N + 1.76
- Dynamiikka: Dynamiikka = 6.02 × N
- Yksisuuntainen koodi: koodi = round(Vin ÷ LSB)
- Kaksisuuntainen koodi: koodi = round((Vin + Vref) ÷ LSB)
- Yksisuuntainen jännite: V = koodi × LSB
- Kaksisuuntainen jännite: V = koodi × LSB − Vref
- Kvantisointivirhe mittauspisteessä: Kvantisointivirhe = koodin jännite − tulojännite
- Resoluution mitoitus: N ≥ log₂(FSR ÷ step)
Esimerkkilaskenta
Kun ladataan työkalun esimerkkiarvot (12 bittiä, 3.3 V referenssijännite, yksisuuntainen alue):
- Kvantisointitasot: 2¹² = 4096
- Suurin koodi: 4095
- LSB-askelkoko: 3.3 V ÷ 4096 ≈ 805.6641 µV
- Suurin kvantisointivirhe: ± 402.832 µV
- Kvantisointikohina: ≈ 232.5752 µV rms
- Ihanteellinen SNR: ≈ 74.01 dB
- Dynamiikka: ≈ 72.25 dB
Jos tulojännitteeksi syötetään täsmälleen puolivälin jännite 1.65 V, se kohdistuu koodiin 2048 (binäärinä 1000 0000 0000, heksadesimaalina 0x800) ilman kvantisointivirhettä.
Laskentasäännöt ja poikkeustilanteet
Työkalu mallintaa ihanteellista kvantittajaa, jossa ensimmäinen koodisiirtymä tapahtuu puolikkaan askeleen (1 / 2 LSB) kohdalla ja LSB määritellään kaavalla FSR ÷ 2^N.
Laskennassa huomioitavat rajat ja poikkeukset:
- Teoreettinen malli: Kaikki tulokset kuvaavat ihanteellista muunninta. Todellinen ADC lisää signaaliketjuun epälineaarisuus- (INL/DNL), offset-, vahvistus- ja referenssivirheitä. Tämän vuoksi ihanteellinen SNR, dynaaminen alue ja ±1 / 2 LSB:n virheraja ovat teoreettisia kattoja, eivät mitattua suorituskykyä. Muuntimen resoluutio (bittimäärä) on eri asia kuin sen todellinen tarkkuus.
- Yksisuuntainen alue: Täysi jännitealue (FSR) on yhtä suuri kuin Vᵣef. Tulosignaali voi vaihdella välillä 0 V … Vᵣef.
- Kaksisuuntainen alue: Täysi jännitealue (FSR) on 2 × Vᵣef. Tulosignaali voi vaihdella välillä -Vᵣef … +Vᵣef. Koodi 0 vastaa jännitettä -Vᵣef, keskimmäinen koodi 2^(N-1) vastaa jännitettä 0 V, ja suurin koodi on yhden askeleen verran alle jännitteen +Vᵣef.
- Yläkiskon ylitys: Jos tulojännite ylittää yläkiskon, lähtö saturoituu suurimpaan koodiin (2^N - 1). Työkalu näyttää varoituksen: "Tulosignaali ylittää yläkiskon: lähtö saturoituu suurimpaan koodiin ja näytettävä virhe on todellinen jäännösvirhe — ±½ LSB:n raja ei enää päde." Laskennan välivaiheissa huomautetaan, että tulosignaali on alueen ulkopuolella ja koodi rajoitetaan.
- Alakiskon alitus: Jos tulojännite alittaa alakiskon, lähtö saturoituu koodiin 0. Työkalu näyttää varoituksen: "Tulosignaali alittaa alakiskon: lähtö saturoituu koodiin 0 ja näytettävä virhe on todellinen jäännösvirhe — ±½ LSB:n raja ei enää päde." Laskennan välivaiheissa huomautetaan, että tulosignaali on alueen ulkopuolella ja koodi rajoitetaan.
- Asteikon puoliväli: Jos tulojännite on täsmälleen asteikon puolivälissä, työkalu näyttää huomautuksen, että kyseessä on täsmälleen asteikon puoliväli: puolet alueesta kohdistuu tähän koodiin nollalla kvantisointivirheellä.
Virheilmoitukset
Työkalu validoi syötteet ja näyttää tarvittaessa seuraavat virheilmoitukset:
- Jos syöte ei ole numeerinen:
"‹field›: “‹token›” ei ole luku." - Jos resoluutio on rajojen ulkopuolella:
"Resoluution on oltava kokonaisluku väliltä 1–32 bittiä." - Jos referenssijännite on nolla tai negatiivinen:
"Referenssijännitteen on oltava suurempi kuin nolla." - Jos koodiksi syötetään desimaaliluku:
"Koodin on oltava kokonaisluku." - Jos koodi on rajojen ulkopuolella:
"Koodin on oltava välillä 0–‹max› tälle ‹bits›-bittiselle muuntimelle." - Jos pienin erotettava muutos on nolla tai negatiivinen:
"Pienimmän erotettavan muutoksen on oltava suurempi kuin nolla." - Jos laskenta ylittää numeeriset rajat:
"Arvo tai välitulos ylittää tuetun lukualueen."
Tietosuoja ja tietojen käsittely
Jokainen syöttämäsi luku pysyy tässä selaimessa – mitään ei lähetetä palvelimelle. Kaikki laskutoimitukset suoritetaan paikallisesti käyttäjän omalla laitteella.
Käyttökohteet suunnittelussa
- ADC-muuntimen valinta: Suunnittelijat voivat määrittää, kuinka monta bittiä resoluutiota tarvitaan, jotta anturisignaalin pienimmät jännitemuutokset saadaan erotettua.
- Signaaliketjun vianetsintä: Insinöörit voivat muuntaa mikrokontrollerin rekistereistä luetut raa'at digitaaliset koodit takaisin fyysisiksi jännitearvoiksi anturilukemien tarkistamiseksi.
- Järjestelmän kohinabudjetointi: Laitteistosuunnittelijat voivat laskea ADC:n teoreettisen maksimi-SNR:n ja kvantisointikohinan tason vertaillakseen sitä järjestelmän muuhun kohinaan.
- Laiteohjelmiston kehitys: Ohjelmoijat voivat varmistaa analogisten tulojen ja digitaalisten koodien väliset muunnokset ja tarkistaa skaalausalgoritminsa laskimen näyttämien välivaiheiden avulla.
Usein kysytyt kysymykset
Tarkoittaako 12-bittinen resoluutio 12 bitin tarkkuutta?
Ei. Resoluutio kertoo vain koodin leveyden eli sen, kuinka moneen osaan alue jakautuu. Tarkkuutta rajoittavat muuntimen INL- ja offset-/vahvistusvirheet, referenssin toleranssi ja kohina sekä sitä ympäröivä kytkentä. Tämän vuoksi datalehdissä ilmoitetaan ENOB: 12-bittinen SAR-muunnin tarjoaa tyypillisesti 10–11 tehollista bittiä. Tässä näytettävä ihanteellinen 74 dB SNR on teoreettinen yläraja, jota mikään todellinen 12-bittinen muunnin ei saavuta.