conversor ad

21
Fundamentos ADC | JulioZV JULIOZEBADUA BLOG CONVERSOR ANALÓGICO A DIGITAL (ADC)

Upload: julio-zebadua

Post on 04-Aug-2015

1.652 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Conversor AD

Fundamentos ADC | JulioZV

JULIOZEBADUA BLOG

CONVERSOR ANALÓGICO A DIGITAL (ADC)

Page 2: Conversor AD

Pagina en Blanco Intencionalmente

Page 3: Conversor AD

Conversión Analógica a Digital (ADC)

Julio C. Zebadúa Vázquez

Revisión 1.0, México, 2012

Pagina web: http://juliozebadua.blogspot.mx/

Derechos Reservados:

Esta obra es propiedad intelectual de su autor como los derechos de

publicación y reproducción. Esta licenciada por Creative Commons

bajo; Atribución-No Comercial-Compartir Igual 2.5 (CC BY-NC-SA 2.5),

usted puede derivar obras de esta, no puede comercializar ni las

nuevas obras como la original.

Nota importante:

La información contenida en esta obra tiene un fin exclusivamente

didáctico y, por lo tanto, no esta provisto su aprovechamiento a nivel

profesional o industrial. Las indicaciones técnicas y los programas

incluidos, han sido elaborados con gran cuidado por el autor y

reproducidos por normas de control. El autor no será jurídicamente

responsable por: errores u omisiones; daños y perjuicios que se

pudieran atribuir al uso de la información comprendida en esta guía,

ni por la utilización indebida que pudiera dársele.

*Las Marcas Registradas, logotipos y/u otros elementos de propiedad intelectual

de terceros, pertenecen a cada uno de sus propietarios, cuando se mencione

alguno de estos dentro de esta obra es únicamente a manera de cita de

referencia, como fuente de información que se encuentran disponibles de manera

pública en sus respectivos sitios web.

Page 4: Conversor AD

Acerca del Tutorial

Esta obra tiene la finalidad de ser una guía rápida, informativa y didáctica para el

usuario final. La conversión analógica a digital como objeto de estudio en la rama

de la ingeniería es un tema complejo y requiere de diversos temas tanto físicos y

matemáticos para su trabajo y explicación. Por consiguiente en esta obra no

tocaremos esos temas, dejando al usuario interesarse más por esta materia y

considerar la investigación en diversas fuentes de información existente, que se

adapte a sus requerimientos y campo de estudio e implementación.

Citaremos de manera de referencia para el usuario algunos temas que deben de

considerar para el trabajo de la conversión analógica a digital:

Transformada de Fourier

Análisis de Fourier

Transformada de Laplace

Transformada Z

Estadística

Resistividad

Temperatura

Ecuaciones de Maxwell

Teoría de Circuitos

Semiconductores

Entre muchos otros que dependerán de la finalidad del estudio. En las siguientes

unidades se pretenderá dar una explicación concisa del uso de la Conversión

Analógica y Digital que abreviaremos en muchos casos con su acrónimo en

ingles ADC, con los microcontroladores (MCU, por su abreviación en ingles) más

usados a nivel profesional o académicamente. Al llegar al Capitulo 2, se

recomienda la lectura de la hoja de datos del MCU u cualquier otro componente

ahí colocado.

Los métodos de programación, estructura del programa, microcontroladores

(MCU), técnicas de programación, software y hardware, que se mostraran a lo

largo del trabajo no son necesariamente obligatorios, dependen de las

habilidades del desarrollador, material disponible y conocimiento adquirido. Por

ultimo, debo aclarar que mis conocimientos son limitados, no domino ninguno de

los temas, ni pretendo expresar nada más que lo mostrado en este trabajo,

pretendo mostrar algunas anécdotas, formas, información y conocimiento

obtenido durante mis estudios o trabajos.

Page 5: Conversor AD

Índice

Capitulo 1 ......................................................................................................................... 5

Introducción .................................................................................................................. 5

Conversión Analógica a Digital ................................................................................... 6

