Cosa sono gli ADC (convertitori analogico-digitali) e come funzionano?

Cosa sono gli ADC (convertitori analogico-digitali) e come funzionano?

Punti chiave

  • Gli ADC sono ampiamente utilizzati per convertire segnali analogici, come suono e luce, in valori digitali che possono essere utilizzati in varie applicazioni.
  • La frequenza di campionamento di un ADC determina il numero di letture effettuate al secondo, con frequenze di campionamento più elevate che consentono una rappresentazione del segnale più accurata.
  • Il bitrate di un ADC influisce sulla qualità del campione ottenuto, con più bit si ottengono misurazioni più fluide e precise. Diversi tipi di ADC offrono diversi compromessi in termini di velocità, precisione e consumo energetico.

I convertitori analogico-digitali (ADC) sono incredibilmente utili per trasformare i fenomeni del mondo reale in valori che possiamo utilizzare nei progetti di programmazione. Ma come può un ADC convertire i segnali analogici in segnali digitali utilizzabili ovunque?

A cosa servono gli ADC?

Troverai ADC praticamente ovunque. Sono sul tuo telefono e convertono la tua voce in una stringa di valori binari. Sono nella tua macchina e misurano la rotazione delle ruote. Sono negli oscilloscopi e aiutano a catturare i segnali e a rappresentarli. Tuttavia, il luogo in cui la maggior parte delle persone li avrà utilizzati è il mondo del video e dell’audio, dove è fondamentale portare luce e suono in uno spazio digitale.

Cos’è una frequenza di campionamento? In che modo la frequenza di campionamento influisce su un ADC?

Uno dei parametri principali più critici di un ADC è la frequenza di campionamento: il numero di letture effettuate ogni secondo.

Un oscilloscopio di fascia alta potrebbe acquisire dieci miliardi di campioni al secondo. Il piccolo e coraggioso ADC MCP3008 può supportare duecentomila unità relativamente modeste. Nel mondo dell’audio, la frequenza di campionamento tipica è di 44.100 al secondo (44,1 kHz).

Più campioni prendiamo, più accuratamente possiamo rappresentare un segnale. A volte questo è essenziale; a volte, non lo è. Diciamo che stiamo costruendo un banco di fader (progettato per controllare l’elettronica, come vedresti su un mixer per luci o audio) con qualche dozzina di potenziometri. In questo caso, è improbabile che i valori che dobbiamo misurare cambino milioni di volte al secondo poiché le nostre dita non possono muoversi così velocemente. Abbiamo solo bisogno di un numero sufficiente di campioni affinché il risultato sia fluido e reattivo.

Cos’è il bitrate? Il bitrate influisce sulla qualità di un ADC?

Dovremmo anche pensare alla qualità del campione che stiamo ricevendo. Ciò è in gran parte determinato dal bitrate, che ci dice quanti stati on-off possiamo utilizzare per rappresentare digitalmente la tensione. Più bit abbiamo, più valori possibili possiamo registrare in un dato campione e più fluido e preciso sarà il risultato finale.

animazione che illustra come funziona la profondità di bit

Abbiamo scritto del binario e di come funziona , quindi se non sei sicuro, questo è un buon punto di partenza. Di quanti bit abbiamo bisogno? Ancora una volta, dipende da cosa stiamo cercando di realizzare. A volte potremmo essere limitati dal protocollo che stiamo utilizzando. Ad esempio, il protocollo MIDI 1.0 è limitato a valori a sette bit (e occasionalmente a quattordici bit). In altri casi, il fattore limitante potrebbe essere la percezione umana. Se la maggiore fedeltà non produce alcun miglioramento percepibile nel risultato, potrebbe non valerne la pena.

In che modo il multiplexing migliora la qualità dell’ADC?

I popolari chip ADC come ADS1115 e MCP3008 offrono molti input. Ma sotto il cofano, in realtà contengono solo un singolo ADC. Ciò è possibile grazie ai multiplexer integrati in questi dispositivi. I multiplexer sono assolutamente ovunque nel mondo dell’elettronica e delle telecomunicazioni. Sono interruttori digitali che fungono da controllo del traffico per il tuo ADC. L’ADC potrebbe campionare un canale, quindi quello successivo e poi quello successivo. Quindi, se disponi di otto canali e una frequenza di campionamento di 200.000, puoi ruotarli tutti, prelevando 25.000 campioni per canale.

Quali tipi di ADC esistono?

Gli ADC funzionano in vari modi, a seconda del costo e delle capacità richieste.

Un ADC Flash funziona tramite un partitore di tensione molto complesso. Un banco di resistori divide la tensione di riferimento in incrementi, che vengono poi testati rispetto all’ingresso tramite un banco di comparatori. Gli ADC flash sono velocissimi, ma sono limitati in termini di profondità di bit a causa del numero di comparatori richiesti. Sono anche assetati di potere per lo stesso motivo.

Un ADC Subranging cerca di compensare queste debolezze suddividendo il lavoro tra due unità separate: una per calcolare approssimativamente la tensione e poi una seconda per calcolarla con precisione. Suddividendo le cose, possiamo diminuire il numero di comparatori. Alcuni ADC di sottointervallo divideranno il lavoro in tre fasi, con la correzione degli errori incorporata lungo il percorso.

