Вы находитесь на странице: 1из 8

Pr

actica 3
Universidad de San Carlos de Guatemala
Facultad de Ingeniera
Escuela de Mecanica Electrica
Laboratorio de Electronica
Microcontroladores I

febrero 2014

Indice
1. Diagrama general del ADC

2. Pasos para configurar el ADC


2.1. Configurar el puerto . . . . . . . . . . . . . . . . .
2.1.1. Desactivar el driver de salida digital . . . . .
2.1.2. Configurar pin como entrada analogica . . .
2.2. Configurar el modulo ADC . . . . . . . . . . . . . .
2.2.1. Seleccionar el clock de conversion . . . . . .
2.2.2. Configurar voltajes de referencia . . . . . . .
2.2.3. Seleccionar el canal de entrada . . . . . . . .
2.2.4. Seleccionar el formato de resultado . . . . .
2.3. Encender el modulo ADC . . . . . . . . . . . . . .
2.4. Iniciar conversion, esperar 11 TAD y leer resultado.

4
4
4
4
5
5
5
5
5
6
6

3. Esquem
atico sugerido

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

M
odulo ADC del PIC16F887
El PIC16f887 tiene un set de 14 entradas analogicas, que van desde la entrada analogica 0 (AN0) hasta la entrada analogica 13(AN13). Estas entradas
analogicas estan distribuidas en los puertos A , E y B del microcontrolador.
El modulo ADC nos permite conocer el exterior del microcontrolador a traves
de 1024 estados que representan la escala de conversion del voltaje analogico
presente en cualquiera de sus entradas analogicas, es decir que el PIC tiene
la capacidad de convertir cualquier voltaje (no especficamente 0 o 5 V) en
un n
umero entero de 10 bits.
Esta caracterstica es muy u
til para medir y controlar sistemas con caractersticas no digitales, debido a que permiten que la se
nal contnua sea convertida a una se
nal discreta en amplitud, en tiempo.

1.

Diagrama general del ADC

En la figura 1 se observa los bits que manejan la operacion del modulo


ADC, los cuatro bits CHS < 3 : 0 > pertenecientes al registro ADCON0
se encargan de escoger la entrada analogica que sera usada para realizar la
conversion mediante un multiplexor de 4 bits y 16 estados, notese la configuracion CHS < 3 : 0 >= 0b1111 que obtiene una referencia interna fija (no
vara con la fuente) de 0.6 V.
Los bits V CF G < 1 : 0 > pertenecientes al registro ADCON1, permiten
seleccionar la referencia de voltaje del conversor A/D. Existen dos alternativas, seleccionar un voltaje de referencia externa en los pines de AN2 y AN3
mediante un circuito externo o voltajes fijos generados de cualquier manera,
o usar la referencia interna del PIC, es decir Vdd y Vss.
El bit ADON, perteneciente al registro ADCON0, se encarga de activar
o desactivar el modulo ADC, luego de activar este bit, hay que esperar un
tiempo para que el modulo ADC este listo para trabajar.
El bit GO del registro ADCON0, inicia la conversion ADC cuando se
escribe un 1 en el, regresando a 0 hasta que la conversion analogico a digital.

El bit ADFM provee el orden con el que los datos de la conversion analogica se guardaran en los registros de resultado ADRESH y ADRESL. Existen
dos posibilidades, justificado a la derecha o a la izquierda, para transmitir el
resultado del ADC, sera conveniente envar solo un byte, usando la justificacion izquierda y en el ente que reciba el dato, se agregaran los 2 bits menos
significativos, facilitando la transmision pero dejando una incerteza maxima
de:
3 (vref + vref )
(1)
210
con respecto al valor original.
Para manipular los datos internamente, conviene usar la justificacion derecha,
para que la conversion a un entero sea de la forma:
result = adresh 256 + adresl.

(2)

ver figura 2.

2.

Pasos para configurar el ADC

El datasheet provee una serie de pasos para configurar el conversor analogico / digital. Estos pasos se listan a continuacion. Para una entrada analogica
en el pin RA0 y oscilador interno de 8 MHz.

2.1.
2.1.1.

Configurar el puerto
Desactivar el driver de salida digital

TRISA = 0xFF; // RA0 NO est


a como salida digital.
TRISB=0; //mostraremos anselh aqu
.
2.1.2.

Configurar pin como entrada anal


ogica

Para esto se escribe 1 en la entrada analogica deseada, en este caso u


nicamente es AN0.
ANSEL=0x01; // Solamente AN0 como entrada anal
ogica.
ANSELH=0x00;

2.2.

Configurar el m
odulo ADC

A continuacion haremos la configuracion adecuada del ADC.


2.2.1.

Seleccionar el clock de conversi


on

Para seleccionar el clock de conversion hay que ver la tabla 9-1 del datasheet, figura 3 de este documento.
ADCON0.ADCS1=1;
ADCON0.ADCS0=0; // Fosc/32 > 1.6 uS

2.2.2.

Configurar voltajes de referencia

Esto se hace en el registro ADCON1, con sus bits VCFG1 y VCFG0.


ADCON1.VCFG1=0; // su valor por defecto es 0
ADCON0.VCFG0=0; // Referencia de voltaje Vdd y Vss.
2.2.3.

Seleccionar el canal de entrada

Para seleccionar el canal de entrada basta con configurar los bits CHS3,
CHS2, CHS1 Y CHS0 del registro ADCON0. En este caso, seg
un la datasheet
el canal de conversion de AN0 es 0 para cada uno de los bits mencionados.
ADCON0.CHS3=0; //Canal de conversi
on AN0
ADCON0.CHS2=0;
ADCON0.CHS1=0;
ADCON0.CHS0=0;
2.2.4.

Seleccionar el formato de resultado

Para seleccionar el formato de resultado (en este caso, justificacion izquierda) hay que escribir el bit ADFM del registro ADCON1.
ADCON1.ADFM=0; // justificaci
on izquierda

2.3.

Encender el m
odulo ADC

Encender el modulo ADC mediante el bit ADON. Y esperar a que el


modulo este listo, ver seccion 9-2 del datasheet.
ADCON0.ADON=1; // Encender ADC
Delay_ms(1); // Aquisition time

2.4.

Iniciar conversi
on, esperar 11 TAD y leer resultado.

A este punto ya esta configurado el modulo ADC, ahora queda iniciar la


conversion y leerla de alguna manera.
while(1){ //bucle infinito
ADCON0.B1 = 1; // INICIA LA CONVERSI
ON
while(ADCON0.B1){ // Loop ocioso
}
PORTB = ADRESH; // leemos resultado mediante leds
Delay_ms(100);
}

3.

Esquem
atico sugerido

Todo el puerto B con leds, circuito de ICSP, potenciometro colocado a


manera de divisor de voltaje, conectado en el pin RA0.

Figura 1: Diagrama general ADC del PIC16f887

Figura 2: Formato del resultado en ADRESH y ADRESL

Figura 3: Tabla 9-1 Clock de conversion