Capitulo 2 ......................................................................................................................... 7

Convertidor Analógico a Digital en MCU .................................................................... 7

Familia Microchip ......................................................................................................... 7

Operación ........................................................................................................................ 9

Registros ADRESH y ADRESL ........................................................................................ 9

Requerimientos de adquisición A/D ............................................................................. 12

RELOJ PARA LA CONVERSIÓN A/D ............................................................................ 15

¿CÓMO UTILIZAR EL CONVERTIDOR A/D? ............................................................. 16

Conclusión ..................................................................................................................... 19

Bibliografía ..................................................................................................................... 20

Page 6: Conversor AD

Capitulo 1

Introducción

La conversión analógica a digital está en todas partes de nuestro alrededor. En

muchos equipos electrónicos esta presente un convertidor analógico-digital que

enlaza nuestro mundo físico a las máquinas de cómputo digital.

De manera personal es una de las funciones que más e usado en el desarrollo de

mis circuitos y esto es por cuestiones de manipulación de sensores. Los sensores

que podemos considerar del tipo no industrial (es estándar usar salida de

corriente la mas usada 4-20 mA) manejan una salida analógica o en su caso

digital (SPI e I2C como protocolo mas usado) es por eso que existe una gran

mayoría de sensores de los cuales nos entregan sus datos en forma de voltaje, de

ahí la importancia de usar el ADC.

Muchas de las funciones del procesamiento de señales son tan simples que el

procesamiento analógico responde a las necesidades (amplificación de audio,

filtrado, etc.). En situaciones más complejas, el procesamiento analógico carece

de la funcionalidad requerida. El procesamiento de señal digital ofrece

extensiones importantes de esta funcionalidad. Las ventajas más importantes del

procesamiento digital contra el analógico es la capacidad de que un dispositivo

realice el almacenamiento perfecto de señales digitalizadas, la relación ilimitada

señal-ruido, la posibilidad de realizar cálculos complejos, y la posibilidad de

adaptar el algoritmo del cálculo a las circunstancias cambiantes.

Figura 1.0 Representación del ADC

Page 7: Conversor AD

Conversión Analógica a Digital

El convertidor analógico-digital compara la señal de entrada a un valor derivado

de una referencia por medio de un convertidor digital-analógico, fig. 1,1. Las

funciones básicas de un convertidor analógico a digital son el tiempo y

discretización de la amplitud. Las partes de los circuitos que implementan estas

funciones es la muestra –o- seguimiento-y mantener el circuito en el que la toma

de muestras se lleva a cabo, el convertidor digital-analógico y un mecanismo de

comparación de nivel.

El circuito comparador es la ubicación donde los cambios de señal son

previamente procesados de forma analógica en una decisión digital. Después del

comparador un circuito digital procesa las decisiones en una representación

digital de la señal utilizable.

El diseño de ADC’s pueden ser realizados desde el uso de comparadores,

amplificadores operacionales, registros, decodificadores, multiplexores, buffers,

resistencias, entre otros componentes electrónicos. En la actualidad es posible

comprar circuitos integrados (IC) que poseen resoluciones que van desde 8, 10,

12, 24 y 32 bits por comentar, aunque existen una diversidad de resolución y

voltaje de operación. Sin embargo en este trabajo usaremos los incluidos en los

MCU como forma de aprovechar los diversos recursos que estos poseen, como

es el caso de un ADC.

Figura 1.2 Componentes del Convertidor Analógico a Digital

Page 8: Conversor AD

Capitulo 2

Convertidor Analógico a Digital en MCU

Esta unidad mostrara la forma de implementar un ADC en ciertos modelos de

MCU. Nota importante que mencionar es que en la unidad donde abordamos a la

familia Microchip, trataremos de explicar los algoritmos, registros,

consideraciones y configuración que se necesitan para implementar un ADC.

Consientes que cada microcontroladores en ocasiones es diferente o requiere de

configuraciones de registros adicionales, el uso de esta guía, como la