Gli ADC SAR ( Registro di approssimazione successiva ) svolgono il loro lavoro tramite una sorta di ricerca binaria . Supponiamo di avere otto bit da riempire. Il SAR inizierà da 10000000, che è il valore medio (00000000 è il valore inferiore e 11111111 è il valore superiore). Se la tensione supera questo punto medio, il SAR manterrà la cifra più a sinistra come 1; in caso contrario, il SAR imposterà la cifra più a sinistra su 0. Possiamo ripetere il processo con la cifra successiva e così via in modo ricorsivo. Ciò farà sì che il valore ipotizzato si sposti gradualmente verso il valore effettivo:

un grafico che mostra il funzionamento dell'adc SAR

In questo modo restringiamo continuamente la ricerca, dividendo le possibilità a metà e chiedendoci se il risultato è superiore o inferiore al punto medio. In questo caso, il valore è compreso tra 0 e 255; dopo alcune iterazioni, l’ADC ha stabilito che è intorno a 77.

I convertitori Sigma-Delta sono probabilmente i più difficili da capire. Sono utilizzati per applicazioni musicali e di misurazione del segnale ad alta precisione. Funzionano sovracampionando un segnale e perfezionando il risultato utilizzando filtraggi e calcoli diabolicamente complicati. Questo processo riduce efficacemente la frequenza di campionamento aumentando la precisione. Questi ADC sono ottimi quando il rumore e la precisione contano più della velocità.

Infine, abbiamo gli ADC integrati , che sono ancora più lenti di quelli sigma-delta. Funzionano con l’aiuto di un condensatore, la cui velocità di carica può essere utilizzata per determinare la tensione di ingresso. La frequenza di campionamento qui è spesso sincronizzata con la frequenza di alimentazione, che può essere utilizzata per mantenere il rumore al minimo assoluto.

Cos’è la teoria di Nyquist-Shannon?

Diciamo che vogliamo descrivere digitalmente un segnale analogico. Per fare ciò, abbiamo bisogno di almeno due punti per ogni dato ciclo: uno in alto e uno in basso. Pertanto, la nostra frequenza di campionamento deve essere almeno il doppio della frequenza più alta che ci aspettiamo di misurare.

Questa è conosciuta come frequenza di Nyquist, dal nome del fisico svedese-americano Harry Nyquist. La teoria prende il nome da Nyquist e Claude Shannon (un eminente matematico e crittografo) ma non da Edmund Whittaker, che ebbe l’idea prima di entrambi.

A chiunque attribuiamo questa teoria, c’è un problema. È impossibile sapere in anticipo quando arriveranno la parte superiore e quella inferiore di una forma d’onda. Cosa succede se prendiamo i nostri campioni a metà della forma d’onda in ingresso? Osserva come uno spostamento nel segnale in ingresso potrebbe appiattire completamente il risultato catturato:

animazione che illustra la forma d'onda di appiattimento dello sfasamento

O addirittura avere allucinazioni su nuove forme d’onda che prima non esistevano nemmeno:

animazione che mostra l'aliasing

Queste allucinazioni sono conosciute come alias .

Il problema dell’aliasing

Probabilmente avrai familiarità con l’illusione della “ruota del carro” che a volte si verifica quando viene filmato un oggetto che gira. Le ruote di un’auto, o le pale di un elicottero, sembrano girare all’indietro, solo molto lentamente. In alcuni casi, le lame potrebbero fermarsi del tutto (con risultati francamente strani: guarda il video qui sotto!).

Giocando a un vecchio videogioco, potresti anche aver notato che le linee parallele a volte producono strani artefatti di deformazione. Recinzioni, scale e maglioni a strisce cominciano a sembrare davvero molto particolari. E che dire di quegli strani fischi che a volte senti quando ascolti qualcuno parlare tramite una connessione digitale di scarsa qualità? È una distorsione, ma un tipo particolare di distorsione. Cosa significano tutte quelle brutte frequenze che emergono dal rumore? Se stai ascoltando contenuti armonicamente ricchi, come una batteria, l’effetto è ancora più evidente, specialmente nella fascia alta.

Se capisci la causa di uno di questi, sei sulla buona strada per comprenderli tutti. Nel caso della ruota del carro, il frame rate fisso significa che non possiamo catturare correttamente il movimento. Se qualcosa ruota di 350° ad ogni fotogramma, è naturale percepire che in realtà è stato spostato indietro di 10°. In altre parole, non ci sono abbastanza informazioni per rappresentare fedelmente ciò che sta accadendo. I campioni che stiamo prelevando non sono allineati con ciò che stiamo cercando di misurare.

Questo non è un problema esclusivo della conversione analogico-digitale. In molti di questi casi, stiamo convertendo un tipo di segnale digitale in un altro.

Allora, qual è la soluzione? Ce ne sono diversi. Potremmo applicare un filtro speciale per gestire questi artefatti, che è ciò che fanno molti ADC dietro le quinte. Oppure possiamo prelevare molti, molti più campioni di quelli di cui abbiamo bisogno. Più campioni prendiamo, più accurata diventa la nostra immagine dell’onda:

animazione che mostra come più campioni creano una forma d'onda migliore

Campione di maggiore qualità per i migliori risultati

Se trovi questo genere di cose interessanti, la buona notizia è che abbiamo appena toccato l’argomento. Ci sono profondità da sondare qui: gli ADC sono estremamente complicati.

Ma dal punto di vista dell’utente finale o dell’appassionato medio di Arduino sono anche molto semplici. Entrano tensioni e escono numeri. Quindi, qualunque cosa tu stia cercando di misurare, che si tratti del contenuto di umidità di un pezzo di terreno, delle oscillazioni di una scatola vocale umana o di un flusso di fotoni che si rifrangono attraverso una lente, ci sono buone probabilità che ci sia un ADC che farà il lavoro.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *