Estructura interna y configuración del conversor A/D

Một phần của tài liệu Microcontroladores PIC diseno practico de aplicaciones segunda parte PIC16F87X PIC18FXXX 2 ed jose angulo (Trang 160 - 165)

En la Figura 7.3 se ofrece un esquema del conexionado del conversor A/D con las patitas que soportan los canales de entrada y las de la tensión de referencia.

El bit de más peso (ADFM) del registro ADCON1 selecciona el formato del resultado de la con- versió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 ADRESL, 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 (ali- neación del resultado a la derecha o a la izquierda).

VSS

CONVERTIDOR A/D

RA0/AN0 RA1/AN1 RA2/AN2/VREF- RA3/AN3/V +REF

RA5/AN4

V -REF

RE1/AN6 RE2/AN7 CHS2-0

PCFG3-0 4 PCFG3-0

4

VDD

RE1/AN5

V +REF

Figura 7.3. Estructura del conexionado del conversor A/D.

En la Figura 7.4 se muestran las dos formas posibles del alineamiento del resultado sobre la pa- reja de registros ADRESH:ADRESL.

Los restantes cuatro bits (PCFG3-0) de ADCON1 se usan para configurar las patitas de los ca- nales de entrada al conversor como analógicas o como E/S digitales, de acuerdo con la tabla de la Figura 7.5.

Figura 7.4. Alineamiento del resultado digital de 10 bits de la conversión a la izquierda y a la derecha.

Figura 7.5. Tabla que determina las patitas del PIC que actúan como entradas analógicas o como E/S digitales, según el valor de los 4 bits de ADCON1<PCFG3-0>.

PCFG3-0 AN7/ AN6/ AN5/ AN4/ AN3/ AN2/ AN1/ AN0/

VREF+ VREF– CANAL/

RE2 RE1 RE0 RA5 RA3 RA2 RA1 RA0 REFS

0000 A A A A A A A A VDD VSS 8/0

0001 A A A A VREF+ A A A RA3 VSS 7/1

0010 D D D A A A A A VDD VSS 5/0

0011 D D D A VREF+ A A A RA3 VSS 4/1

0100 D D D D A D A A VDD VSS 3/0

0101 D D D D VREF+ D A A RA3 VSS 2/1

011x D D D D D D D D VDD VSS 0/0

1000 A A A A VREF+ VREF- A A RA3 RA2 6/2

1001 D D A A A A A A VDD VSS 6/0

1010 D D A A VREF+ A A A RA3 VSS 5/1

1011 D D A A VREF+ VREF- A A RA3 RA2 4/2

1100 D D D A VREF+ VREF- A A RA3 RA2 3/2

1101 D D D D VREF+ VREF- A A RA3 RA2 2/2

1110 D D D D D D D A VDD VSS 1/0

1111 D D D D VREF+ VREF- D A RA3 RA2 1/2

A continuación, se indican los pasos que hay que efectuar para realizar una conversión A/D:

Si se elige como reloj para la conversión al oscilador RC interno del conversor A/D, éste puede seguir funcionando cuando se introduce el microcontrolador al modo de Reposo o SLEEP. En los restantes modos, se aborta la conversión y se desactiva el conversor A/D. En la Figura 7.6 se ofre- ce el organigrama sobre la operatividad del conversor A/D.

Se propone un programa general para el manejo del conversor A/D. En él se carga con 0 al re- gistro ADCON1, con lo que todas las patitas correspondientes a los canales de entrada del C A/D se configuran como entradas analógicas (PCFG3-0 = 0000) y se toma como VREF+= VDDy como VREF-= VSS. Al ser el bit de más peso ADFM = 0, el resultado depositado en ADRESH:ADRESL queda justificado a la izquierda (los 6 bits de menos peso de ADRESL son 0). Se permite la inte- rrupción del C A/D (bsf PIE1, ADIE). Como reloj para la conversión se elige al oscilador interno RC como consecuencia de cargar a ADCON0 con el valor 11000001 y se elige como canal de en- trada a la patita RA0/AN0.

1.o Configurar el módulo C A/D

Configurar las patitas que actuarán como entradas analógicas, las que trabajan como E/S di- gitales y las usadas para la tensión de referencia (ADCON1).

Seleccionar el reloj de la conversión (ADCON0).

Seleccionar el canal de entrada A/D (ADCON0).

Activar el módulo A/D (ADCON0).

2.o Activar, si se desea, la interrupción escribiendo sobre PIE1 y PIR1

Borrar el seủalizador ADIF.

Poner a 1 el bit ADIE.

Poner a 1 los bits habilitadores GIE y PEIE.

3.o Tiempo de espera para que transcurra el tiempo de adquisición 4.o Inicio de la conversión

Poner a 1 el bit GO/DONE# (ADCON0).

5.o Tiempo de espera para completar la conversión A/D que puede detectarse:

a) Por la exploración del bit GO/DONE#, que al completarse la conversión pasa a valer 0.

b) Esperando a que se produzca la interrupción si se ha programado, al finalizar la conver- sión.

c) Aunque no se permita interrupciún, el seủalizador ADIF se pondrỏ a 1 al finalizar la conver- sión.

6.o Leer el resultado en los 10 bits válidos de ADRESH:L y borrar el flag ADIF

7.o Para una nueva conversión regresar al paso 1.oo al 2.oEl tiempo de conversión por bit está defi- nido por TAD. Se exige esperar un mínimo de 2•TADpara reiniciar una nueva conversión.

bsf STATUS,RP0 ; Selección del Banco 1

bcf STATUS,RP1

clrf ADCON1 ; Patitas de entrada analógicas

bsf PIE1,ADIE ; Permite la interrupción del C A/D

bcf STATUS,RP0 ; Banco 0

movlw 11000001 ; Oscilador RC interno, Canal 0,

movwf ADCON0 ; Activación del conversor

bcf PIR1,ADIF ; Borra el seủalizador A/D

bsf INTCON,PEIE ; Permiso de interrupciones a los

; periféricos

bsf INTCON,GIE ; Permiso global de interrupciones

; Tiempo de espera suficiente para la toma de muestra en el Canal 0

bsf ADCON0,GO ; Inicio de la conversión

; Al terminar la conversión ADIF = 1 y el bit GO/DONE# = 0

¿DESPERTAR DEL REPOSO?

NO

SÍ CONFIGURACIÓN

CONVERSOR A/D

¿ADON = 0?

¿DISPOSITIVO EN REPOSO?

¿GO = 0?

ADQUISICIÓN CANAL SELECCIONADO

¿RELOJ A/D = RC? INICIO A/D RETARDO 1 CICLO

INSTRUCCIÓN

¿INSTRUCCIÓN SLEEP?

QUEDA EN SLEEP HASTA POWER-DOWN

DEL A/D FIN CONVERSIÓN

GO = 0 ADIF = 1

ESPERA 2 T.AD

ESPERA 2 T.AD

FIN CONVERSIÓN GO = 0 ADIF = 1

ESPERA 2 T.AD

FIN CONVERSIÓN GO = 0 ADIF = 1 NO

NO

NO

NO

NO SÍ SÍ

SÍ SÍ

Figura 7.6. Organigrama de la operación del conversor A/D.

Một phần của tài liệu Microcontroladores PIC diseno practico de aplicaciones segunda parte PIC16F87X PIC18FXXX 2 ed jose angulo (Trang 160 - 165)

Tải bản đầy đủ (PDF)

(394 trang)