interpretación de la hoja de datos del MCU ayudara a facilitar el trabajo de

programación como resolución de problemas. En unidades posteriores

mostraremos algunos ejemplos de ADC en MCU de otras marcas, donde la

configuración seria totalmente diferente a esta, sin embargo como se menciona

anteriormente la idea mostrada ayudara a facilitar su uso.

Familia Microchip

Este proceso se realiza con el conversor interno de los microcontroladores. Este

módulo está incorporado en la mayoría de estos en su gama media y alta. La

conversión implementada por los PICMicro cuenta con una resolución de 10 bits,

12 bits o más, lo que permite obtener un número con un rango de 0 a 1023 (10

bits) o de 0 a 4096 (12 bits), que es proporcional a los valores de referencia, que

por defecto son 0 volts y 5 volts. Esto significa que si una entrada análoga, tiene

una tensión de 0 volts su resultado es 0, y si la tensión es de 5 volts el resultado

de la conversión es 10231

(fig. 1.3), tomando como referencia 10 bits de igual

manera si la tensión es de 2.5 voltios, el resultado será 512.

Dependiendo de la complejidad del MCU un PIC puede tener varias entradas de

señal análoga. Sin embargo cabe denotar que el módulo de conversión interna de

los microcontroladores es sólo uno, y los múltiples canales se pueden leer pero

no al mismo tiempo.

Detallando lo anterior, la señal analógica de entrada carga un capacitor de

muestreo y retención durante el periodo de adquisición. La salida de este

capacitor es la entrada al convertidor. El convertidor genera un resultado digital

de este nivel analógico por medio de aproximaciones sucesivas. La conversión de

una señal analógica de entrada da como resultado un numero de 10 bits o sea el

caso de la resolución de nuestro modulo ADC.

Page 9: Conversor AD

Fig. 1.3, Referencia de ADC

Como referencia en la fig. 1.4 se muestra la representación del bloque del ADC

de un PIC16F887 que posee 14 canales de entrada analógica.

Fig. 1.4, Bloque del ADC de PIC16F887

Page 10: Conversor AD

Operación

El convertidor A/D tiene una característica única de ser capaz de funcionar

cuando el dispositivo está en modo SLEEP.

El funcionamiento del convertidor A/D está bajo el control de los bits de cuatro

registros:

ADRESH Registro alto del resultado de la conversión A/D;

ADRESL Registro bajo del resultado de la conversión A/D;

ADCON0 Registro de control 0; y

ADCON1 Registro de control 1.

Registros ADRESH y ADRESL

Fig. 1.5 Registro de almacenamiento de 16bits ADRESH:ADRESL del ADC.

Los registros ADRESH:ADRESL contienen el resultado de 10 bits de la conversión

A/D (fig. 1.5) . Cuando la conversión A/D es completa, el resultado se carga en

este A/D par de registros de resultado, el bit GO/DONE (ADCON0 <2>) se borra,

y bit a la bandera de interrupción A/D, ADIF, se establece.

Después de que el módulo A/D se ha configurado como se desea, el canal

seleccionado debe ser adquirido antes de la conversión se ha iniciado. Los

canales de entrada analógicos deben tener su correspondiente TRIS bits

seleccionados como entradas. Para determinar el tiempo de la muestra, véase en

la siguiente sección "A/D Requisitos de adquisición." Después de este tiempo ha

transcurrido la adquisición de la conversión A/D se puede iniciar.

Page 11: Conversor AD

Los siguientes pasos se deben seguir para hacer una conversión A/D:

1. Configurar el A/D del módulo:

Configurar pines analógicos //Tensión de referencia y I/O digitales

(ADCON1)

Seleccione el canal de entrada A/D (ADCON0)

Seleccione un reloj de conversión A/D (ADCON0)

Encienda un módulo A/D (ADCON0)

2. Configurar una interrupción A/D (si lo desea):

Borrar el bit ADIF

Establezca el bit ADIE

Establezca el bit GIE

3. Espere el tiempo de adquisición requerido.

4. Iniciar la conversión:

