Conversor AD
-
Upload
julio-zebadua -
Category
Documents
-
view
1.646 -
download
1
Transcript of Conversor AD
Fundamentos ADC | JulioZV
JULIOZEBADUA BLOG
CONVERSOR ANALÓGICO A DIGITAL (ADC)
Pagina en Blanco Intencionalmente
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.
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.
Í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
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
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
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.
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
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.
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
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
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
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).
Ejemplo 2 Cálculo del Tiempo de Adquisición Mínimo Requerido (Caso 2)
Figura 1.10 Modelo de Entrada Analógica
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.
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.
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.
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.
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.
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