Sapere quando e come scegliere e applicare un DAC esterno per un microcontroller

Di Bill Giovino

Contributo di Editori nordamericani di DigiKey

Alcuni microcontroller a 32 bit hanno dei convertitori digitale/analogico (DAC) su chip per generare frequenza o tensione. Per molte applicazioni questo significa maggiori funzionalità e risparmio dello spazio su scheda. Tuttavia, le applicazioni potrebbero richiedere funzionalità DAC specializzate di cui i microcontroller non sono dotati.

Questo articolo prende in esame le funzionalità e le limitazioni di un DAC su chip per microcontroller. Presenta inoltre esempi di soluzioni con DAC esterni estremamente precisi e mostra come utilizzarli per generare segnali analogici di precisione.

Come funzionano i DAC su chip

Per consentire ai progettisti di generare segnali analogici personalizzati, i produttori di microcontroller hanno iniziato a includere periferiche DAC su chip. Queste periferiche possono essere utilizzate per generare tensioni di precisione e forme d'onda personalizzate, comprese le onde sinusoidali e quelle triangolari. I DAC possono essere utilizzati anche per la sintesi vocale.

Un DAC genera una tensione di uscita molto bassa che può essere anche di 0 V e arrivare alla tensione di riferimento analogica per il DAC. La tensione è proporzionale al valore digitale nel registro dei dati del DAC, con una precisione basata sulla risoluzione del DAC. Ad esempio, se la risoluzione del DAC è di 8 bit e la tensione di riferimento è di 5 V, la precisione di 1 LSB del DAC è di 5/255 = 0,0196 V. Teoricamente pertanto, se il registro dei dati del DAC a 8 bit contenesse 01h, l'uscita del DAC equivarrebbe a 1 LSB, ovvero a 0,0196 V. Se invece il registro dei dati del DAC a 8 bit contenesse il valore F1h (241), l'uscita di un DAC ideale sarebbe di 4,7236 V. Sempre teoricamente, aggiungendo 01h al registro dei dati del DAC il valore della tensione di uscita dovrebbe aumentare di 1 LSB.

Ovviamente, come per qualsiasi circuito analogico, non esiste un DAC ideale. Lo scostamento dell'uscita del DAC dal valore ideale del registro dei dati è detto errore di non linearità differenziale (DNL) e viene misurato in LSB. Un tipico DAC di un microcontroller, ad esempio, potrebbe specificare un DNL di ±2 LSB.

I DAC possono anche essere soggetti a un errore di guadagno lineare, misurato come percentuale sommata all'uscita ideale, che spesso incrementa di un altro 0,5% la tensione di uscita.

Per un DAC ideale, il tracciato dei valori di uscita a fronte del contenuto del registro dei dati del DAC sarebbe una linea retta. E sarebbe tale anche aggiungendo gli errori lineari causati dalle variazioni parametriche del circuito di un DAC nel mondo reale. In realtà, quella linea si discosterebbe da una retta per piegarsi verso l'esterno e formare una curva non lineare. Questa non linearità è anche il risultato delle variazioni nel circuito del DAC in funzione di tensione e temperatura. Questo errore di non linearità è detto errore di non linearità integrale (IRL). Per i DAC dei microcontroller può essere di ±4 LSB o più.

Per la generazione della frequenza, la frequenza in uscita più veloce del DAC di un microcontroller è limitata alla frequenza della CPU del microcontroller.

Tutti i DAC richiedono una tensione di riferimento accurata per fornire un segnale analogico di precisione. Nel caso dei moderni microcontroller, tale tensione di solito deriva da un pin dedicato della tensione di riferimento analogica. All'interno del microcontroller, questa tensione di riferimento analogica viene tenuta separata e isolata dalla logica digitale interna per ridurre al minimo il ripple dell'alimentazione. Ci si può tuttavia aspettare una qualche interferenza, seppure minima, dovuta alla logica digitale ad alta velocità. Mentre le periferiche DAC non sono molto suscettibili al ripple dell'alimentazione quando generano onde sinusoidali, il ripple può essere marcato quando è richiesta una tensione di uscita stabile e precisa, oppure quando si genera una voce sintetizzata o un tono musicale.

Anche se una tensione di riferimento più alta può ridurre al minimo l'effetto del ripple dell'alimentazione, tale soluzione impedirebbe al DAC di generare tensioni più basse, riducendone anche la precisione per 1 LSB.

