Perché gli ADC usano 10 bit anziché 8 o 16?


28

Perché la maggior parte degli ADC, come quelli su Arduino , offre una risoluzione di 10 bit anziché 8 o 16 bit?

Sembra strano che non corrispondano alle dimensioni dei dati standard, in particolare su quelle integrate.


2
Le preoccupazioni non riguardano la larghezza dei dati. Più probabilmente sulla risoluzione e sui costi necessari.
richieqianle,

Perché dovrebbero corrispondere a "dimensioni standard dei dati"?
user253751

Risposte:


40

Non vi è alcun problema tecnico rilevante con l'estensione di un ADC SAR (approssimazione successiva) per convertire 16 bit, ma il problema è che si inizia a vedere il rumore di fondo del front-end analogico. Questo tende a far prendere dal panico i clienti perché vedono saltare i codici ADC e non sempre si rendono conto che stanno guardando decine di microvolt di deviazione.

Supponendo una tensione di riferimento di 5,00 V e un ADC a 10 bit, l'LSB rappresenta una tensione di 4,88 mV (5 V × 2 -10 ). Per un ADC a 16 bit con un riferimento di 5,00 V, la tensione LSB sarebbe 76 µV.

Ma l'alimentazione in un sistema digitale non è esattamente 5,00 V, di solito è specificata in un intervallo da 4,75 V a 5,25 V. Ogni volta che c'è un evento transitorio di commutazione all'interno del microcontrollore, c'è un piccolo impulso di corrente che provoca l'alimentazione tensioni da contrarre. Se l'LSB è di circa 5 mV potresti non riuscire a vederlo, ma a un livello di 76 µV è difficile non vedere questo rumore.

Infatti, una volta superato l'ADC a 12 bit, è necessario disporre di un riferimento di tensione analogico anziché utilizzare solo l'alimentatore digitale. Quindi questo aggiunge qualche costo in più. Per risultati ottimali, questo riferimento di tensione dovrebbe essere effettivamente un chip separato, con le sue linee di alimentazione e idealmente dovrebbe essere lontano dai circuiti digitali caldi / rumorosi.

Se vuoi che un ADC a 16 bit fornisca letture piacevoli e stabili, hai bisogno di una tensione di riferimento molto pulita e di un controllo termico e preferibilmente tenerlo lontano da qualsiasi segnale digitale a commutazione rapida ... in modo da integrare un SAR a 16 bit su lo stesso chip di un microcontrollore, in realtà vanificherebbe lo scopo di avere quei bit extra. Misureresti solo rumore casuale su quei bit extra.

Esistono applicazioni per i clienti che utilizzano ADC a risoluzione più elevata. La società in cui lavoro ne fa parecchi. Le apparecchiature di test automatizzate (ATE), gli ultrasuoni medici e alcuni altri tipi di clienti specializzati utilizzano ADC ad alta risoluzione, in alcuni casi a 18 o addirittura a 24 bit.

I test di produzione di un ADC ad alta risoluzione richiedono molto tempo (e quindi sono costosi). I clienti che necessitano di questo tipo di prestazioni pagano un premio per un ADC autonomo esterno, non per i tipi SAR economici integrati in molti moderni microcontrollori.

Quindi ci sono applicazioni ad alta velocità come radar o oscilloscopio a campionamento digitale, che devono campionare a frequenze di 100 MHz o più veloci - a queste velocità, sei fortunato ad ottenere 8 bit significativi.


1
La mia prima esperienza con gli ADC è stata esattamente l'opposto. Sono stato molto sorpreso di vedere la parte più bassa non fluttuare un po '.
John Dvorak,

Controintuitivamente quando si cerca di misurare segnali a bassa frequenza o CC, in realtà può essere MEGLIO avere un sistema con sufficiente rumore analogico per far fluttuare il bit inferiore per tutti i segnali di ingresso. Il rumore può essere ridotto mediante la media, ma se l'ADC è bloccato su un valore, indipendentemente dalla media eseguita, non migliorerai il risultato.
Peter Green,

1
Con la tecnologia moderna, puoi acquistare 8 bit significativi a più decine di frequenze gsps. :)
Oakad,

12

Scambia tra risoluzione e costo.

8 bit fornisce 2 8 = 256 combinazioni, di cui 0 è una, lasciando da 0 a 255 possibili valori digitali. Questo non è abbastanza per molte applicazioni. Ogni bit in più raddoppia la risoluzione e 10 bit fornisce 1024 passaggi, che è abbastanza buono per la maggior parte dei progetti. I sistemi industriali potrebbero utilizzare 12 bit per una risoluzione ancora migliore.

Gli ADC ad alta risoluzione richiedono tolleranze più strette e sono più costosi da produrre.


Non ho diversi milioni di ADC a 14 bit nella mia fotocamera?
Hagen von Eitzen,

