Generare una tensione analogica con un circuito digitale (I)

Generare una tensione analogica con un circuito digitale (I)

In quest’articolo si affronterà in dettaglio il metodo per generare una tensione analogica utilizzando un circuito digitale (la rete di resistenza conosciuta come R/2R). Questo metodo necessita di un numero di pin del microcontrollore disponibili da utilizzare soltanto per questo specifico compito. Si tratta di un metodo molto conveniente, in quanto richiede solo un paio di resistenze di soli due valori diversi.

Il circuito mostrato nella Figura 1 descrive un DAC a 8-bit costruita attorno ai pin del microcontrollore disponibili, usando resistenze di 2kOhm e 1kOhm. Per semplificare la “Bill of Materials”, è possibile utilizzare anche solo resistenze da 1kOhm, usando due di loro in serie, invece di ogni resistenza da 2kOhm.

tensione analogica

Generare una tensione analogica con un circuito digitale

Il vantaggio di questo circuito, al di là del suo bassissimo costo, è la facilità con cui si attiva. Gli 8 pin del microcontrollore utilizzati hanno le stesse funzioni degli 8 bit di un DAC, dove il pin di sinistra fa da LSB e quello destro da MSB. Il codice digitale applicato dal microcontrollore ai suoi pin rappresenta il valore esatto necessario per un DAC legittimo al fine di generare la tensione richiesta:

0000.0000…………..0.000V 
0000.0001…………..0.019V 
1000.0000…………..2.481V 
1111.1111…………..4.981V 

Con questa particolare configurazione è facile aumentare/diminuire il numero di bit del DAC, semplicemente utilizzando più o meno pin del microcontrollore e più/meno rami R/2R. Le immagini che seguono illustrano il valore di uscita simulato per alcuni dei codici digitali che possono essere applicati:

DAC
Figura 2 – 8-bit DAC con codice digitale applicato 1111.1111


Figura 3 – 8-bit DAC con codice digitale applicato 0111.1111


Figura 4 – 8-bit DAC con codice digitale applicato 0000.0001

Va rilevato però che qualsiasi desiderio di utilizzare la tensione generata per un’applicazione reale necessiterà di un buffering con un’alta memoria tampone. La ragione di ciò sta nel fatto che qualsiasi ulteriore carico applicato all’uscita di questo DAC disturba il comportamento della rete R/2R, introducendo così errori. Si può usare un semplice ripetitore di tensione come un buffer, ma bisogna fare particolare attenzione per poter utilizzare un amplificatore operazionale rail-to-rail. Usare un normale amplificatore operazionale introdurrebbe semplicemente degli errori nei due estremi della scala, poiché l’amplificatore non sarà in grado di ripetere la tensione di ingresso che viene generata da questo semplice DAC.

Anche se semplice e conveniente, questo DAC può essere utilizzato come uno convenzionale. Applicare i codici successivi all’ingresso, con un tasso di ripetizione fissa, ci permetterebbe di generare praticamente qualsiasi tipo di segnale analogico, la sua frequenza è limitata soltanto dalla frequenza di campionamento in cui il microcontrollore può produrre i codici digitali.
Naturalmente, come in qualsiasi attività di progettazione, il risultato non è perfetto, in quanto è solo un’alternativa tra i vantaggi e gli svantaggi:

    a) Anche se a basso costo e facile da usare, questa struttura ha anche degli svantaggi: più piccola è la risoluzione, più pin di microcontrollori sono necessari.
    b) Inoltre le resistenze della rete devono essere accuratamente selezionate (è preferito l’1% di tolleranza; usare resistenze con una tolleranza del 5% potrebbero introdurre errori inaccettabili).
    c)Maggiore è la risoluzione di tale DAC, più lento diventa a causa della larga costante di tempo RC per ogni link di RC aggiunto.

Leggi la versione inglese:Generating Analog Voltage with Digital Circuit (I)

12 Comments

  1. giacomobarresi 12 ottobre 2011
  2. Vittorio Crapella 12 ottobre 2011
  3. Alex87ai 19 febbraio 2011
  4. linus 19 febbraio 2011
  5. giuskina 19 febbraio 2011
  6. Fabrizio87 19 febbraio 2011
  7. Arx33 19 febbraio 2011
  8. sorex 19 febbraio 2011
  9. Fabulous 22 settembre 2011
  10. Alex87ai 20 febbraio 2011
  11. slovati slovati 19 febbraio 2010
  12. mingoweb 21 febbraio 2011

Leave a Reply