Microcontroladores 9 Adc

9
MECATRONICA SISTEMAS MICROCONTROLADOS 146 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas SISTEMAS MICROCONTROLADOS Capítulo 9 Conversor A/D Este convertidor permite la conversión de hasta 14 entradas analógicas. El convertidor (figura 9.1) es de diez bits y convierte por aproximaciones sucesivas. La señal de referencia para el convertidor puede ser VDD o el valor leído a través de las patillas AN3/VREF+, AN2/VREF-. Tiene la característica especial de que puede funcionar en modo de reposo. Figura 9.1 Diagrama de bloques del convertidor A/D de 10 bits. Los registros asociados al convertidor son: ADCON0: Controlan la operación A/D del módulo. ADCON1: Configura las funciones de los pines de los puertos. ADRESH y ADRESL : Resultado de la conversión. ANSEL y ANSELH: selección del canal analógico. A continuación se realiza la descripción de cada uno de ellos. El registro ADCON0 consta de los siguientes bits:

Transcript of Microcontroladores 9 Adc

Page 1: Microcontroladores 9 Adc

MECATRONICASISTEMASMICROCONTROLADOS

146 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

SISTEMAS MICROCONTROLADOS

Capítulo 9

Conversor A/D

Este convertidor permite la conversión de hasta 14 entradas analógicas. El convertidor (figura 9.1) es de diez bits y convierte por aproximaciones sucesivas. La señal de referencia para el convertidor puede ser VDD o el valor leído a través de las patillas AN3/VREF+, AN2/VREF-. Tiene la característica especial de que puede funcionar en modo de reposo.

Figura 9.1 Diagrama de bloques del convertidor A/D de 10 bits.

Los registros asociados al convertidor son: ADCON0: Controlan la operación A/D del módulo. ADCON1: Configura las funciones de los pines de los puertos. ADRESH y ADRESL : Resultado de la conversión. ANSEL y ANSELH: selección del canal analógico.

A continuación se realiza la descripción de cada uno de ellos.

El registro ADCON0 consta de los siguientes bits:

Page 2: Microcontroladores 9 Adc

MECATRONICASISTEMASMICROCONTROLADOS

147 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

bit 7:6 ADCS1:ADCS0: Bits de selección del reloj para la conversión A/D.

Con ADSC2 del registro ADCON1=0

00 = FOSC/2.

01 = FOSC/8.

10 = FOSC/32.

11 = FRC (Reloj del oscilador interno RC).

bit 5:2 CHS2:CHS0: Bits de selección del canal.

0000 = Canal 0, (AN0).

0001 = Canal 1, (AN1).

0010 = Canal 2, (AN2).

0011 = Canal 3, (AN3).

0100 = Canal 4, (AN4).

0101 = Canal 5, (AN5).

0110 = Canal 6, (AN6).

0111 = Canal 7, (AN7).

1000 = Canal 8, (AN8).

1001 = Canal 9, (AN9).

1010 = Canal 10, (AN10).

1011 = Canal 11, (AN11).

1100 = Canal 12, (AN12).

1101 = Canal 13, (AN13).

1110 = CVREF

1111=Referencia corregida (0.6V voltaje de referencia corregida)

bit 1 GO/ DONE: Bits de estado de la conversión

Cuando ADCON = 1

1 = Conversión en proceso (poner a ‘1’ para iniciar una conversión).

0 = La conversión ha finalizado/o no esta en progreso.

bit 0 ADCON: Activación del conversor A/D.

1 = El comparador está activado.

0 =El comparador no está activado.

Page 3: Microcontroladores 9 Adc

MECATRONICASISTEMASMICROCONTROLADOS

148 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

En el caso del registro ADCON1 los bits que lo componen son:

bit 7 ADFM: A/D bit de selección de formato de la conversión.

1 = Justificado a la derecha. Los seis bits más significativos de ADRESH se

leen como cero ’0’.

0 = Justificado ala derecha. Los seis bits menos significativos de ADRESL se

leen como. ’0’.

bit 6 Bit no implementado: Se lee como ‘0’.

bit 5 VCFG1:Bit de voltaje de referencia

1= pin VREF-

0=VSS

bit 4 VCFG0:Bit de voltaje de referencia

1= pin VREF+

0=VDD

bit 3:0 Bit no implementado: Se lee como ‘0’.

Los pasos a seguir para realizar una conversión A/D son:

1. Configurar módulo A/D:

a. Configuración de pines analógicos/ Tensión de referencia/ E/S digitales (ANSEL, ANSELH).

b. Selección de la entrada A/D (ADCON0).

c. Selección de reloj para la conversión A/D (ADCON0).