7
@HagenvonEitzen: No. Una fotocamera non ha un ADC per pixel, ma legge i suoi pixel uno per uno. (Sebbene possa esserci più di un ADC per l'intero sensore per accelerarlo).
dolce

1
In genere una telecamera legge per linee, quindi hai alcune migliaia di ADC. In una situazione di alta amplificazione (alti ISO in un ambiente buio), puoi vedere la variazione individuale nelle coppie amplificatore / ADC sotto forma di linee che corrono attraverso l'immagine.
Segna l'

@Mark E come altro effetto della scansione di quella linea, le immagini di oggetti in movimento ad alta velocità possono dare l'effetto della tapparella .
JAB,

4

Sono già stati fatti alcuni punti validi e validi. Ho usato ADC a 8, 10, 12 e 16 bit ampiamente, nel corso degli anni, ed oggi è abbastanza facile ottenere 16 bit con un tempo di conversione di 4 o 5 microsecondi (meglio sono disponibili, mi atterrò a ciò che potrebbe essere praticabile per la maggior parte delle persone), in un chip autonomo. Ma questo contiene una rete ladder di precisione, che spesso utilizza resistori a film sottile e varie tecniche di progettazione analogica altamente specializzate. (C'è anche, quasi sempre, la necessità di transistor bipolari ad alte prestazioni da qualche parte nel circuito di un ADC di precisione, ma tutti i moderni microcontrollori sono CMOS, quindi ci sono numerosi passaggi di fabbricazione aggiuntivi per fare qualcosa con una buona precisione analogica e logica CMOS combinate. ) Un buon ADC costa anche più della maggior parte dei microcontrollori! Non così facile da realizzare,

Ad esempio, si consideri la TI ADS8509, il cui predecessore ADS7509, non così rapidamente, che ho usato in molti luoghi in un progetto ampio e importante.

http://www.ti.com/lit/ds/symlink/ads8509.pdf

È abbastanza banale per gli standard di oggi. Tuttavia, le sue caratteristiche di progettazione interna non sono compatibili con il processo di produzione a basso costo per i microcontrollori. E costa fino a $ 15,72, più della maggior parte dei microcontrollori. Li ho usati sotto forma di matrici semiconduttrici nude, incorporate in ibridi di metallo ermetico, con circuiti di supporto accuratamente progettati, e ho ottenuto appena un rumore PP di 1 LSB, quindi può essere fatto, se sai cosa stai facendo, e avere le risorse, incluso il budget. Ma non vedrai mai, mai così tanto rumore dentro o intorno a un microcontrollore.

Il problema principale, come ha spiegato almeno una persona, è che il rumore sulla linea di alimentazione digitale influirà direttamente sull'ADC. Ora puoi aggirare quello, usando un buon riferimento di tensione esterna, dove è previsto un pin, ma devi essere in grado di fare lo stesso anche con la terra. E, quei pin devono essere vincolati entro poche centinaia di mV dalla fornitura e dalla terra digitali, o la cosa esplode. Inoltre, naturalmente, l'accoppiamento del rumore interno nel silicio, dalla logica, cambiando gli stati in modi complessi alla frequenza di clock e, peggio ancora, dai pin I / O, alcuni dei quali potrebbero guidare e commutare 10s di mA, se si li ho caricati al limite. Rumore, rumore e altro rumore ...

La parte che ho citato (e Google in giro per quelli più economici, più veloci o diversi, compensa la flessibilità rispetto ai costi) ha un'interfaccia SPI, quindi è facilmente utilizzabile ESTERNO a un microcontrollore, con il suo piano di massa locale, filtro, ecc. Quindi , con cura, ti darà davvero 16 bit.

In passato era piuttosto difficile ottenere più di circa 10 bit senza rumore da un ADC a 12 bit, ed è ancora in un ambiente sporco, come vicino alla logica digitale, motivo per cui gli ADC integrati nei chip del processore sono più o meno bloccato a quella risoluzione, e probabilmente lo sarà per sempre. Ma ho un chip esterno a 32 bit. Non ho visto la scheda tecnica o il costo ...

Se puoi sacrificare la precisione assoluta (cioè il fattore di scala può essere fuori del 5% o più, per non parlare dell'offset CC e della sua deriva con il tempo e la temperatura, ma la linearità sarà eccellente), un ADC di livello audio potrebbe essere adatto a te. Sono almeno 16 bit e progettati per il mercato di massa, quindi spesso di buon valore, ma non aspettatevi di usarne uno in uno strumento di precisione che deve misurare i segnali CC a +/- 0,1%.

Non puoi avere tutto in una volta. È tutta una questione di ciò che conta di più. Precisione, rumore, deriva a lungo termine, velocità, costo, potenza, tipo di interfaccia (seriale o parallela) ecc. Inoltre potresti voler multiplexare più canali, quindi hai bisogno di un tempo di risposta rapido, che esclude molti ADC sigma-delta, che altrimenti hanno delle proprietà molto buone.

Quando si sceglie un ADC. Google è, come sempre, tuo amico. Ci sono molti articoli e note applicative di TI, Linear, National e vari altri produttori di semiconduttori. Fai sempre attenzione a ciò che non ti dicono le schede tecniche e controlla quali parametri sottolineano i loro concorrenti.

Ma se vuoi tutto sul tuo chip microcontrollore, non pianificare l'utilizzo di più di 10 bit (probabilmente 9 utilizzabili, LSB rumoroso) nei tuoi progetti. E, se il tuo chip lo consente, pianifica un riferimento analogico separato e la messa a terra. In questo modo, non perderai tempo.


3

Gli ADC a 8 bit sono orribili da usare a causa dei passaggi dello 0,49% - ne ho visto abbastanza. Arduino, progettato per l'elettronica per hobby, utilizza 4 volte il numero di passaggi, quindi vicino allo 0,1%, che è vicino al segnale raggiungibile da rumore (più ronzio) atteso dai comuni circuiti di sensori op-amp o transistor. Meglio di così sarebbe sprecato nell'elettronica domestica di grado hobyist, e peggio di così sarebbe troppo ripido e orribile.

Sebbene ADC a 16 bit siano disponibili in commercio, impiegano più tempo a stabilizzarsi, durante i quali si è mosso il ronzio o il rumore, quindi non si ottiene una misurazione migliore ed è più lento.


2
Gli Arduinos progettati per l'elettronica per hobby non hanno nulla a che fare con il numero di bit adc disponibili nell'adc su chip di un atmel uC. può essere una profondità adatta per l'uso hobbistico, ma è progettato per essere di buone dimensioni per molte applicazioni professionali non arduino
Loganf

2

Quando un ADC effettua una conversione, fornisce un valore digitale (quantizzato) per il segnale analogico continuo. Poiché, al momento della conversione, il valore digitale non sarà esattamente il valore analogico, la differenza può essere considerata come rumore additivo. Maggiore è la risoluzione dell'ADC, più il valore digitale si avvicina al valore analogico. In altre parole, miglioriamo il rapporto segnale rumore da quanitizzazione (SQNR) aumentando i bit dell'ADC. Pertanto, ADC a 10 bit è migliore di quelli a 8 bit (di circa 12 dB).

L'uso di A / D a 16 bit sarà migliore in termini di SQNR. Tuttavia, sono più costosi. E in molte applicazioni ADC a 10 bit fornisce SQNR sufficiente richiesto.


1

Come regola generale, si desidera che il numero di bit nel proprio coveter sia tale che il passo di quantizzazione sia un po 'al di sotto del livello di rumore (analogico) del sistema.

L'uso di più bit e quindi un ulteriore passo di quantizzazione più in basso rispetto al noise floor consente di ottenere pochissimi miglioramenti nelle prestazioni complessive del rumore, ma utilizza più silicio o allunga i tempi di conversione o richiede che gli interni del convertitore funzionino più velocemente (e quindi siano più rumorosi)

L'uso di meno bit e quindi una fase di quantizzazione sopra il rumore di fondo è generalmente negativo. Significa che stai sprecando le prestazioni del circuito analogico e in alcuni casi può creare errori sistematici che non possono essere rimossi attraverso la media (in effetti a volte i progettisti aggiungono deliberatamente rumore a un sistema per evitare errori sistematici dovuti alla quantizzazione).

La differenza tra 8 bit e 16 bit è ENORME. Il primo finisce con un passo di quantizzazione che è troppo grande anche in sistemi con prestazioni di rumore abbastanza scarse. Quest'ultimo è sprecato su qualsiasi sistema che non abbia un design analogico molto accurato. Quindi i microcontroller non sorprendono a finire nel mezzo.

Si noti che le persone spesso parlano di "rumore di quantizzazione", ma è importante ricordare che il concetto di "rumore di quantizzazione" è un modello semplificato di realtà che si rompe in alcune circostanze.


0

L'uso più comune degli ADC è probabilmente nell'area di elaborazione del suono (VoIP, musica da CD, ecc.). La musica non è interessante qui, dal momento che richiede 16 bit. Ma il VoIP è ciò che guida il mercato ADC a bit inferiore. Il VoIP di solito utilizza il companding, che produce un codice PCM compresso a 8 bit da un segnale di ingresso a 12 bit. L'input per il passo di compressione deve avere più bit - in genere 12, o talvolta 10 possono essere sufficienti (puoi sempre falsificare i due bit più bassi).

Di conseguenza, la domanda di ADC a 8 bit è molto bassa, ma gli ADC a bit più elevato sono molto richiesti e quindi disponibili a basso costo. Probabilmente Arduino userebbe componenti che sono economici e onnipresenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.