Sei sulla pagina 1di 14

Mdulo ADC del

PIC16F877
Puertos D y E
El puerto D es un puerto de 8 lneas configurables como entradas o
salidas mediante el registro TRISD (88H) y cuyas lneas pueden ser
accesadas mediante el registro PORTD (08H). Cuando se
configuran como entradas stas poseen un disparador Schmitt.

El Puerto E slo posee 3 lneas configurables como entradas o salidas
mediante el los 3 bits menos significativos del registro TRISE (89H).
Sus lneas pueden ser accesadas mediante los 3 bits menos
significativos del registro PORTE (09H). Las lneas del puerto E
estn compartidas con el convertidor analgico / digital, por ello,
antes de usarlas debern ser configuradas como entradas / salidas
digitales o analgicas, segn se desee en forma similar a como se
hizo con el puerto A, usando el registro de configuracin ADCON1
(9FH).

El Puerto D puede configurarse para trabajar simultneamente con sus
8 bits como un puerto esclavo (Parallel Slave Port) de comunicacin
paralela bidireccional con lneas de protocolo proporcionadas por
las tres lneas del Puerto E, para ello se deber activar el bit
PSPMODE (TRISE<4>).
Los PIC16F87X poseen un mdulo ADC interno que les permite manejar 5
entradas analgicas para los dispositivos de 28 pines y 8 para los otros
dispositivos.
En la siguiente figura se muestra un diagrama de bloques del mdulo ADC.

El multiplexor.- El ADC es un convertidor de aproximaciones
sucesivas de 10 bits, el cual puede realizar la conversin de una de
las 8 entradas (o canales) analgicas AN0,...,AN7 multiplexadas por
la lgica interna que utiliza como lneas de seleccin del canal los
bits CHS2:CHS0, en donde se coloca el nmero en binario del
canal a convertir.

Voltajes de Referencia.- Todo convertidor ADC requiere voltajes de
referencia que determinan el valor de mnima escala (VREF-) y el
de plena escala (VREF+), de manera que la conversin de un valor
de voltaje analgico Vin en el rango de VREF- a VREF+ producir
un valor equivalente binario D en el rango de 0 a 2n, Donde n es la
resolucin del convertidor (n = 10).

Como la relacin entre escalas es lineal, una regla de tres nos da la
relacin entre el voltaje analgico de entrada (Vin) y el valor digital
(D) obtenido por el ADC

Con la eleccin ms comn: V
REF+
= V
DD
= 5v, V
REF-
= V
SS
= 0v, y como
n=10, obtenemos:
2 1
REF
n
REF VREF
Vin V D
V

=

1023
204.6
5
in in
D V V = =
5
(0.004887585533)
1023
Vin D D
| |
= =
|
\ .
De donde se ve que cuando Vin vara en todo su rango, desde 0 hasta 5v, el
valor obtenido D vara tambin en todo su rango, de 0 a 1023.

Si a la inversa, obtenemos un valor D y deseamos saber que voltaje
representa, basta con despejar:
Observacin: Como puede verse, la conversin del dato D al voltaje
correspondiente requiere una multiplicacin por un nmero
fraccionario, para lo cual el PIC no posee instrucciones, si
deseamos realizar esta multiplicacin en el PIC debemos hacer un
programa que multiplique nmeros de punto fijo o de punto flotante.
El proceso de Conversin Analgico/Digital
Para echar a andar el convertidor se debern seguir los
siguientes pasos:
1) Configurar el mdulo A/D:
a. Configurar los pines analgicos y los Voltajes de referencia
VREF- y VREF+, mediante el registro ADCON1 (9Fh) (y los
correspondientes bits TRIS como entradas)
b. Seleccionar el canal de entrada a convertir mediante los bits
CHS2:CHS0 del registro ADCON0 (1Fh)
c. Seleccionar el reloj de conversin mediante los bits
ADCS1:ADCS2
(ADCON0<7:6>)
d. Energizar el convertidor mediante el bit ADON (ADCON0<0>)
2) Configurar interrupciones para el convertidor A/D (si se desea), para
ello: limpiar
ADIF y poner ADIE, PEIE y GIE.
3) Esperar mientras transcurre el tiempo de adquisicin (unos 20
seg).
4) Iniciar la conversin poniendo el bit GO/DONE (ADCON0<2>).
5) Esperar a que termine la conversin:
a. Por poleo (Polling): Consultando continuamente el bit GO/DONE
(el cual es limpiado por el convertidor cuando la conversin est
completa).
b. Por interrupciones: Cuando la conversin termina, la bandera ADIF
se activa y esto genera una solicitud de interrupcin, la cual deber
ser atendida por una rutina de atencin a la interrupcin diseada
para ello.
6) Leer el dato convertido D de los registros (ADRESH:ADRESL)
7) Para la siguiente conversin, esperar al menos 2TAD (Donde TAD
es el tiempo de conversin por bit).


Registros de Configuracin
El oscilador RC interno del convertidor tiene un TAD tpico de 4 seg, sin embargo, puede
variar entre 2 y 6 seg.. Este reloj es recomendable para operacin en modo SLEEP, ya que
este modo desconecta la frecuencia del reloj externo.

* Precaucin: El convertidor A/D no trabajar correctamente con un T
AD
menor que T
AD(mnimo)

= 1.6seg. El usuario deber cuidar la eleccin del reloj adecuado para no violar
esta limitante.
bits 7-6 ADCS1:ADCS0.- Seleccin de reloj de acuerdo a la siguiente tabla:
bits 5-3 CHS2:CHS0.- Seleccin de canal analgico a
convertir. Se selecciona uno de los ocho canales AN0,...,AN7
colocando en estos tres bits el nmero binario correspondiente al
canal deseado. (Los canales analgicos a usar debern tener sus
bits TRIS correspondientes seleccionados como entradas).

bit 2 GO/DONE.- Bit de inicio y fin de conversin.- Con el
convertidor encendido, poniendo este bit en 1 se inicia la conversin
del canal seleccionado. Este bit permanece en 1 durante la
conversin y es limpiado automticamente por el convertidor al
terminar la conversin

bit 0 ADON.-Encendido del convertidor. Al poner este bit en
1 el convertidor se enciende y al ponerlo en 0 se apaga y no
consume corriente.

bit 7 ADFM.- Seleccin de formato del resultado. Al
ponerlo en 1 se selecciona resultado de 10 bits justificado a la
derecha. Y con un 0 se selecciona justificacin a la izquierda.
En la siguiente seccin se explica con mayor detalle.

Bits 3-0 PCFG3:PCFG0.- Bits de configuracin de las
entradas del convertidor. Configuran las patitas de entrada
del convertidor de acuerdo a la siguiente tabla, (en donde A =
Entrada Analgica D = Entrada /Salida digital)

Registros de Resultado
El par de registros ADRESH:ADRESL (1Eh:9Eh) son cargados con el dato (D)
resultante de una conversin analgico / digital al terminar sta. Cada uno de
estos registros es de 8 bits, por lo tanto, juntos pueden guardar hasta 16 bits. Sin
embargo, como el resultado D es de 10 bits, el mdulo de conversin A/D permite
justificarlo (alinearlo) en la parte izquierda o derecha de los 16 bits disponibles,
para elegir alguna de las dos opciones se usa el bit ADFM (ADCON1<7>):
Caractersticas Elctricas del convertidor.- Las siguientes son
algunas de las especificaciones ms importantes, y son vlidas
para los PIC16F87X-04, PIC16F87X- 10, PIC16F87X-20,
PIC16LF87X-04

Potrebbero piacerti anche