DAC esterni a chip singolo per piccoli segnali

Le periferiche DAC nella maggior parte dei microcontroller possono assicurare una precisione sufficiente per le applicazioni comuni. Vi sono però delle situazioni in cui è richiesta una precisione e/o una velocità estremamente alta. È in questi casi che un DAC esterno diventa una necessità pratica.

Texas Instruments ha una linea di DAC esterni in grado di generare segnali analogici per qualsiasi problema di progettazione. Ad esempio, se lo spazio su scheda è scarso, il DAC a 16 bit DAC80508MYZFT in un contenitore DSBGA misura solo 2,4x2,4 mm. Questo DAC ha otto uscite e può interfacciarsi con la maggior parte dei microcontroller usando un'interfaccia SPI con una velocità di clock fino a 50 MHz (Figura 1).

Schema di DAC80508 di Texas Instruments

Figura 1: DAC80508 si interfaccia con la maggior parte dei microcontroller usando un'interfaccia SPI e ha otto canali di uscita analogica identici. (Immagine per gentile concessione di Texas Instruments)

DAC80508 può usare un riferimento di tensione analogica esterno oppure la tensione di alimentazione digitale del DAC per generare la propria tensione di riferimento interna di 2,5 V con una precisione di ±5 mV. La deriva della tensione di riferimento è di sole 2 parti per milione per grado Celsius (ppm/°C). Questo assicura una tensione di riferimento estremamente stabile sul suo intervallo di temperatura da -40 °C a +125 °C. Opzionalmente, la tensione di riferimento può essere divisa per 2 per fornire segnali analogici con un tetto di 1,25 V.

DAC80508 ha una precisione che la maggior parte delle periferiche DAC dei microcontroller non hanno. INL e DNL sono entrambi di ±0,5 LSB (valore tipico) e ±1 LSB (valore massimo). L'errore di guadagno è di ±0,5% (tipico) e ±1% (massimo). Con una risoluzione di 16 bit, questo livello di precisione è perfetto per convertire i segnali audio digitali in segnali audio analogici. Ad esempio, può essere utilizzato per convertire l'audio digitale con modulazione con codifica a impulsi (PCM) trasmesso su cavi in fibra ottica oppure per convertire l'audio digitale da un dispositivo di storage di dati. Dopo la conversione dell'audio digitale in dati audio a 16 bit, DAC80508 può convertire i dati in segnali audio analogici che vengono inviati attraverso i comuni cavi RCA. Se la tensione di riferimento è impostata a 1,25 V, questa precisione è più che sufficiente per generare segnali audio a livello di linea.

DAC80508 è anche dotato di un amplificatore del guadagno in uscita che può raddoppiare la tensione di uscita, generandone una che è due volte quella di riferimento.

Generare forme d'onda analogiche con DAC80508 tramite l'interfaccia SPI è semplice. Ogni pacchetto di comandi SPI inviato a un registro dei dati del DAC è largo 32 bit e contiene l'indirizzo del canale in cui scrivere, oltre ai dati a 16 bit da scrivere nel registro. Qualsiasi canale di uscita di DAC80508 può essere programmato per generare la tensione di uscita immediatamente dopo la scrittura dei dati nel registro, oppure per conservare tutti i valori nei registri dei dati del DAC finché SPI non scrive in un registro di trasmissione interno. Se scrive un "1" logico in una qualsiasi delle otto posizioni dei bit del registro di trasmissione, viene aggiornata solo quell'uscita del DAC prendendo il valore nel suo registro dei dati. Ciò consente di generare segnali sincroni, utili per generare forme d'onda per apparecchiature di test.

Evitare errori di segnale e rumore

Se usato in ambienti industriali rumorosi, un'interferenza occasionale potrebbe essere inevitabile, specie in presenza di tensioni elevate. Per impedire errori del segnale di uscita dovuti all'interferenza nella SPI, DAC80508 può opzionalmente generare una checksum di 8 bit al termine di ogni pacchetto SPI (Figura 2). Se la checksum è valida, la scrittura nel registro dei dati del DAC ha luogo. Se invece fallisce non verrà scritto nessun dato. Opzionalmente, in questo secondo caso il DAC può abbassare il pin SDO della SPI, fungendo da pin di allarme basso attivo. La responsabilità di intervenire in caso di checksum non valida ricade sul firmware del microcontroller.