d. Habilitar módulo A/D (ADON (ADCON0<0>)

2. Configurar las interrupciones (si se quiere):

a. ADIF =0

b. GIE = PEIE = ADIE = 1

3. Esperar el tiempo de adquisición.

Page 4: Microcontroladores 9 Adc

MECATRONICASISTEMASMICROCONTROLADOS

149 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

4. Comenzar la conversión poniendo a ‘1’ el bit GO/ DONE (ADCON0<2>).

5. Esperar a que termine la conversión. Puede ser de dos formas:

a. Leyendo constantemente el bit GO/ DONE hasta que se ponga a ‘0’, indicando el fin de la conversión.

b. Esperando a que se produzca la interrupción.

6. Leer registro de conversión ADRESH y ADRESL y borrar el flag ADIF si es necesario.

7. Para la siguiente conversión se salta a los puntos 1, 2 ó 3 en función de lo que se necesite. El tiempo de conversión por bit se define como TAD. Un mínimo de 2TAD son necesarios antes de la conversión.

Para la conversión existen ciertos requerimientos de tiempos:

• Tiempo de adquisición (TACQ): Es el tiempo que tarda en cargarse el condensador de retención con la tensión de la salida. Esta carga depende de varios factores, como pueden ser las impedancias asociadas a la fuente de tensión y a los interruptores de muestreo. Se calcula así:

TACQ = TAMP + TC + TCOFF

Siendo TAMP el tiempo de establecimiento del amplificador, TC el tiempo de carga del condensador y TCOFF el coeficiente de temperatura. El tiempo de adquisición es del orden de 11µs.

• Tiempo de conversión por bit (TAD): Para convertir 10 bits se requiere un tiempo de 9.5TAD. Por otro lado, el TAD va a depender de la fuente de reloj que se seleccione para la conversión. Para una correcta conversión A/D, el reloj debe seleccionarse para asegurar un tiempo TAD de 1,6 µs. En la tabla 4.2 se muestran las distintas fuentes que se pueden seleccionar junto con el TAD asociado a cada una de ellas.

TABLA 4.2 TAD frente a la frecuencia de operación del dispositivo.

Page 5: Microcontroladores 9 Adc

MECATRONICASISTEMASMICROCONTROLADOS

150 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

Nota 1: El TAD típico de una fuente RC es de 4µs.

2: Estos valores violan el mínimo tiempo requerido de TAD.

3: Para conversiones más rápidas se recomienda utilizar otra fuente de reloj.

4: Para dispositivos de frecuencias superiores a 1MHz, el dispositivo debe de estar en modo

SLEEP para la conversión completa, o la precisión del convertidor A/D puede estar fuera de las especificaciones.

El tiempo necesario para la conversión también depende de la resolución con que se quiera realizar dicha conversión. De este modo:

Tiempo de conversión = TAD + N · TAD + (10 – N) (2TOSC),

Siendo N el número de bits a convertir. Este tiempo de conversión se puede forzar violando los requerimientos de TAD.

En la figura 9.2 se muestra la secuencia de la conversión A/D.

Figura 9.2 Secuencia de conversión A/D.

La función de transferencia ideal del convertidor A/D es aquella cuya primera transición ocurre cuando la tensión analógica de entrada es 1 unidad del bit menos significativo del resultado (VREF/256) (figura 9.2).

Page 6: Microcontroladores 9 Adc

MECATRONICASISTEMASMICROCONTROLADOS

151 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

Figura 9.2 Función de transferencia A/D.

Para la conversión, los TRIS asociados tienen que configurase como entradas. Además Si el módulo CCPx está configurado en modo de comparación con trigger interno, éste disparará la conversión A/D.

REGISTROS ASOCIADOS AL CONVERSOR AD

Page 7: Microcontroladores 9 Adc

MECATRONICASISTEMASMICROCONTROLADOS

152 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

9.1 Módulo de Tensión de Referencia.

Este módulo proporciona una tensión seleccionable que se obtiene mediante el uso de 16 resistencias en serie. En la figura 9.3 se ve el hardware de este módulo.

Figura 9.3 Diagrama de bloques de módulo de tensión de referencia.

Los distintos valores que pueden obtener, en función de los bits VR3:VR0 (VRCON<3:0>) y VRR (VRCON<5>), con una alimentación de 5V son los indicados en la tabla.

TABLA Voltajes de referencia típicos con VDD = 5.0 V

VR3:VR0 VrefVRR=1 VRR=0

0000 0.00 V 1.25 V

0001 0.21 V 1.41 V

0010 0.42 V 1.56 V

0011 0.63 V 1.72 V

0100 0.83 V 1.88 V

0101 1.04 V 2.03 V

0110 1.25 V 2.19 V

0111 1.46 V 2.34 V

1000 1.67 V 2.50 V

1001 1.88 V 2.66 V

1010 2.08 V 2.81 V

1011 2.29 V 2.97 V

1100 2.50 V 3.13 V

1101 2.71 V 3.28 V

1110 2.92 V 3.44 V

1111 3.13 V 3.59 V

Page 8: Microcontroladores 9 Adc

MECATRONICASISTEMASMICROCONTROLADOS

153 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

El registro de control de este módulo es el registro VRCON que consta de los siguientes bits:

bit 7 VREN: Habilitación del módulo

CVREF. 1 = El módulo VREF está conectado.

CVREF. 0 = El módulo VREF está desconectado.

bit 6 VROE: Activación de la salida del módulo CVREF

1 = CVREF está habilitado como salida por RA2/AN2/VREF-/CVREF pin.

0 = Tanto el comparador como el pin de salida están desconectados.

bit 5 VRR: Selección del rango de VREF.

1 = De 0V a 0.75 CVRSRC, con un paso de CVRSRC /24.

0 = De 0.25 VDD a 0.75 CVRSRC, con un paso de CVRSRC /32.

bit 4 VRSS: Selección del rango de VREF del comparador.

bit 3:0 VR3:VR0: Selección del valor de CVREF.

Cuando VRR = 1:

CVREF = (VR<3:0>/24) · VDD

Cuando VRR = 0:

CVREF = ¼ · VDD + (VR<3:0>/32) · VDD

Como se puede ver, no se pueden obtener todo el rango de tensiones desde VDD hasta VSS. Hay que tener en cuenta los consumos de potencia al habilitar el pin de salida de VREF. Además también puede utilizarse como salida del convertidor D/A con una capacidad asociada. Debido a ésta capacidad, la tensión de referencia del módulo debe ser utilizada mediante un buffer como se muestra en la figura 9.5.

Page 9: Microcontroladores 9 Adc

MECATRONICASISTEMASMICROCONTROLADOS

154 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

Figura 9.5 Ejemplo de buffer de salida del módulo VREF.

REGISTROS ASOCIADOS AL MODULO DE TENSION DE REFERENCIA