Está en la página 1de 8

Electrónica + Programación + GNU/Linux

Este blog está dedicado a mis experiencias, proyectos, dificultades y demás en todo lo relacionado a la electrónica y la programación en
general sobre GNU/Linux

ANALÓGICO, DIGITAL, ELECTRÓNICA, NIVEL: INTERMEDIO

¿Cómo funciona un Conversor Digital-Analógico (DAC) R2R?

Fecha: 19 enero, 2021  2 Comentarios


Si querés ver la versión actual de este post entrá acá

Nivel: Intermedio

¿Qué tengo que saber para este post?

Es necesario tener conocimientos de análisis de circuitos electrónicos:

Calculo de resistencias serie y paralelo.


Saber el Teorema de Thévenin.
Saber Teorema de superposición.

—————————————

Estimados si bien esto es un tema que lo se ha tratado muchísimo en Internet e incluso tiene su propia entrada en Wikipedia. Voy a intentar dar mi explicación al
respecto y algunos consejos prácticos al momento de armarla. Empecemos por lo básico:

¿Qué es un DAC o Red R2R?

Bueno, antes que nada debemos entender que estamos hablando de un DAC (Digital-to-Analog Converter) Conversor Digital->Analógico que está construido
únicamente con Resistencias o resistores, dependiendo el país y la traducción. Esto quiere decir que tomaremos un valor digital de una cantidad X de bits y será
traducido a una señal equivalente analógica. Por ejemplo, si tenemos un DAC de 3 bits alimentado con 5V , el 101 se traducirá a un valor aproximado de 3,125V .
Ejemplo de señal de salida de un DAC de 3 bits.

Por lo tanto al contrario de un ADC (Analog-to-Digital Converter), donde un valor analógico se transforma en un valor digital, aquí tenemos todo lo contrario. Muy bien,
entonces pasamos bits, unos y ceros a valores fijos de voltaje. Ese es el principio, ahora ¿cómo funciona?

Anuncio publicitario

High - performance CE ...

$24.00

Cómo mencioné al principio es una red que se construye únicamente con resistencias, por lo tanto, estarán en juego las caídas de potencial eléctrico (tensión) en cada
una de ellas y de donde tomemos las entradas y de dónde la señal de salida. Veamos cómo funciona esto en un divisor de tensión con 2 resistencias iguales de valor R:
Divisor de tensión con R1=R2

En la imagen anterior podemos observar que el voltaje medido es Vout = VCC x (R / 2R) . Simplificando el valor de R : Vout = VCC x 1/2 => Vout = VCC/2 .
Esto será importante para entender más adelante el funcionamiento del DAC.

¿Cómo se construye una Red R2R?

A modo de ejemplo, se mostrará a continuación cómo se construye una Red R2R de 4 bits:

En la imagen anterior se observan los bits de b3 a b0 siendo este último el bit menos significativo (LSB), es decir el que menos aporta a la ecuación. Hay que notar que la
última resistencia de la red tiene valor 2R a diferencia de las que interconectan los bits de entrada que tienen el valor R. Las resistencias que están en serie con los bits
de entrada siempre son de valor 2R. Pero no necesitan creerme que el b0 es el que menos aporta, vamos a demostrarlo. Aquí es donde se pone interesante la cuestión.
¿Cómo funciona un DAC R2R?

Para poder entender cuanto aporta cada bit debemos «pararnos» desde el punto de vista de ese bit sin considerar a los demás. Es decir, aplicar el teorema de la
superposición, donde consideramos el aporte de cada bit por separado para luego sumar los aportes individuales. Como el que da más trabajo de realizar es el menos
significativo, empezaremos a analizar desde allí. Una vez considerado, como el único que aporta algo al circuito se vería más o menos así:

A partir de aquí, aplicaremos el Teorema de Thévenin, para lo cual permítanme re-dibujar el circuito de la siguiente manera y calcular la VTH que es simplemente un
divisor resistivo con 2 resistencias iguales
quedando VTH= VCC/2 . Y que la RTH queda como 2 resistencias iguales en paralelo, sabiendo que R//R = R/2 , pero
cómo veremos a continuación nos quedará 2R//2R = 2R/2 = R

A partir de este punto es todo cuesta abajo, porque el patrón se repite una y otra vez. Es decir, fijémosnos que la RTH cuyo valor es R nos queda en serie con la R del
circuito y VCC/2 es el nuevo valor de fuente. La RTH siempre es 2R//2R = R .
Notemos que la primera vez fue VCC/2 , ahora es VCC/4 y si seguimos iterando, en la próxima será VCC/8 y finalmente VCC/16 , que es lo que finalmente aporta el
b0 al DAC. Notemos que al dividir constantemente por 2 es lo mismo que considerar VCC/2X donde X=b-n y b es la cantidad de bits del DAC y n la posición
del bit: bn . Por lo tanto, el aporte del b0 es: VCC/2(4-0) = VCC/16 como habíamos predicho de nuestro análisis «predictivo» de Thévenin.

