Configuracion ADC PIC16F887

Pr´ actica 3 Universidad de San Carlos de Guatemala Facultad de Ingenier´ıa Escuela de Mec´anica El´ectrica Laboratorio

Views 68 Downloads 1 File size 482KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Pr´ actica 3 Universidad de San Carlos de Guatemala Facultad de Ingenier´ıa Escuela de Mec´anica El´ectrica Laboratorio de Electr´onica Microcontroladores I

febrero 2014

´Indice 1. Diagrama general del ADC

3

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 anal´ogica . . . 2.2. Configurar el m´odulo ADC . . . . . . . . . . . . . . 2.2.1. Seleccionar el clock de conversi´on . . . . . . 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 m´odulo ADC . . . . . . . . . . . . . . 2.4. Iniciar conversi´on, esperar 11 TAD y leer resultado.

4 4 4 4 5 5 5 5 5 6 6

3. Esquem´ atico sugerido

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

6

2

M´ odulo ADC del PIC16F887 El PIC16f887 tiene un set de 14 entradas anal´ogicas, que van desde la entrada anal´ogica 0 (AN0) hasta la entrada anal´ogica 13(AN13). Estas entradas anal´ogicas est´an distribuidas en los puertos A , E y B del microcontrolador. El m´odulo ADC nos permite conocer el exterior del microcontrolador a trav´es de 1024 estados que representan la escala de conversi´on del voltaje anal´ogico presente en cualquiera de sus entradas anal´ogicas, es decir que el PIC tiene la capacidad de convertir cualquier voltaje (no espec´ıficamente 0 o 5 V) en un n´ umero entero de 10 bits. Esta caracter´ıstica es muy u ´til para medir y controlar sistemas con caracter´ısticas no digitales, debido a que permiten que la se˜ nal cont´ınua 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 operaci´on del m´odulo ADC, los cuatro bits CHS < 3 : 0 > pertenecientes al registro ADCON0 se encargan de escoger la entrada anal´ogica que ser´a usada para realizar la conversi´on mediante un multiplexor de 4 bits y 16 estados, n´otese la configuraci´on CHS < 3 : 0 >= 0b1111 que obtiene una referencia interna fija (no var´ıa 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 m´odulo ADC, luego de activar este bit, hay que esperar un tiempo para que el m´odulo ADC est´e listo para trabajar. El bit GO del registro ADCON0, inicia la conversi´on ADC cuando se escribe un 1 en ´el, regresando a 0 hasta que la conversi´on anal´ogico a digital.

3

El bit ADFM provee el orden con el que los datos de la conversi´on anal´ogica se guardar´an 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, ser´ıa conveniente env´ıar s´olo un byte, usando la justificaci´on izquierda y en el ente que reciba el dato, se agregar´ıan los 2 bits menos significativos, facilitando la transmisi´on pero dejando una incerteza m´axima de: 3 ∗ (vref + −vref −) (1) 210 con respecto al valor original. Para manipular los datos internamente, conviene usar la justificaci´on derecha, para que la conversi´on 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 anal´ogico / digital. Estos pasos se listan a continuaci´on. Para una entrada anal´ogica 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 anal´ogica deseada, en este caso u ´nicamente es AN0. ANSEL=0x01; // Solamente AN0 como entrada anal´ ogica. ANSELH=0x00;

4

2.2.

Configurar el m´ odulo ADC

A continuaci´on haremos la configuraci´on adecuada del ADC. 2.2.1.

Seleccionar el clock de conversi´ on

Para seleccionar el clock de conversi´on 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 conversi´on 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, justificaci´on izquierda) hay que escribir el bit ADFM del registro ADCON1. ADCON1.ADFM=0; // justificaci´ on izquierda

5

2.3.

Encender el m´ odulo ADC

Encender el m´odulo ADC mediante el bit ADON. Y esperar a que el m´odulo est´e listo, ver secci´on 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 est´a configurado el m´odulo ADC, ahora queda iniciar la conversi´on 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 led’s, circuito de ICSP, potenci´ometro colocado a manera de divisor de voltaje, conectado en el pin RA0.

6

Figura 1: Diagrama general ADC del PIC16f887

Figura 2: Formato del resultado en ADRESH y ADRESL

7

Figura 3: Tabla 9-1 Clock de conversion

8