Establezca el bit GO/DONE (ADCON0)

5. Espere a que la conversión A/D sea completada, ya sea por:

Sondeo para el bit GO/DONE sea borrado o el bit ADIF se establezca

O

Esperar a la habilitación de la bandera A/D de interrupción.

6. Leer Resultados A/D del par de registros (ADRESH: ADRESL), borrar el bit

ADIF, si es necesario.

7. Para la siguiente conversión, vaya al paso 1 o paso 2 según sea necesario.

Fig. 1.6, Manejo de resultado del ADC

Page 12: Conversor AD

Una vez teniendo el resultado de la conversión en los registros de

almacenamiento. Hay dos maneras de manejarlo: justificación a la izquierda y a la

derecha que simplifica en gran medida su uso (fig. 1.6). El formato del resultado

de la conversión depende del bit ADFM del registro ADCON1. En caso de que no

se utilice el convertidor A/D, estos registros se pueden utilizar como registros de

propósito general.

Figura 1.7 muestra la secuencia de la conversión, y los términos que se utilizan.

El tiempo de adquisición es el tiempo que el condensador de muestreo y

retención mantiene el módulo A/D conectado al nivel de tensión externa de la

señal analógica. Luego está el tiempo de conversión, de 12TAD (TAD = Tiempo de

conversión por cada bit), que se inicia cuando el bit GO está establecido. La

suma de estos dos tiempos es el tiempo de muestreo. Existe un tiempo de

adquisición mínimo para garantizar que el condensador de retención se carga a

un nivel que permite obtener la precisión deseada para la conversión A/D.

Fig. 1.7, Secuencia de conversión A/D

Page 13: Conversor AD

Requerimientos de adquisición A/D

Para que el convertidor A/D alcance su exactitud especificada, es necesario

proporcionar un cierto tiempo muerto entre seleccionar una entrada analógica

específica y la medición misma. Este tiempo se le denomina “tiempo de

adquisición” y generalmente depende de la impedancia de la fuente. Se utiliza

una ecuación para hacer cálculo de tiempo de adquisición con precisión, cuyo

valor mínimo es de 20uS aproximadamente. Por consiguiente, para realizar una

conversión con precisión, no se olvide este detalle.

Microchip explica que para satisfacer la precisión especificada del convertidor

A/D, el condensador de carga de retención (CHOLD) se debe permitir cargar

completamente al nivel de voltaje de entrada del canal. El modelo de entrada

analógica se muestra en la Figura 1.10. La impedancia de la fuente (RS) y el

conmutador interno de muestreo (RSS) afectan la impedancia directamente al

tiempo necesario para cargar el condensador CHOLD. El conmutador de

muestreo (RSS) varía la impedancia con la tensión del dispositivo (VDD), la Figura

1.10. La impedancia máxima recomendada para fuentes analógicas es de 10 kW.

A medida que la impedancia se reduce, el tiempo de adquisición puede ser

disminuida. Después de que el canal de entrada analógica se selecciona

(cambia) esta adquisición debe hacerse antes de que la conversión pueda ser

iniciada.

Para calcular el tiempo de adquisición mínimo, la Ecuación 1.8 puede ser

utilizado. Esta ecuación se supone que 1/2 LSB de error se usa (1024 pasos para

el A / D). El error LSB 1/2 es el error máximo permitido para el A / D para cumplir

con la resolución especificada.

Ecuación 1.8 Tiempo de Adquisición

Fig. 1.9 Tiempo Mínimo de Carga A/D

Page 14: Conversor AD

En la Ejemplo 1, muestra el cálculo del mínimo requerido TACQ tiempo de

adquisición. Este cálculo se basa en los supuestos del sistema después de la

aplicación.

Ejemplo 1 Cálculo del Tiempo de Adquisición Mínimo Requerido

Ahora para obtener una idea de lo que sucede con el tiempo de adquisición

cuando la impedancia de la fuente es un valor mínimo (RS = 50 W). El Ejemplo 2

