Le convertisseur numérique-analogique R-2R, ou DAC, est un convertisseur de données qui utilise deux résistances de précision pour convertir un nombre binaire numérique en un signal de sortie analogique proportionnel à la valeur du nombre numérique.
Comparé au DAC R-2R, le convertisseur numérique-analogique à poids binaire a une tension de sortie analogique qui est la somme pondérée des entrées individuelles. Cela nécessite donc une large gamme de résistances de précision au sein de son réseau en échelle, rendant son design à la fois coûteux et impraticable pour la plupart des DAC nécessitant des niveaux de résolution plus bas.
Étant donné que le DAC à poids binaire est basé sur un amplificateur opérationnel inversant en boucle fermée utilisant une topologie d’amplificateur de somme, ce type de configuration de convertisseur de données peut bien fonctionner pour un convertisseur D/A d’un faible nombre de bits de résolution. Mais une approche beaucoup plus simple consiste à utiliser un réseau de résistances en échelle R-2R pour construire un Convertisseur Numérique-Analogique R-2R, qui nécessite uniquement deux résistances de précision.
Le réseau de résistances en échelle R-2R utilise juste deux valeurs résistives. Une résistance a la valeur de base « R », et la seconde résistance a le double de la valeur de la première résistance, « 2R », peu importe combien de bits sont utilisés pour constituer le réseau en échelle.
Par exemple, nous pourrions juste utiliser une résistance standard de 1kΩ pour la résistance de base « R », et donc une résistance de 2kΩ pour « 2R » (ou de multiples de cela, car la valeur de base de R n’est pas trop critique). Ainsi, la valeur résistive de 2R sera toujours le double de la valeur de la résistance de base, R. C’est-à-dire que 2R = 2*R. Cela signifie qu’il est beaucoup plus facile pour nous de maintenir la précision requise des résistances le long du réseau en échelle par rapport au DAC de résistance pondérée précédent. Mais qu’est-ce qu’un « réseau de résistances en échelle R-2R » de toute façon.
Réseau de Résistances en Échelle R-2R
Comme son nom l’indique, la description « échelle » provient de la configuration en forme d’échelle des résistances utilisées dans le réseau. Un réseau de résistances en échelle R-2R fournit un moyen simple de convertir des signaux de tension numériques en une sortie analogique équivalente.
Des tensions d’entrée sont appliquées au réseau en échelle à divers points le long de sa longueur et, plus il y a de points d’entrée, meilleure est la résolution du réseau R-2R. Le signal de sortie, en résultat de tous ces points de tension d’entrée, est pris de l’extrémité du réseau qui est utilisé pour alimenter l’entrée inversante d’un amplificateur opérationnel.
Ensuite, un réseau de résistances en échelle R-2R n’est rien de plus que de longues chaînes de résistances connectées en parallèle et en série, agissant comme des diviseurs de tension interconnectés le long de sa longueur, et dont la tension de sortie dépend uniquement de l’interaction des tensions d’entrée entre elles. Considérons le réseau de résistances R-2R de base 4 bits ci-dessous (4 bits parce qu’il a quatre points d’entrée).
Réseau de Résistances en Échelle R-2R 4 Bits
Ce circuit de résistance en échelle 4 bits peut sembler compliqué, mais il s’agit de connecter des résistances ensemble en combinaisons parallèles et en série et de revenir à la source d’entrée en utilisant des lois de circuit simples pour trouver la valeur proportionnelle de la sortie. Supposons que toutes les entrées binaires soient mises à la terre à 0 volts, c’est-à-dire : VA = VB = VC = VD = 0V (BAS). Le code binaire correspondant à ces quatre entrées sera donc : 0000.
Partant de la gauche et en utilisant l’équation simplifiée pour deux résistances parallèles et des résistances en série, nous pouvons trouver la résistance équivalente du réseau en échelle comme suit :
Les résistances R1 et R2 sont en « parallèle » l’une avec l’autre mais en « série » avec la résistance R3. Ensuite, nous pouvons trouver la résistance équivalente de ces trois résistances et l’appeler RA pour simplifier (ou toute autre forme d’identification que vous souhaitez).
Alors RA est équivalent à « 2R ». Maintenant, nous pouvons voir que la résistance équivalente « RA » est en parallèle avec R4 avec la combinaison parallèle en série avec R5.
Encore une fois, nous pouvons trouver la résistance équivalente de cette combinaison et l’appeler RB.
Donc, la combinaison RB est équivalente à « 2R ». Espérons que nous pouvons voir que cette résistance équivalente RB est en parallèle avec R6 avec la combinaison parallèle en série avec R7 comme montré.
Comme auparavant, nous trouvons la résistance équivalente et l’appelons RC.
Encore une fois, la combinaison de résistance RC est équivalente à « 2R » qui est en parallèle avec R8 comme montré.
Comme nous l’avons montré ci-dessus, lorsque deux valeurs de résistances égales sont mises en parallèle, la valeur résultante est de la moitié, donc 2R en parallèle avec 2R équivaut à une résistance équivalente de R. Donc, l’ensemble du réseau de résistances en échelle R-2R de 4 bits, composé de résistances individuelles connectées ensemble en combinaisons parallèles et en série, a une résistance équivalente (REQ) de « R » lorsqu’un code binaire de « 0000 » est appliqué à ses quatre entrées.
Par conséquent, avec un code binaire de « 0000 » appliqué en entrée, notre circuit de convertisseur numérique-analogique R-2R de base à 4 bits ressemblerait à ceci :
Circuit DAC R-2R avec Quatre Entrées Zéro (BAS)
La tension de sortie d’un amplificateur opérationnel inversant est donnée par : (RF/RIN)*VIN. Si nous faisons RF égal à R, c’est-à-dire RF = R = 1, et comme R est relié à la terre (0V), alors il n’y a pas de valeur de tension VIN, (VIN = 0) donc la tension de sortie serait : (1/1)*0 = 0 volts. Donc, pour un DAC R-2R à 4 bits avec quatre entrées mises à la terre (BAS), la tension de sortie sera de « zéro » volts, donc une entrée numérique à 4 bits de 0000 produit une sortie analogique de 0 volts.
Que se passe-t-il maintenant si nous connectons le bit d’entrée VA à +5 volts ? Quelle serait la valeur résistive équivalente du réseau R-2R et la tension de sortie de l’amplificateur opérationnel ?
DAC R-2R avec Entrée VA
L’entrée VA est À HAUT niveau logique « 1 » et toutes les autres entrées sont mises à la terre à un niveau logique « 0 ». Comme le réseau R/2R est un circuit linéaire, nous pouvons trouver la résistance équivalente de Thevenin en utilisant les mêmes calculs de résistance parallèle et en série que ci-dessus pour calculer la tension de sortie attendue. La tension de sortie, VOUT, est donc calculée à 312,5 milli-volts (312,5 mV).
Comme nous avons un réseau de résistances en échelle R-2R de 4 bits, ce changement de 312,5 mV est un seizième de la valeur de l’entrée de +5V (5/0,3125 = 16) ce qui est considéré comme le bit le moins significatif (LSB). Étant le bit le moins significatif, l’entrée VA déterminera donc la « résolution » de notre simple convertisseur numérique-analogique à 4 bits, car le plus petit changement de voltage dans la sortie analogique correspond à un changement d’un seul pas des entrées numériques. Ainsi, pour notre DAC à 4 bits, cela sera de 312,5mV (1/16e) pour une entrée à +5V.
Voyons maintenant ce qui se passe à la tension de sortie si nous connectons le bit d’entrée VB à +5 volts.
DAC R-2R avec Entrée VB
Avec l’entrée VB À HAUT niveau logique « 1 » et toutes les autres entrées à la terre au niveau logique « 0 », la tension de sortie, VOUT, est calculée à 625 mV, ce qui est un huitième (1/8e) de la valeur de l’entrée de +5V (5/0,625 = 8) de tension. Nous pouvons également voir que c’est le double de la tension de sortie lorsque seul le bit d’entrée VA a été appliqué, et nous nous attendons à cela, car c’est le 2ème bit (entrée) donc il a le double du poids du 1er bit.
Voyons maintenant ce qui se passe à la tension de sortie si nous connectons le bit d’entrée VC à +5 volts.
DAC R-2R avec Entrée VC
Avec l’entrée VC À HAUT niveau logique « 1 » et les autres bits d’entrée à un niveau logique « 0 », la tension de sortie, VOUT, est calculée à 1,25 volts, ce qui est un quart (1/4) de la valeur de l’entrée de +5V (5/1,25 = 4) de tension. Encore une fois, nous pouvons voir que cette tension est le double de la sortie du bit d’entrée VB mais aussi quatre fois la valeur du bit VA. C’est parce que l’entrée VC est le 3ème bit donc a le double du poids par rapport au 2ème bit et quatre fois le poids du 1er bit.
Enfin, voyons ce qui se passe à la tension de sortie si nous connectons le bit d’entrée VD à +5 volts.
DAC R-2R avec Entrée VD
Avec seulement l’entrée VD À HAUT au niveau logique « 1 » et les autres entrées à un niveau logique « 0 », la tension de sortie, VOUT, est calculée à 2,5 volts. C’est la moitié (1/2) de la valeur de l’entrée de +5V (5/2,5 = 2) de tension. Encore une fois, nous pouvons voir que cette tension est le double de la sortie du bit d’entrée VC, quatre fois la valeur du bit VB et huit fois la valeur du bit d’entrée VA car c’est le 4ème bit et est donc classé comme le bit le plus significatif (MSB).
Nous pouvons donc voir que si l’entrée VA représente le LSB et donc contrôle la résolution du DAC, et que l’entrée VB est le double de VA, l’entrée VC est quatre fois supérieure à VA, et l’entrée VD est huit fois supérieure à VA, nous pouvons obtenir une relation pour la tension analogique de sortie de notre convertisseur numérique-analogique à 4 bits avec l’équation suivante :
Équation de Tension de Sortie Numérique-Analogique
Où la valeur du dénominateur de 16 correspond aux 16 (24) combinaisons possibles d’entrées pour le réseau en échelle R-2R sur le DAC.
Nous pouvons étendre cette équation davantage pour obtenir une équation DAC R-2R généralisée pour n’importe quel nombre d’entrées numériques pour un convertisseur D/A R-2R, car le poids de chaque bit d’entrée sera toujours référencé à la bit le moins significatif (LSB), nous donnant une équation généralisée de :
Équation Généralisée DAC R-2R
Où : « n » représente le nombre d’entrées numériques dans le réseau de résistances en échelle R-2R du DAC produisant une résolution de : VLSB = VIN/2n.
Il est clairement alors que le bit d’entrée VA lorsqu’il est À HAUT provoquera le plus petit changement dans la tension de sortie, tandis que le bit d’entrée VD lorsqu’il est À HAUT provoquera le plus grand changement dans la tension de sortie. La tension de sortie attendue est donc calculée en sommant l’effet de tous les bits d’entrée individuels qui sont connectés À HAUT.
Idéalement, le réseau en échelle devrait produire une relation linéaire entre les tensions d’entrée et la sortie analogique, chaque entrée ayant une augmentation par étape égale au LSB ; nous pouvons créer un tableau des valeurs de tension de sortie attendues pour les 16 combinaisons des 4 entrées avec +5V représentant une condition logique « 1 » comme suit.
Tension de Sortie du Convertisseur D/A R-2R à 4 Bits
Entrées Numériques | Expression de VOUT | VOUT | |||
D | C | B | A | (8*VD + 4*VC + 2*VB + 1*VA)/24 | en Volts |
0 | 0 | 0 | 0 | (0*5 + 0*5 + 0*5 + 0*5)/16 | 0 |
0 | 0 | 0 | 1 | (0*5 + 0*5 + 0*5 + 1*5)/16 | 0.3125 |
0 | 0 | 1 | 0 | (0*5 + 0*5 + 2*5 + 0*5)/16 | 0.6250 |
0 | 0 | 1 | 1 | (0*5 + 0*5 + 2*5 + 1*5)/16 | 0.9375 |
0 | 1 | 0 | 0 | (0*5 + 4*5 + 0*5 + 0*5)/16 | 1.2500 |
0 | 1 | 0 | 1 | (0*5 + 4*5 + 0*5 + 1*5)/16 | 1.5625 |
0 | 1 | 1 | 0 | (0*5 + 4*5 + 2*5 + 0*5)/16 | 1.8750 |
0 | 1 | 1 | 1 | (0*5 + 4*5 + 2*5 + 1*5)/16 | 2.1875 |
1 | 0 | 0 | 0 | (8*5 + 0*5 + 0*5 + 0*5)/16 | 2.5000 |
1 | 0 | 0 | 1 | (8*5 + 0*5 + 0*5 + 1*5)/16 | 2.8125 |
1 | 0 | 1 | 0 | (8*5 + 0*5 + 2*5 + 0*5)/16 | 3.1250 |
1 | 0 | 1 | 1 | (8*5 + 0*5 + 2*5 + 1*5)/16 | 3.4375 |
1 | 1 | 0 | 0 | (8*5 + 4*5 + 0*5 + 0*5)/16 | 3.7500 |
1 | 1 | 0 | 1 | (8*5 + 4*5 + 0*5 + 1*5)/16 | 4.0625 |
1 | 1 | 1 | 0 | (8*5 + 4*5 + 2*5 + 0*5)/16 | 4.3750 |
1 | 1 | 1 | 1 | (8*5 + 4*5 + 2*5 + 1*5)/16 | 4.6875 |
Vous avez peut-être remarqué que la tension de sortie analogique à échelle pleine pour un code binaire de 1111 n’atteint jamais la même valeur que la tension d’entrée numérique (+5V) car elle est toujours inférieure de l’équivalent d’un bit LSB, (312.5mV dans cet exemple).
Cependant, plus il y a de bits d’entrée numériques (résolution), plus la tension de sortie analogique se rapproche de l’échelle pleine lorsque tous les bits d’entrée sont À HAUT. De même, lorsque tous les bits d’entrée sont BAS, la résolution plus faible du LSB rend VOUT plus proche de zéro volts.
Convertisseur Numérique-Analogique R-2R
Maintenant que nous comprenons ce qu’est un réseau de résistances en échelle R-2R et comment il fonctionne, nous pouvons l’utiliser pour produire un convertisseur numérique-analogique R-2R. Encore une fois en utilisant notre réseau de résistances en échelle R-2R à 4 bits ci-dessus et en l’ajoutant à un circuit d’amplificateur opérationnel inversant, nous pouvons créer un simple convertisseur numérique-analogique R-2R de :
Convertisseur Numérique-Analogique R-2R
Le circuit logique numérique utilisé pour alimenter le convertisseur D/A peut être généré par des circuits logiques combinatoires ou séquentiels, des registres de données, des compteurs ou simplement des commutateurs. L’interface d’un convertisseur D/A R-2R de « n » bits dépendra de son application. Les cartes tout-en-un telles que l’Arduino ou Raspberry Pi ont des convertisseurs numériques-analogiques intégrés, ce qui rend l’interface et la programmation beaucoup plus faciles. Il existe de nombreux DAC populaires disponibles tels que le DAC0808 à 8 bits.
Exemple de Convertisseur D/A R-2R N°1
Un convertisseur numérique-analogique R-2R à 4 bits est construit pour contrôler la vitesse d’un petit moteur à courant continu en utilisant la sortie d’un circuit logique numérique. Si le circuit logique utilise des dispositifs CMOS de 10 volts, calculez la tension de sortie analogique du DAC lorsque le code d’entrée est le nombre hexadécimal « B ». Déterminez également la résolution du DAC.
1). La lettre hexadécimale « B » est égale à onze en décimal. Le nombre décimal onze est égal au code binaire « 1011 » en binaire. C’est-à-dire : B16 = 10112. Ainsi, pour notre nombre binaire à 4 bits de 10112, le bit d’entrée D = 1, le bit C = 0, le bit B = 1 et le bit A = 1.
Si nous supposons que la résistance de rétroaction RF est égale à « R », alors notre circuit de convertisseur D/A R-2R ressemblera à :
Le circuit logique numérique utilise des dispositifs CMOS de 10 volts, donc la tension d’entrée au réseau R-2R sera de 10 volts. Également étant un DAC à échelle de 4 bits, il y aura 24 combinaisons d’entrées possibles, donc en utilisant notre équation ci-dessus, la tension de sortie pour un code binaire de 10112 est calculée comme suit :
Par conséquent, la tension de sortie analogique utilisée pour contrôler le moteur à courant continu lorsque le code d’entrée est 10112 est calculée à : -6,875 volts. Notez que la tension de sortie est négative en raison de l’entrée inversante de l’amplificateur opérationnel.
2). La résolution du convertisseur sera égale à la valeur du bit le moins significatif (LSB) qui est donnée en tant que :
Alors le plus petit changement étape de la tension de sortie analogique, VOUT, pour un changement de LSB à 1 bit dans l’entrée numérique de cet exemple de convertisseur numérique-analogique R-2R à 4 bits est : 0,625 volts. C’est-à-dire que la tension de sortie change par étapes ou incréments de 0,625 volts et non comme une valeur linéaire directe.
DAC R-2R à Comptage Binaire 4 Bits
Espérons qu’à ce stade, nous comprenons que nous pouvons créer un DAC à échelle R-2R en utilisant juste deux valeurs de résistance, une à la valeur de base « R » et l’autre deux fois ou le double de la valeur étant « 2R ». Dans notre exemple simple ci-dessus, nous avons réalisé un DAC à échelle R-2R à 4 bits avec quatre lignes de données d’entrée, A, B, C et D, nous donnant 16 (24) différentes combinaisons d’entrées de « 0000 » à « 1111 ».
Le code binaire pour ces quatre lignes d’entrée numériques peut être généré de plusieurs manières différentes, en utilisant des microcontrôleurs, des circuits numériques, des commutateurs mécaniques ou à état solide. Mais une option intéressante consiste à utiliser un compteur binaire à 4 bits tel que le 74LS93.
Le 74LS93 est un compteur à décalage J-K à 4 bits qui peut être configuré pour compter de 00002 à 11112 (MOD-16) et réinitialiser à zéro (0000) à nouveau par l’application d’un seul signal d’horloge externe. Le 74LS93 est un compteur asynchrone communément appelé « compteur à décalage » en raison de la façon dont les bistables J-K internes réagissent à l’entrée de l’horloge ou de la temporisation produisant une sortie binaire à 4 bits.
La fréquence (ou période) de cette horloge externe ou de ce pulse de temporisation est divisée par un facteur de 2, 4, 8 et 16 par les lignes de sortie des compteurs au fur et à mesure que le pulse d’horloge semble se propager à travers les quatre bascules J-K produisant la séquence de sortie binaire à 4 bits requise de 00002 à 11112.
DAC R-2R à Comptage Binaire 4 Bits
Notez que pour compter de 0000 à 1111, l’entrée externe CLKB doit être connectée à la sortie QA (broche 12) et les pulses de temporisation d’entrée sont appliqués à l’entrée CLKA (broche 14).
Ce simple compteur à 4 bits asynchrone construit autour du compteur à décalage 74LS93 donne la même séquence de comptage que dans le tableau ci-dessus. Lors de l’application d’un pulse d’horloge, les sorties : QA, QB, QC, et QD changent d’un pas.
L’entrée de l’amplificateur opérationnel détecte ce changement d’étape et sort une tension négative (amplificateur inversant) relative au code binaire aux entrées du réseau R-2R. La valeur de tension de sortie pour chaque pas correspondra à celle donnée dans le tableau ci-dessus.
Le compteur à décalage va compter de manière successive avec les quatre sorties produisant une séquence de sortie de valeurs binaires jusqu’au 15ème pulse d’horloge où les sorties sont réglées à 11112 (décimal 15) produisant la tension de sortie négative maximale du convertisseur numérique-analogique.
Au 16ème pulse, la séquence de sortie des compteurs est réinitialisée et le compte revient à 0000, réinitialisant ainsi la sortie de l’op-amp à zéro volts. L’application du prochain pulse d’horloge commence un nouveau cycle de comptage de zéro à VOUT(max).
Nous pouvons montrer la séquence de sortie pour ce simple convertisseur numérique-analogique R-2R comptant de manière asynchrone à 4 bits dans le diagramme chronométrique suivant.
Diagramme Chronométrique du DAC R-2R à 4 Bits
Il est donc clair que la tension de sortie de l’amplificateur opérationnel varie de zéro volts à sa tension négative maximale à mesure que le compteur à décalage compte de 00002 à 11112, respectivement. Ce circuit simple pourrait être utilisé pour faire varier la luminosité d’une lampe connectée à la sortie de l’op-amp, ou faire varier continuellement la vitesse d’un moteur à courant continu de lent à rapide, et de nouveau à lent selon un rythme déterminé par la période de l’horloge.
Dans ce cas, le compteur à décalage et le DAC R-2R sont configurés pour une opération à 4 bits, mais en utilisant des compteurs à décalage binaire couramment disponibles tels que le CMOS 4024 7 bits (÷128), le CMOS 4040 12 bits (÷4096) ou le plus grand compteur CMOS 4060 14 bits (÷16,384) et en ajoutant plus de résistances d’entrée au réseau en échelle R-2R tel que ceux disponibles chez Bourns, la résolution (LSB) du circuit peut être grandement réduite produisant un signal de sortie plus lisse du convertisseur numérique-analogique R-2R.