Bit Campo Descrizione
31 RW Identifica la comunicazione come comando di lettura o scrittura nel registro indirizzato. R/W = 0 imposta un'operazione di scrittura. R/W = 1 imposta un'operazione di lettura.
30 CRC-ERROR Bit riservato. Impostato a zero.
29:28 Riservato Bit riservati. Devono essere riempiti con degli zeri.
27:24 A[3:0] Indirizzo del registro. Specifica il registro a cui accedere durante l'operazione di lettura o di scrittura.
23:8 DI[15:0] Bit del ciclo di dati. Se è un comando di scrittura, i bit del ciclo di dati sono i valori da scrivere nel registro con l'indirizzo A[3:0]. Se è un comando di lettura, i bit del ciclo di dati sono dei valori trascurabili.
7:0 CRC Polinomio del CRC a 8 bit.

Figura 2: Struttura del pacchetto SPI a 32 bit. Quando il pacchetto SPI del registro dei dati del DAC DAC80508 contiene una checksum di 8 bit, prima viene inviato l'MSB, con gli ultimi bit (7:0) che contengono la checksum. La checksum viene automaticamente generata da DAC80508. (Immagine per gentile concessione di Texas Instruments)

A prescindere dalla precisione dichiarata di qualsiasi DAC, la si può assicurare solo usando un'alimentazione pulita. È fondamentale che VDD per DAC80508 abbia basso rumore e nessun ripple. Se DAC80508 viene usato in un convertitore c.c./c.c., occorre essere ancora più attenti perché queste alimentazioni sono per loro natura estremamente rumorose. Il filtraggio su VDD è importante, pertanto occorre posizionare un condensatore tra 1 e 10 µF, assieme a uno da 0,1 µF, tra VDD e la terra analogica. Si dovrebbero usare condensatori ceramici a bassa ESR e li si dovrebbe posizionare il più vicino possibile al pin VDD.

Le uscite dei segnali analogici dovrebbero essere tenute vicino ai bordi della scheda a circuiti stampati e ben isolate dai componenti digitali. Questo serve non solo a evitare interferenze sulle uscite analogiche del DAC ma anche a impedire che questi segnali analogici interferiscano con gli altri segnali sulla scheda.

DAC ad alta velocità e alte prestazioni

A volte un'applicazione senza compromessi richiede prestazioni estremamente elevate. I DAC possono generare segnali anche nel campo dei gigahertz. La cosa può essere particolarmente importante per le apparecchiature radar quando circuiti analogici diretti non riescono a creare la precisione richiesta per il radar. Per queste applicazioni, si può utilizzare il DAC a due canali RF ad alta velocità DAC38RF82IAAV di Texas Instruments per generare forme d'onda superiori a 1 GHz in un contenitore BGA relativamente piccolo di 10x10 mm (Figura 3).

Schema del DAC ad altissime prestazioni DAC38RF82 di Texas Instruments

Figura 3: DAC38RF82 è un DAC ad altissime prestazioni in grado di generare forme d'onda oltre 1 GHz. Si interfaccia con un microprocessore host utilizzando l'interfaccia JESD204B a 12,5 Gbit/s, a bassa potenza e otto canali. (Immagine per gentile concessione di Texas Instruments)

DAC38RF82 supporta tre risoluzioni. Quando è impostato per una risoluzione di 16 bit, può generare segnali RF fino a 2 GHz. Quando si seleziona una risoluzione di 12 bit, può generare segnali a 2,66 GHz. La modalità più veloce si ha quando è impostato su una risoluzione a 8 bit che gli permette di generare forme d'onda a 4,5 GHz. Queste velocità vanno indubbiamente oltre le capacità di qualsiasi periferica DAC di microcontroller su chip.

DAC38RF82 è abbastanza potente da essere usato in trasmettitori in banda base come le torri di celle e può trovare impiego anche per la generazione di forme d'onda personalizzate per applicazioni come le apparecchiature di test di fascia alta. DAC38RF82 può essere usato anche per la generazione di segnali radar per veicoli autonomi.

Questo dispositivo è più complesso di DAC80508. La generazione di segnali fino a 4,5 GHz richiede un'interfaccia dati molto veloce. DAC38RF82 usa un'interfaccia dati seriale JESD204B che in modalità 8 bit ha una velocità di 9 Gbit/s. A queste velocità, il dispositivo si interfaccia con un FPGA o un ASIC.