muestra las mismas condiciones que en el Ejemplo 1 con sólo la impedancia de

la fuente hizo un valor mínimo (RS = 50 W).

Page 15: Conversor AD

Ejemplo 2 Cálculo del Tiempo de Adquisición Mínimo Requerido (Caso 2)

Figura 1.10 Modelo de Entrada Analógica

Page 16: Conversor AD

Nota 1: El voltaje de referencia (VREF) no tiene ningún efecto sobre la ecuación,

ya que se anula.

Nota 2: La carga del condensador (CHOLD) no está dado de alta después de

cada conversión.

Nota 3: La impedancia máxima recomendada para fuentes analógicas es de

10kW.

Nota 4: Después de la conversión se ha completado, un retraso de 2TAD se debe

de esperar como mínimo para iniciar la siguiente conversión. Durante este tiempo

el condensador de retención no está conectado al canal A/D seleccionado de

entrada.

Nota 5: Es importante leer la hoja de datos de cada MCU ya que aunque

pertenezcan a la misma familia, pueden variar los tiempo y requerimientos de

adquisición.

RELOJ PARA LA CONVERSIÓN A/D

El tiempo necesario para realizar una conversión A/D cuyo resultado es 1 bit se

define en unidades de TAD. Se requiere que sea como mínimo 1,6 uS. Para

realizar una conversión completa de 10 bits se requiere un poco más tiempo de lo

esperado, son 11 TAD. Como la frecuencia de reloj así como la fuente de

conversión A/D son determinadas por software, es necesario seleccionar una de

las combinaciones de los bits disponibles ADCS1 y ADCS0 antes de empezar a

medir voltaje en una de las entradas analógicas. Estos bits se almacenan en el

registro ADCON0.

Page 17: Conversor AD

Cualquier cambio de la frecuencia de reloj del microcontrolador afectará a la

frecuencia de reloj de la conversión A/D, lo que puede perjudicar al resultado de

la conversión A/D. En la siguiente tabla se muestran las características de la

frecuencia del dispositivo. Los valores en las celdas sombreadas están fuera del

rango recomendado.

¿CÓMO UTILIZAR EL CONVERTIDOR A/D?

Para llevar a cabo una conversión A/D sin problemas así como para evitar los

resultados inesperados, es necesario considerar lo siguiente (PIC16F887 se tomo

como referencia):

El convertidor A/D no hace diferencia entre señales digitales y analógicas.

Para evitar errores en medición o dañar el chip, los pines se deben

configurar como entradas analógicas antes de que empiece el proceso de

conversión. Los bits utiliza dos para este propósito se almacenan en los

registros TRIS y ANSEL (ANSELH);

Al leer el estado de puerto con las entradas analógicas, el estado de los

bits correspondientes se leerá como cero lógico (0), sin reparar en el valor

del voltaje real en el pin; y

Hablando en términos generales, la medición de voltaje en el convertidor

está basado en comparar voltaje de entrada con una escala interna que

tiene 1023 grados (210

- 1 =1023). El grado más bajo de esta escala

representa el voltaje Vref-, mientras que el grado más alto se refiere al

voltaje Vref+. La siguiente figura muestra los voltajes de referencia

seleccionables así como sus valores máximos y mínimos.

Page 18: Conversor AD

Para medir el voltaje en un pin de entrada por medio del convertidor A/D, se debe

realizar lo siguiente:

Paso 1 - Configuración del puerto:

Escribir un uno lógico (1) a un bit del registro TRIS, lo que resulta en

configurar el pin apropiado como una entrada.

Escribir un uno lógico (1) a un bit del registro ANSEL, lo que resulta en

configurar el pin apropiado como una entrada analógica.

Paso 2 - Configuración del módulo de la conversión A/D:

Configurar voltaje de referencia en el registro ADCON1.

Seleccionar una señal de reloj de la conversión A/D en el registro ADCON0.

Seleccionar uno de los canales de entrada CH0-CH13 del registro

ADCON0.

Seleccionar el formato de dato por medio de ADFM del registro ADCON1.

