Il dac a resistori pesati è uno dei modi più chiari per capire come un numero binario possa diventare una tensione analogica. In questo articolo ti mostro come lavora il circuito, come si calcolano uscita e passo di quantizzazione, quali errori diventano critici quando i bit aumentano e perché, nella pratica, la scala R-2R è spesso più comoda. L’obiettivo è darti una lettura utile sia per lo studio sia per un piccolo progetto di laboratorio.
Tre punti chiave da fissare subito
- Ogni bit comanda una resistenza con peso doppio o dimezzato rispetto al precedente, così il contributo di ciascun ingresso resta proporzionale al suo valore binario.
- Il circuito è semplice da capire, ma richiede resistenze molto ben abbinate e un operazionale adatto se vuoi un’uscita pulita e prevedibile.
- Per pochi bit è ottimo come soluzione didattica; oltre quel livello, la scala R-2R o un DAC integrato diventano quasi sempre più sensati.
- La scelta del riferimento, dell’alimentazione e del rapporto di reazione incide più di quanto sembri sul fondo scala reale.
Come funziona la somma pesata dei bit
La logica del convertitore è lineare e, proprio per questo, molto elegante: ogni bit pilota un interruttore che collega la propria resistenza a una tensione di riferimento oppure a massa, a seconda del circuito. Le correnti generate dai singoli rami si sommano all’ingresso di un amplificatore operazionale in configurazione di sommatore invertente, e l’uscita diventa la versione analogica del codice digitale.Il punto decisivo è il peso binario. Il bit più significativo, o MSB, deve contribuire di più; il bit meno significativo, o LSB, di meno. Per ottenere questo risultato si usano resistenze raddoppiate a ogni passo: R, 2R, 4R, 8R e così via. In questo modo il ramo più “forte” conduce più corrente, mentre quelli successivi pesano progressivamente meno.
| Bit | Resistenza tipica | Peso relativo | Effetto sull’uscita |
|---|---|---|---|
| MSB | R | 1 | Contributo massimo |
| Bit intermedio | 2R | 1/2 | Metà del ramo precedente |
| Bit intermedio | 4R | 1/4 | Ulteriore dimezzamento |
| LSB | 8R | 1/8 | Correzione fine del codice |
Io considero questa architettura molto utile per capire il principio della conversione: si vede subito che la grandezza analogica non nasce da un trucco, ma da una somma di correnti scalate in modo coerente. Da qui il passaggio naturale è capire come si traduce questa somma in una tensione reale e in un passo di uscita misurabile.
Come si calcolano uscita, passo e fondo scala
Per un sommatore invertente, la relazione generale è semplice. Se indico con bn-1 il MSB e con b0 il LSB, con valori 0 o 1, l’uscita può essere scritta in forma normalizzata come:
Vout = - (Rf / R) · Vref · (bn-1 + bn-2/2 + bn-3/4 + ... + b0/2n-1)
Se il rapporto di reazione è scelto uguale a 1, cioè Rf = R, il circuito restituisce una scala molto intuitiva: ogni bit aggiunge la sua frazione di Vref, e il codice binario diventa una tensione proporzionale.
Un esempio da 4 bit chiarisce tutto meglio di qualunque formula. Con Vref = 2,5 V e Rf = R, il codice 1011 produce:
Vout = -2,5 · (1 + 0/2 + 1/4 + 1/8) = -3,4375 V
In questo caso il passo di un LSB vale Vref / 2n-1, quindi 2,5/8 = 0,3125 V. È un valore utile per capire la risoluzione: ogni incremento del codice cambia l’uscita di una quantità fissa, sempre la stessa, finché il circuito resta nella sua zona lineare.
Il fondo scala, però, non va interpretato in modo ingenuo. Se vuoi un’uscita con intervallo preciso, per esempio 0-5 V o 0-10 V, devi scegliere bene il rapporto Rf/R oppure aggiungere uno stadio di offset. È qui che molti progetti da banco, pur funzionando, mostrano subito il loro carattere “da laboratorio” più che da strumento finito. Proprio qui emergono i limiti pratici, che con pochi bit si vedono poco ma crescono in fretta.
Perché oltre pochi bit il circuito diventa scomodo
La difficoltà vera non è capire il principio, ma mantenere precisa la gerarchia dei pesi. In un DAC a resistori pesati, il rapporto tra il ramo più piccolo e quello più grande cresce rapidamente con il numero di bit: 1:8 per 4 bit, 1:128 per 8 bit, 1:512 per 10 bit. Già questi numeri fanno intuire il problema.
Più i bit aumentano, più servono resistori con valori molto distanti tra loro e, soprattutto, con rapporti molto accurati. Non conta solo la tolleranza assoluta; conta il matching tra i valori. Se i rapporti non sono coerenti, il DAC smette di essere lineare, compaiono errori di offset e di guadagno e, nei casi peggiori, la monotonicità si rompe.
Ci sono poi altri aspetti che in teoria sembrano secondari e in pratica diventano visibili:
- Correnti di bias dell’operazionale, che disturbano di più quando alcuni rami sono molto resistivi.
- Resistenza degli interruttori, che altera i pesi soprattutto sui bit meno significativi.
- Rumore e stabilità della referenza, perché tutto il calcolo parte da Vref.
- Deriva termica, che fa cambiare i rapporti quando il circuito scalda.
- Saturazione dell’uscita, se l’operazionale non ha abbastanza margine di alimentazione.
Per questo io lo difendo come circuito didattico, ma non lo considero la scelta giusta se l’obiettivo è una conversione robusta, ripetibile e facilmente scalabile. Quando il progetto cresce, conviene ragionare come progettista e non solo come studente.
Come lo progetterei in un piccolo laboratorio
Se devo costruirne uno semplice, parto da un obiettivo molto concreto: 3 o 4 bit, pochi componenti, misura chiara all’oscilloscopio. Una configurazione da banco sensata usa valori nell’ordine di 10 kΩ, perché sono abbastanza bassi da limitare i problemi di bias, ma non così bassi da sprecare corrente inutilmente.
- Scelgo il numero di bit in base al risultato che voglio vedere, non al contrario.
- Imposto un valore base, per esempio R = 10 kΩ.
- Genero la catena con 2R, 4R, 8R e così via, mantenendo i rapporti il più possibile precisi.
- Uso un operazionale con basso bias current e comportamento stabile nella banda che mi serve.
- Controllo l’alimentazione: se l’uscita è invertente e negativa, mi serve una doppia alimentazione oppure una massa virtuale.
- Verifico il fondo scala con un trimmer solo per taratura, non per “curare” un progetto sbagliato.
Un dettaglio spesso trascurato è proprio l’alimentazione. Con un sommatore invertente, l’uscita tende a scendere sotto lo zero; quindi, se lavori in single-supply, devi prevedere un offset o un riferimento intermedio. Altrimenti il circuito entra in saturazione prima ancora di mostrarti una conversione pulita.
Quando io preparo un esempio dimostrativo, preferisco anche tenere Vref a un valore moderato, così da non forzare l’operazionale vicino ai limiti. In un banco prova reale, la semplicità del montaggio vale più di una scala teoricamente perfetta. A quel punto il confronto con la scala R-2R diventa molto più onesto.
Resistori pesati e scala R-2R non sono la stessa cosa
Questa è la distinzione che, secondo me, chiarisce davvero il tema. Le due architetture fanno la stessa famiglia di lavoro, ma con compromessi molto diversi. La scala a resistori pesati è didattica, immediata, lineare da leggere; la R-2R è più elegante dal punto di vista costruttivo e molto più gestibile quando i bit crescono.
| Criterio | Resistori pesati | Scala R-2R | Impatto pratico |
|---|---|---|---|
| Numero di valori resistivi | Uno per bit, tutti diversi | Solo due valori, R e 2R | R-2R è più semplice da assemblare |
| Precisione richiesta | Molto alta sui rapporti | Più gestibile con rete ben abbinata | R-2R è più tollerante in produzione |
| Scalabilità | Buona solo per pochi bit | Buona anche con più bit | R-2R vince quasi sempre oltre i primi test |
| Costo e praticità | Aumentano rapidamente | Più contenuti | R-2R riduce complicazioni e selezione componenti |
| Utilità didattica | Molto alta | Alta, ma meno immediata | Resistori pesati ottimi per capire il principio |
La mia lettura è netta: se voglio mostrare il concetto dei pesi binari, il convertitore a resistori pesati è perfetto. Se invece devo ottenere un’uscita più pulita e ripetibile, scelgo la R-2R o passo direttamente a un DAC integrato. I due approcci non si annullano a vicenda, ma rispondono a esigenze diverse.
Quando questo circuito resta una scelta sensata
Il valore vero di questa architettura non sta nella produzione di massa, ma nella chiarezza. Funziona bene quando vuoi un esperimento didattico, una demo per spiegare la conversione digitale-analogica o un piccolo esercizio di laboratorio con 3-4 bit. In questi casi, la semplicità del ragionamento supera i limiti del montaggio.
Se però ti serve precisione stabile, monotonicità affidabile e una scala di bit più ampia, io non resterei su questa soluzione troppo a lungo. In un progetto serio contano di più la coerenza dei rapporti resistivi, la qualità dell’operazionale, la gestione dell’alimentazione e la calibrazione del fondo scala che non la bellezza teorica dello schema.
In pratica, il convertitore a resistori pesati è un ottimo strumento per capire come i bit diventano tensione, ma non è quasi mai la strada più efficiente quando il progetto deve crescere. Se lo tratti per quello che è, un circuito didattico molto istruttivo e un prototipo utile per pochi bit, ti restituisce esattamente il suo miglior valore: farti vedere, con pochissimi componenti, come nasce davvero una grandezza analogica a partire dal digitale.