1
Práctica 13: Caracterización de Conversores ADC Jonathan M. Blandín, Anthony J. Velasco, Universidad de Cuenca
Resumen En este este documento se expl expl icar a detall adamente adamente como — En se reali zó termómetr termómetr o digi tal basado basado en en u n con versor versor anal ógico digi tal mediante el el A DC0804 y conju ntamente se se implementó un código código en VH DL para poder visuali zar zar en los displays de un F PGA . el ni vel vel de temperatur temperatur a en que se encuentra
Código, Conversor, Displays, FPGA, Temperatura, Visualizar, VHDL. Palabras
Análogo, Clave — Análogo,
Digital,
I. TEMA
C
Aracterización de Conversores Analógicos a Digital.
II. OBJETIVOS Utilizar un conversor de señal analógica a digital para implementar un termómetro digital.
B. Objetivos Específicos
Verificar el funcionamiento del dispositivo ADC0804. Comprobar el principio de operación de un convertidor analógico – analógico – digital. digital. Conocer y comprender las especificaciones de una ADC, tales como precisión, tamaño de paso, tiempo de conversión. Comprender el principio de operación y utilidad de un transductor. Emplear correctamente los dispositivos electrónicos, mediante la revisión de las hojas características.
III. MATERIALES
IV. SUSTENTO TEÓRICO A. Definición de Términos
A. Objetivo General
8 LEDs 8 Cables Dupont Hembra-Macho. 1 Fuente de alimentación (5V - DC) 1 Tarjeta FPGA Cyclone II de ALTERA modelo DE2 1 Software “Quartus II 13 Web Free Edition” 1 PC Manuales de programación y configuración 1 Protoboard 1 Plataforma NI-Elvis. 1 Set de cables de conexión (bananas, multipar, lagartos) 1 Pinza
1 ADC 0804 (Convertidor Análogo-Digital) 1 Resistencia de 10KΩ 1 Condensador de 150pF 2 Potenciómetros de 5K
Documento recibido el 01 de Febrero de 2015. Este proyecto se realizó en la Universidad de Cuenca, en la Escuela de Electrónica y Telecomunicaciones. J. M. Blandín estudia en la en la Universidad de Cuenca, en la Escuela de Electrónica y Telecomunicaciones, Av. 12 de Abril y Agustín Cueva, CuencaEcuador (teléfono: 593-7 409 2219; e-mail:
[email protected]) A. J. Velasco estudia en la en la Universidad de Cuenca, en la Escuela de Electrónica y Telecomunicaciones, Av. 12 de Abril y Agustín Cueva, CuencaEcuador (teléfono: 593-7 409 2219; e-mail:
[email protected])
1. Cuantización Consiste en medir el valor de tensión de cada una de las muestras tomadas de la señal de entrada para el proceso de conversión. 2. Error de Cuantización Se define como el error en medición debido al tamaño del paso utilizado para realizar la medición, aunque se reduzca r eduzca el tamaño del paso se reduce pero no se elimina este potencial error. 3. Resolución Se define como el cambio más pequeño que puede ocurrir en la salida como resultado de un cambio en la entrada. 4. Rango Dinámico Se define a partir de los valores de tensiones mínima y máxima que garantiza el funcionamiento del conversor. 5. Span También llamado Rango, es la diferencia entre los valores analógicos mínimo y máximo. 6. Tiempo de Adquisición Es el tiempo que el sistema Sample-and-Hold debe permanecer en estado de muestreo para asegurar que el estado de retención se encuentre en el rango de error especificado. 7. Tiempo de Conversión Es el tiempo que toma realizar la cuantización de la señal de entrada, por tanto depende directamente de la naturaleza de la señal de entrada.
2
V. DESARROLLO DE LA PRÁCTICA A. Di señ ar e implementar un term ómetr o digital , de 0º a 99ºC. 1.
Diagr ama de bloques par a el sistema di señ ado
Para nuestro sistema de temperatura tenemos bloques como: El transductor de temperatura, el convertidor análogo-digital y el sistema de visualización.
Fig. 1. Diagrama de bloques para el diseño de un Frecuencímetro.
2.
de ese tipo y lo que todos los Datasheets, tutoriales, foros y personas dedicadas a esto recomendaban utilizar un microprocesador para lograr la manipulación de esos bits. Según esto nosotros utilizamos el FPGA como procesador de esta señal y así la salida del ADC la pasamos a la misma para según el código que se muestra a continuación. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity term is port(tempin: in std_logic_vector(7 downto 0); a1,b1,c1,d1,e1,f1,g1 : out std_logic; a2,b2,c2,d2,e2,f2,g2 : out std_logic ); end term; architecture vhdl of term is signal unidades, decenas:std_logic_vector(6 downto 0); signal countu, countd:std_logic_vector(7 downto 0);
Especificaci ón de los bloques del sistema diseñ ado
El sistema de temperatura cuenta con un transductor (convertidor de señal análoga en señal eléctrica), que para nuestro caso vamos solamente a emular el mismo mediante un potenciómetro para variar el voltaje asumiendo un cambio en la señal análoga. Este voltaje va a variar entre 0 y 5V. Una vez que obtenemos la señal eléctrica, la misma la introducimos en el ADC para que haga su respectivo procesamiento y poder obtener a la salida una combinación digital (palabra binaria de 8-bits). La configuración del ADC se la consiguió mediante una combinación de 1 resistencia de 10kΩ, un condensador de 150pF y dos potenciómetros de 5kΩ, según un esquema que se encontró en el data sheet del ADC0804.
La función de uno de los potenciómetros es de regular el voltaje de referencia para que según ese voltaje se pueda calibrar el span y con ello la diferencia de valores máximo y mínimo; en otras palabras se regula el potenciómetro para poder obtener una salida de acuerdo a nuestras necesidades y según como queramos que varíe nuestro vector de 8-bits. La función del otro potenciómetro es hacer de transductor, con este conseguimos variar el voltaje en los terminales de entrada del comparador del ADC y consecuentemente variar los bits de salida. Otra parte de nuestro sistema es el de visualización el mismo que lo implementamos gracias al FPGA y sus puertos E/S GPIO. No pudimos implementar la visualización ya que según investigamos no existen en el mercado decodificadores
begin process (tempin) begin if tempin<"00001010" then countd<="00000000"; countu<=tempin; elsif tempin>="00001010" and tempin<"00010100" then countd<="00000001"; countu<=tempin-10; elsif tempin>="00010100" and tempin<"00011110" then countd<="00000010"; countu<=tempin-20; elsif tempin>="00011110" and tempin<"00101000" then countd<="00000011"; countu<=tempin-30; elsif tempin>="00101000" and tempin<"00110010" then countd<="00000100"; countu<=tempin-40; elsif tempin>="00110010" and tempin<"00111100" then countd<="00000101"; countu<=tempin-50; elsif tempin>="00111100" and tempin<"01000110" then countd<="00000110"; countu<=tempin-60; elsif tempin>="01000110" and tempin<"01010000" then countd<="00000111"; countu<=tempin-70;
3 elsif tempin>="01010000" and tempin<"01011010" then countd<="00001000"; countu<=tempin-80; elsif tempin>="01011010" and tempin<"01100100" then countd<="00001001"; countu<=tempin-90; end if; end process; a1 <= unidades(0); b1 <= unidades(1); c1 <= unidades(2); d1 <= unidades(3); e1 <= unidades(4); f1 <= unidades(5); g1 <= unidades(6); a2 <= decenas(0); b2 <= decenas(1); c2 <= decenas(2); d2 <= decenas(3); e2 <= decenas(4); f2 <= decenas(5); g2 <= decenas(6);
Fig. 2. Asignación de Pines para el sistema digital en FPGA.
with countu Select unidades<= "1000000" when "00000000", "1111001" when "00000001", "0100100" when "00000010", "0110000" when "00000011", "0011001" when "00000100", "0010010" when "00000101", "0000010" when "00000110", "1111000" when "00000111", "0000000" when "00001000", "0010000" when "00001001", "0010000" when others; with countd Select decenas<= "1000000" when "00000000", "1111001" when "00000001", "0100100" when "00000010", "0110000" when "00000011", "0011001" when "00000100", "0010010" when "00000101", "0000010" when "00000110", "1111000" when "00000111", "0000000" when "00001000", "0010000" when "00001001", "0010000" when others; end vhdl;
Fig. 3. Esquema físico del ADC.
Fig. 4. Funcionamiento de la parte de visualización en FPGA.
3.
Descripción de implementación
las
dificultades
en
la
En cuanto a la circuitería no se tuvo dificultades ya que se siguió esquemas que vienen por defecto para el convertidor
4 analógico a digital pero si se tuvo problemas con la programación VHDL ya que no se pudo convertir a decimal los bits que entraban al FPGA entonces se procedió a realizar la manipulación con un vector de 8-bits. Para simplificar el procesamiento de estos bits nosotros truncamos a la visualización en el estado 99 ya que al tratarse de números binarios de 8-bits no encontramos la forma de lograr una función lógica para relacionar los 256 estados con la máxima temperatura de 99. Según esto nuestro máximo voltaje para 99 era de 2V y después de esto se mantiene en 99 siempre.
4.
Pr eci sión de di señ o
Según lo que logramos ver y manipular, nuestro diseño basado en esquemas y códigos simples tiene una precisión bastante buena, al variar el potenciómetro con un paso moderado obtuvimos todos los valores desde el cero hasta el 99 en de 0 a 2V respectivamente, lo que nos indica que consta de un alto grado de precisión ya que cada estado tiene un valor de 0.02V.
VI. BIBLIOGRAFÍA [1] R. J. Tocci, Neal S. Widmer., and Gregory L. Moss., Sistemas digitales. Principios y aplicaciones, 10th ed. México, 2007. [2] N. S. Widmer, Sistemas digitales: principios y aplicaciones. Pearson Educación, 2003.
VII. CONCLUSIONES
Los circuitos de conversión analógico a digital permiten ampliar el campo de aplicación de la electrónica digital, ya que las variables físicas tienen un comportamiento analógico y no digital, por tanto para el procesamiento de una variable física es necesario que la misma sea traducida a un equivalente digital que pueda ser manejado por los distintos circuitos digitales. Uno de los parámetros más importantes a tener en consideración en un ADC es su resolución, ya que para ciertas aplicaciones puede requerirse una gran precisión, la cual aumenta conforme lo hace la resolución, para este fin se puede aprovechar el ajuste del span, en caso de que sea conocido que los valores de entrada se encuentran en un rango definido, ya que si se toma la escala completa es posible que pequeños cambios en la variable de entrada no sean detectados provocando inconvenientes en el sistema. Se recomienda tener cuidado al realizar las configuraciones del circuito, por ejemplo en el valor de Vref/2 o la señal de entrada en el pin WR, ya que de no estar calibrados correctamente el circuito no funciona correctamente.
VIII. R ECOMENDACIONES
Se recomienda verificar el circuito antes de energizarlo para poder prever un posible cortocircuito, daño de materiales o posibles valores erróneos en la práctica. Se recomienda hacer las prácticas con calma para disminuir los problemas que se pueden producir durante la misma. Se recomienda disponer de un esquema de distribución de pines para facilitar el armado y posibles fallas. Para programar en VHDL, se recomienda ver ejemplos realizados para empezar el código basándose en los mismos. Se recomienda tener facilidad al manual de usuario para poder configurar los puertos de E/S de la FPGA.