Habilitar el convertidor A/D al poner a uno el bit ADON del registro

ADCON0.

Paso 3 - Configuración de la interrupción (opcionalmente):

Poner a cero el bit ADIF.

Poner a uno los bits ADIE, PEIE y GIE.

Page 19: Conversor AD

Paso 4 - Tiempo de espera para que transcurra el tiempo de adquisición

(aproximadamente 20uS).

Paso 5 - Inicio de la conversión poniendo a uno el bit GO/DONE del reg istro

ADCON0.

Paso 6 - Esperar a que la conversión A/D finalice.

Es necesario comprobar en el bucle de programa si el bit GO/DONE está a

cero o esperar que se produzca una interrupción (deberá estar

anteriormente habilitada).

Paso 7 - Lectura del resultado de la conversión A/D:

Leer los registros ADRESH y ADRESL.

Con la configuración de los Registros ADCON0 y ADCON1, no serán tocados en

esta guía, ya que cada uno de estos registro podrían variar con respecto al MCU

que se esta usando independientemente que sea de la misma familia 16F o 18F.

Si usted se dirige al Tema 9.2.7 (pagina 106) de la hoja de datos del 16F887, ahí

se encuentra la configuración de los registros de A/D y con ayuda del ejemplo

que encuentra en la carpeta anexa, podrá facilitar su entendimiento.

Sin embargo en el apartado de ejemplos, se muestran algunas configuraciones

de estos registros así como ejemplos prácticos del ADC.

Page 20: Conversor AD

Conclusión

Esperemos que esta guía sirva de referencia para el manejo y configuración del

ADC, es importante recordar que la lectura de la hoja de datos es la mejor manera

de configurar y conocer las características de este modulo.

El modulo conversor A/D posee varias funciones que no fueron tocadas en esta

guía o totalmente detalladas y una de ellas es el uso de los voltajes de referencia

VREF+-, módulos comparadores y conversiones de muestreo rápido, totas estas

están explicadas en la hoja de datos de cada MCU. Los microcontroladores

poseen interrupciones que pueden ser activadas por hardware o software, y el

modulo ADC posee una bandera de interrupción, el uso de esta se observa en

otra guía disponible en este mismo sitio WEB.

Se brindan ejemplos prácticos usando lenguajes de programación como MikroC

y CCS para los MCU de Microchip (16F887, 16F877a, 16F88 y 18F4550), IDE

ARDUINO 1.0 para la plataforma Arduino UNO R1 y CCS (Code Composer Studio

v5) para el MSP430 LAUNCHPAD de TEXAS INSTRUMENT.

Todos los ejemplos implementan el uso de las librerías de cada compilador. Es

importante mencionar que ninguno de estos por default usa interrupciones así

como propiedades avanzadas que mejoren el rendimiento, ya que estas deben

de ser declaradas por medio de configuración por bits de cada registro. Es por

eso la importancia de explicar los temas del Capitulo 2, puesto que es la única

manera de aprovechar al máximo el ADC sin las limitaciones de la librería que por

default nos brindan cada compilador.

Finalizando la obra y agradeciendo el tiempo que tomo en leer este pequeño

aporte, solo me vasta decir; La única forma de dominar y perfeccionar el uso de

las cosas, es practicándolas en los diversos proyectos que diseñemos. En el

diseño de circuitos obtendremos dudas y eso incluirá sumergirse más en el tema

para obtener respuestas.

Page 21: Conversor AD

Bibliografía

Paginas WEB:

http://www.microchip.com/TechDoc.aspx?type=datasheet

http://www.mikroe.com/

http://www.todopic.com.ar/foros/

Libros:

PIC Microcontrollers - Programming in C, Milan Verle. mikroElektronika; 1st edition

(2009). ISBN-13: 978-86-84417-17-8.

Advanced PIC Microcontroller Projects in C: From USB to RTOS with the PIC 18F

Series, Dogan Ibrahim. Newnes; 1st Ed. (2008). ISBN-13: 978-0750686112