Quando è utilizzato in modalità 12 o 16 bit, DAC38RF82 può generare due forme d'onda RF. In modalità 8 bit ad alta velocità, è supportata solo una forma d'onda. Richiede tre tensioni di alimentazione: a 1 V, 1,8 V e -1,8 V. Date le esigenze delle applicazioni tipiche del dispositivo, queste tensioni di alimentazione devono essere molto pulite e senza ripple. Idealmente, ognuna delle tre sezioni principali e relativamente indipendenti del DAC - il sottosistema digitale, il sottosistema analogico e il sottosistema di clock - avrebbe una propria alimentazione separata per evitare qualsiasi interazione non voluta.

Il DNL del DAC è di ±3 LSB tipico, il suo INL è di ±4 LSB tipico e ha un errore di guadagno tipico di ±2%. La precisione per una determinata applicazione può essere garantita selezionando i valori appropriati del registro dei dati del DAC durante il test.

Avvio dello sviluppo di DAC38RF82

Quando si generano frequenze così alte con una precisione sufficiente, una parte essenziale del processo di sviluppo è rappresentata dalla scheda di valutazione. DAC38RF82 può avvalersi della scheda di valutazione e di sviluppo DAC38RF82EVM che supporta tutte le caratteristiche di questo DAC di fascia alta. Richiede una scheda di interfaccia di acquisizione dei dati TSW14J56EVM per generare i segnali digitali che si interfacciano con DAC38RF82EVM. La scheda di acquisizione dei dati si interfaccia con un PC tramite un'interfaccia USB 3.0.

Immagine di DAC38RF82EVM (a sinistra) e TSW14J56EVM (a destra) di Texas Instruments

Figura 4: Attraverso un'interfaccia JESD204B, a DAC38RF82EVM a sinistra vengono alimentati i dati digitali generati da TSW14J56EVM a destra, generando i segnali RF per i test. (Immagine per gentile concessione di Texas Instruments)

Il software di valutazione fornito contiene tutto ciò che serve per valutare, testare e programmare DAC38RF82 per l'applicazione di destinazione.

Quando si utilizza un dispositivo ad alta velocità come questo, occorre fare molta attenzione al layout. DAC38RF82 deve trovarsi sul bordo della scheda e separato il più possibile da tutti gli altri componenti. Occorre rispettare rigorosamente la buona pratica di tracce RF brevi e di condensatori di bypass tra i pin di alimentazione e la terra. Inoltre, i condensatori di bypass devono essere dotati di fori di vias sulla piazzola, con stub minimi su quei condensatori per evitare l'induttanza parassita. Per le tracce di uscita, poi, i progettisti dovrebbero usare una guida d'onda coplanare di 100 Ω differenziale.

Conclusione

I microcontroller con DAC su chip per uso generale sono appropriati per generare tensioni e forme d'onda abbastanza precise nell'intervallo del kilohertz. Invece, per generare tensione di precisione o altissima velocità, è possibile utilizzare DAC esterni che migliorano significativamente la precisione e le prestazioni dell'applicazione, ma l'alimentazione e il layout richiedono alcuni accorgimenti in fase di progettazione.

DigiKey logo

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

Informazioni su questo autore

Image of Bill Giovino

Bill Giovino

Bill Giovino è un ingegnere elettronico con un BSEE ottenuto a Syracuse University, ed è uno dei pochi ad essere passati con successo da progettista, a ingegnere delle applicazioni sul campo, al marketing tecnologico.

Da oltre 25 anni, Bill promuove le nuove tecnologie per un pubblico tecnico e non tecnico a nome di molte aziende, tra cui STMicroelectronics, Intel e Maxim Integrated. In STMicroelectronics, Bill ha contribuito a guidare i primi successi dell'azienda nel settore dei microcontroller. Con Infineon, Bill ha orchestrato i primi successi di progettazione di microcontroller dell'azienda nel settore automotive statunitense. In qualità di consulente di marketing per la sua società CPU Technologies, Bill ha aiutato molte aziende a trasformare prodotti di secondo grado in storie di successo.

Bill è stato uno dei primi ad adottare l'Internet delle cose, compresa l'integrazione del primo stack TCP/IP completo su un microcontroller. Bill è fedele al motto "Le vendite guidate dall'educazione" e tiene molto alla crescente importanza di comunicazioni chiare e ben scritte nella promozione di prodotti online. È moderatore del famoso gruppo Sales & Marketing di LinkedIn Semiconductor e parla correntemente di B2E.

Informazioni su questo editore

Editori nordamericani di DigiKey