Anuncio publicitario
;

High - performan…

¿Qué ocurre con los otros bits? Ok, básicamente es el mismo análisis, pero al principio tendremos que simplificar algunas resistencias, es decir, calcular su Req que
sorpresa-sorpresa tendrá el valor R, pero siempre el aporte de los bits corresponderá con la formula: VCC/2(b-n) . Finalmente recordando el teorema de la
superposición donde la Vout es la suma individual de los diferentes aportes, veamos algunos ejemplos:
Una de las más grandes ventajas de este cirucito es que su Req es R, de eso no hay dudas. Y la otra es que los valores son prácticamente instantáneos, ya que no hay
ningún componente que pueda generar un retraso considerable en la señal de salida con respecto a la de las entradas.

No es perfecto

Como se podrán dar cuenta hay que tener algunas salvedades, pero solucionables. La primera es la más obvia, nunca se llega a que Vout=VCC , porque por más sumas
parciales que hagamos nunca se llega. Pero si el R2R es de 8 bits, y estos están todos en 1: Vout = VCC (1/2+1/4+1/8+1/16+1/32+1/64+1/128) = VCC x
0,9921875 es decir el ~99.22% de VCC, prácticamente es imperceptible la diferencia. Pero con pocos bits es más notorio y debemos compensarlo. Lo cual, es sencillo, si
ponemos un amplificador operacional con una resistencia fija más un pequeño preset para compensar.

Por otro lado, esto ya aplica a todos los DAC en general, si deseamos que no se noten los «pasos», es decir los saltos de tensión que se ven como escalones en un
osciloscópio, debemos aplicar un pequeño filtro, sabiendo que esto limitará también la frecuencia máxima que podemos llegar a alcanzar. En la salida de este DAC
suele utilizarse un OpAmp para separar la etapa y darle ganancia, así que ya ahí podríamos calcular filtro y ganancia.

Además, debemos contar con las tolerancias de fabricación de los componentes, en este caso, de las resistencias. Con que alguna de estas difieran un poco, ya estamos
en valores erróneos. La precisión es de vital importancia en este circuito.

Construcción de un R2R en la vida real

Este circuito es genial para hacer la práctica, pero debemos tener algunas consideraciones. La primera es que es difícil tener resistencias con una relación R y 2R. Por lo
tanto lo que suele hacerse es utilizar el valor de una resistencia como 2R y entre cada bit del DAC poner esa resistencia en paralelo 2R//2R = R como ya sabemos. Y
una forma de asegurarse el buen funcionamiento es utilizar resistencias de una misma partida (que hayan sido fabricadas al mismo tiempo) y/o utilizar resistencias de
1% de tolerancia (5 bandas con marrón al final). Las resistencias SMD ya tienen un valor de tolerancia del 1% por lo tanto son las ideales para poner en un PCB, además
que no se venden sueltas, sino en rollo, por lo tanto son de la misma partida y fueron fabricadas al mismo tiempo. Al ser fabricadas al mismo tiempo, el error que
presenten será similar o imperceptible entre ellas.
En cuanto a el valor de la resistencia, eso dependerá de su circuito y de lo que quieran implementar. Tampoco es buena idea abusar con la cantidad de bits ya que al ser
exponencial es casi imposible apreciar su funcionamiento, especialmente con voltajes bajos como 5v y 3v3. Yo no me pasaría de los 10 bits como una exageración, donde
el último aporte sería de VCC/210 = VCC/1024 .

Espero que les haya servido o qué sea útil para sus implementaciones. Para la próxima les tengo preparado un programa utilizando este mismo DAC de la foto
CIRCUITO CONVERSOR DAC DIGITAL ELECTRÓNICA ELECTRONICS R2R THEVENIN

Publicado por msavalos

Soy un hobbista: toco la guitarra, mandolina, descompongo en partituras; también soy aficionado a la fotografía, he hecho algún cursillo por ahí; me encanta la
programación, sea de un programa de PC para procesar datos, una interfaz gráfica o un microcontrolador; evidentemente linuxero; y, cayéndose de maduro, geek.
Hincha del más grande, técnico en electrónica, ex-estudiante de ingeniería en electrónica en la UTN FRBA, Técnico Superior en Informática y Profesor. Doy clases en el
nivel medio en el Gobierno de la Ciudad de Buenos Aires e instituciones privadas y a nivel terciario en una sede dependiente de la UTN. Sobre mi afinidad política,
bueno, podría decir que soy militante del Software Libre y medio zurdito (no me ofende). Ver todas las entradas de msavalos

2 comentarios sobre “¿Cómo funciona un Conversor Digital-Analógico (DAC) R2R?”

Añadir comentario
1. Pingback: Programación del DMA en una BluePill (STM32F103) con libOpenCM3 – Electrónica + Programación + GNU/Linux
2. Pingback: Programación del DMA en una Bluepill con libOpenCM3 - Prof. Tute Ávalos

© 2024 ELECTRÓNICA + PROGRAMACIÓN + GNU/LINUX

También podría gustarte