Microcontroladores Programables Bernardi Bern ardino no Beni Benito to SALM SALMERON ERON QUIR QUIROZ OZ
Práctica 4 Convertidor Analógico Digital
PRÁCTICA 4 CONVERTIDOR ANALÓGICO DIGITAL
OBJETIVO Realizar un programa para el manejo del Convertidor Analógico – Digital.
INTRODUCCION De los recursos contenidos en el PIC16F87X, quizá el convertidor Analógico-Digital sea del que más aplicaciones estamos acostumbrados a ver en nuestra vida diaria. Sensores de temperatura, luz, humedad, humo..., son valores que nos interesa monitorizar pero que necesitan ser traducidos para ser entendidos por el sistema de control, labor que realizan los convertidores Analógico-Digital. La tarea de conversión es siempre igual, sea cual sea el sensor utilizado. El microcontrolador PIC16F877 tiene incorporado un convertidor Analógico-Digital (CAD) de 10 bits de resolución, procesa señales analógicas y trabaja con la técnica de aproximaciones sucesivas. Dispone de un multiplexor 8 a 1 que permite aplicar a la entrada del CAD diversas señales analógicas desde las patitas del circuito integrado (selección de canal). La resolución que tiene cada bit procedente de la conversión tiene un valor que es función de la tensión de referencia Vref , de acuerdo con la formula siguiente: Resolución = ( Vref+ - Vref- ) / 1.024 = Vref / 1.024. Así, por ejemplo, si el Vref+ = 5 V DC y el Vref- es tierra, la resolución es de 4.8 mV / bit. Por tanto, a la entrada analógica de 0 V le corresponde el código digital de 00 0000 0000 y para la de 5 V un código de 11 1111 1111. La tensión de referencia determina los límites máximo y mínimo de la tensión analógica que se puede convertir. El voltaje diferencial mínimo es de 2 V. A través del canal de entrada seleccionado, se aplica la señal analógica a un condensador de captura y mantenimiento (sample and hold) y luego se introduce al convertidor, el cual proporciona un resultado digital de 10 bits. El convertidor Analógico-Digital es el único dispositivo que puede funcionar en modo reposo (SLEEP), para ello el reloj del convertidor deberá conectarse al oscilador RC interno. REGISTROS DE TRABAJO El funcionamiento del convertidor Analógico-Digital requiere la manipulación de cuatro registros: 1. ADR ADRESH ESH.. Parte Parte alta del resul resultad tado o de la conversió conversión. n. 2. ADRE ADRESL. SL. Parte Parte baja baja del result resultado ado de la convers conversión ión.. 3. ADCO ADCON0. N0. Regi Registr stro o de Cont Control rol 0. 4. ADCO ADCON1. N1. Regi Registr stro o de Cont Control rol 1.
Microcontroladores Programables
Práctica 4 Convertidor Analógico Digital
En la pareja de registro ADRESH:ADRESL se deposita el resultado de la conversión, que al estar compuesta por 10 bits, sólo son significativos 10 de los bits de dicha pareja. El registro ADCON0 controla la operación del Convertidor Analógico-Digital, mientras que el ADCON1 sirve para configurar las patitas del Puerto A como entradas analógicas o E/S digitales. REGISTRO ADCON0 ADCS1 7
ADCS0
ADFM 7
-
CHS2
CHS1
CHS0
GO/DONE
-
ADON 0
PCFG2
PCFG1
PCFG0 0
REGISTRO ADCON1 -
-
PCFG3
Los bits ADCON0<7:6> sirven para seleccionar la frecuencia de reloj que se emplea en la conversión, con la siguiente asignación: ADCS1:0
FRECUENCIA
00 01 10 11
FOSC / 2 FOSC / 8 FOSC / 32 FRC (procede del osc. RC interrno )
Se designa como TAD el tiempo que dura la conversión de cada bit y en el caso de trabajar con valores digitales de 10 bits, se requiere de un tiempo mínimo de 12* TAD. El valor de TAD se selecciona por software mediante estos bits (ADCS1:ADCS0) y nunca debe ser menor de 1.6 microsegundos. ADCS1:0
TAD
00 01 10 11
2 * TOSC 8 * TOSC 32 * TOSC Oscilador RC interno en el CAD
Los bits CHS2-0 seleccionan el canal por el que se introduce la señal analógica a convertir, de acuerdo con el siguiente código: CH2-0
CANAL
000 001 010 011 100 101 110 111
Canal 0 (RA0) Canal 1 (RA1) Canal 2 (RA2) Canal 3 (RA3) Canal 4 (RA5) Canal 5 (RE0) Canal 6 (RE1) Canal 7 (RE2)
Microcontroladores Programables Bernardino Benito SALMERON QUIROZ
Práctica 4 Convertidor Analógico Digital
El bit GO / DONE es el bit de estado de la conversión. Poniéndolo a 1 se inicia la conversión y mientras esté a 1 está realizándose dicha operación. Cuando GO / DONE pasa a 0 confirma el final de la conversión y la puesta del resultado en la pareja de registros ADRESH:ADRESL. El bit ADON sirve para activar el Convertidor A / D poniéndolo a 1 y para inhibir su funcionamiento poniéndolo a 0. El bit de menos peso (ADFM) del registro ADCON1 selecciona el formato del resultado de la conversión. Si vale 1, el resultado está justificado en el registro ADRESH, que tiene sus 6 bits de más peso a 0; mientras que si vale 0 la justificación se realiza sobre el registro ADREL, que tiene sus 6 bits de menos peso a 0. Esto significa que los 16 bits que forman la concatenación de ADRESH:ADRESL unas veces tiene a 0 los 6 bits de más peso y otras los 6 bits de menos peso (alineación a la derecha o a la izquierda, respectivamente). Los restantes cuatro bits (PCFG3-0) de ADCON1 se usan para configurar las patitas de los canales de entrada al convertidor como analógicas o como E / S digitales. A continuación, se indican los pasos que hay que efectuar para realizar una conversión Analógica-Digital: 1. Configura el módulo Convertidor Analógico-Digital. o Configurar las patitas que actuarán como entradas analógicas, las que trabajan como E / S digitales y las usadas para la tensión de referencia (ADCON1). o Seleccionar el reloj de la conversión (ADCON0). o Seleccionar el canal de entrada A / D (ADCON0). o Activar el módulo A / D (ADCON0). 2. Activar, si se desea, la interrupción escribiendo sobre PIE1 y PIR1. o Borrar el señalizador ADIF. o Poner a 1 el bit ADIE. o Poner a 1 los bits habilitadores GIE y PEIE. 3. Tiempo de espera para que transcurra el tiempo de adquisición. 4. Inicio de la conversión. o Poner a 1 el bit GO / DONE (ADCON0). 5. Tiempo de espera para completar la conversión A / D que puede detectarse. o Por la exploración del bit GO / DONE, que al interpretarse la conversión pasa a valer 0. o Esperando a que se produzca la interrupción si se ha programado, al finalizar la conversión.
Microcontroladores Programables
o
Práctica 4 Convertidor Analógico Digital
Aunque no se permita interrupción, el señalizador ADIF se pondrá a 1 al finalizar la conversión.
6. Leer el resultado en los 10 bits válidos de ADRESH: ADRESL y borrar la bandera ADIF. 7. Para una nueva conversión regresar al paso 1º. O al 2º. El tiempo de conversión por bit está definido por TAD. Se exige esperar un mínimo de 2 * TAD para reiniciar una nueva conversión.
DIAGRAMA DE FLUJO
Microcontroladores Programables Bernardino Benito SALMERON QUIROZ
Práctica 4 Convertidor Analógico Digital
El diagrama de flujo muestra claramente los pasos que hay que efectuar en la programación del PIC para realizar la conversión analógica – digital.
D I AG RA MA E S QU E MA T IC O
Se utilizó el canal analógico 0 en el cual se conectó el potenciómetro de 10 K de multi-vueltas.
Microcontroladores Programables
Práctica 4 Convertidor Analógico Digital
C ÓD IG O F UE NT E ;************************************************************************** ;********** Programa para hacer una Conversión Analógico Digital ********** ;************************************************************************** LIST P=16F877 include
RDELAY CONTA0 CONTA1 CONTA2 W F ;ADRESL
EQU EQU EQU EQU EQU EQU EQU
0x21 0x22 0x23 0x24 0 1 0x9E
;Registro W ;Registro de trabajo
;****************************
convertir espera
espera20u ret1
bsf movlw movwf clrf clrf clrf bcf bsf call bsf btfsc goto movf movwf bsf movf bcf movwf goto
STATUS,RP0 b'00011111' PORTA ADCON0 PORTB PORTD STATUS,RP0 ADCON0,0 espera20u ADCON0,2 ADCON0,2 espera ADRESH,0 PORTB STATUS,RP0 ADRESH,0 STATUS,RP0 PORTD convertir
movlw movwf decfsz goto return end
0x05 CONTA0 CONTA0,1 ret1
;
Microcontroladores Programables
Práctica 4 Convertidor Analógico Digital
Bernardino Benito SALMERON QUIROZ
CO M E N T A R I O S Esta es sumamente importante ya que permite cocer el funcionamiento del convertidor analógico digital ADC del PIC, puesto que en muchos sistemas es necesario una conversión analógica digital para poder procesar la información digitalmente. El potenciómetro que se sugiere es un potenciómetro multivueltas lo que permite una mayor precisión y así mismo se obtiene una mejor visualización de los datos.
MATERIAL 1 Fuente DC de 5 volts. 1 Microcontrolador PIC16F877. 1 Cristal de 4 Mhz. 2 Capacitores 33 pf. 10 Led. 1 Protoboard
10 resistencia de 220 . 1 resistencias de 10 k 1 resistencias de 100 1 Potenciometro multivueltas de 10 k 1 Push button.