conversor a/d programación en c para electrónica

Post on 12-Jan-2015

38 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CONVERSOR A/D

Programación en C para electrónica

2

Conversor A/D - Programción en C para electrónica

Programación en C para electrónica

Conversor A/D

Conversor A/D - Programción en C para electrónica

3

Conversión A/D

Los microcontroladores PIC pueden incorporar un módulo conversor analógico-digital. El módulo es un conversor A/D por

aproximaciones sucesivas. Utiliza un circuito de retención y muestreo.

Conversor A/D - Programción en C para electrónica

4

Conversión A/D

Durante la fase de muestreo se carga el condensador del retenedor a la tensión de entrada durante el tiempo necesario (20us).

Después el condensador se aísla del circuito de entrada.

Luego el conversor realiza la conversión del nivel de tensión adquirido por el retenedor.

Conversor A/D - Programción en C para electrónica

5

Módulo conversor

Conversor A/D - Programción en C para electrónica

6

Características de resolución La resolución viene dada por la siguiente

ecuación:

En el caso que las tensiones de referencia sean las de alimentacion:

Con esto para calcular la tensión convertida solo tenemos que multiplicar el valor de conversión por el valor de 1LSB.

1024

)(1

REFREFREF

VVVLSB

mVLSB 8.41024

5

1024

)05(01

Conversor A/D - Programción en C para electrónica

7

Registros asociados

Registro de control ADCON0 (dir. 0x1F)

Conversor A/D - Programción en C para electrónica

8

Registros asociados

Registro de control ADCON1 (dir. 0x9F)

Conversor A/D - Programción en C para electrónica

9

Configuraciones

Selección del reloj de conversión.

Conversor A/D - Programción en C para electrónica

10

Configuraciones

Selección del canal de conversión

Estado conversión

Conversor A/D - Programción en C para electrónica

11

Configuraciones

Activación del conversor

Formato del resultado (ADCON1)

Conversor A/D - Programción en C para electrónica

12

Configuraciones

Configuración de entradas

Conversor A/D - Programción en C para electrónica

13

Proceso de conversión.

1. Configurar módulo A/Da) Configurar pines analógicos (ADCON1)b) Seleccionar canal (ADCON0)c) Selección del reloj de conversión (ADCON0)d) Habilitar módulo (ADCON0)

2. Esperar tiempo de adquisición 3. Comenzar la conversión. (ADCON0)4. Esperar a que termine la conversión.5. Leer registro de conversión (ADRES).

Conversor A/D - Programción en C para electrónica

14

Tiempos

Tiempo de adquisición (TACQ). Tiempo necesario para que se cargue el

condensador del circuito de retención. Normalmente este tiempo es de 20μs. La adquisición no empieza hasta que no

termina la conversión. Tiempo de conversión (TAD):

Tiempo necesario para obtener el valor digital. Depende de la frecuencia de reloj. Como mínimo deber ser de 1,6μs.

Conversor A/D - Programción en C para electrónica

15

Funciones ADC en CCS

El compilador CCS dispone de funciones que facilitan el uso del conversor A/D.

setup_adc(modo); Donde modo es una constante que configura la

velocidad de conversión. ADC_OFF ADC_CLOCK_INTERNAL ADC_CLOCK_DIV_2 ADC_CLOCK_DIV_4 ADC_CLOCK_DIV_8 ADC_CLOCK_DIV_16 ADC_CLOCK_DIV_32 ADC_CLOCK_DIV_64

Conversor A/D - Programción en C para electrónica

16

Funciones ADC en CCS

setup_adc_ports(valor); Donde valor es una constante definida

en el fichero device.h que se utiliza para configurar el funcionamiento de todos los canales analógicos.

Esta función configura los bits del 3 al 0 del registro ADCON1.

Conversor A/D - Programción en C para electrónica

17

Funciones ADC en CCS

Conversor A/D - Programción en C para electrónica

18

Funciones ADC en CCS

set_adc_channel(canal); Donde canal es el canal analógico

seleccionado.Valor Canal

0 AN0

1 AN1

2 AN2

3 AN3

4 AN4

5 AN5

6 AN6

7 AN7

Conversor A/D - Programción en C para electrónica

19

Funciones ADC en CCS

Valor = read_adc([modo]); Lectura del resultado de la conversión. Modo es el modo de lectura, según la

siguiente lista. ACD_START_AND_READ

Inicia la conversión y lee el resultado (Por defecto) ADC_START_ONLY

Solo inicia la conversión. ADC_READ_ONLY

Solo lee el resultado de la conversión.

Conversor A/D - Programción en C para electrónica

20

Funciones ADC en CCS

Valor = read_adc([modo]); El resultado es un entero de 16 bits. La precisión en bits de la conversión y el

desplazamiento de los bit se pueden configurar mediante la directiva #device según la siguiente tabla:

#device ADC=x

Conversor A/D - Programción en C para electrónica

21

Ejemplo

Conversor A/D - Programción en C para electrónica

22

Ejemplo

top related