Libro básico de arduino electrónica y programación varios autores
CONVERSOR A/D Programación en C para electrónica.
-
Upload
adoria-lorenzo -
Category
Documents
-
view
38 -
download
1
Transcript of CONVERSOR A/D Programación en C para electrónica.
![Page 1: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/1.jpg)
CONVERSOR A/D
Programación en C para electrónica
![Page 2: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/2.jpg)
2
Conversor A/D - Programción en C para electrónica
Programación en C para electrónica
Conversor A/D
![Page 3: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/3.jpg)
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.
![Page 4: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/4.jpg)
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.
![Page 5: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/5.jpg)
Conversor A/D - Programción en C para electrónica
5
Módulo conversor
![Page 6: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/6.jpg)
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
![Page 7: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/7.jpg)
Conversor A/D - Programción en C para electrónica
7
Registros asociados
Registro de control ADCON0 (dir. 0x1F)
![Page 8: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/8.jpg)
Conversor A/D - Programción en C para electrónica
8
Registros asociados
Registro de control ADCON1 (dir. 0x9F)
![Page 9: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/9.jpg)
Conversor A/D - Programción en C para electrónica
9
Configuraciones
Selección del reloj de conversión.
![Page 10: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/10.jpg)
Conversor A/D - Programción en C para electrónica
10
Configuraciones
Selección del canal de conversión
Estado conversión
![Page 11: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/11.jpg)
Conversor A/D - Programción en C para electrónica
11
Configuraciones
Activación del conversor
Formato del resultado (ADCON1)
![Page 12: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/12.jpg)
Conversor A/D - Programción en C para electrónica
12
Configuraciones
Configuración de entradas
![Page 13: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/13.jpg)
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).
![Page 14: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/14.jpg)
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.
![Page 15: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/15.jpg)
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
![Page 16: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/16.jpg)
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.
![Page 17: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/17.jpg)
Conversor A/D - Programción en C para electrónica
17
Funciones ADC en CCS
![Page 18: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/18.jpg)
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
![Page 19: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/19.jpg)
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.
![Page 20: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/20.jpg)
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
![Page 21: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/21.jpg)
Conversor A/D - Programción en C para electrónica
21
Ejemplo
![Page 22: CONVERSOR A/D Programación en C para electrónica.](https://reader033.fdocuments.co/reader033/viewer/2022061217/54b3efc14979594d3a8b56c3/html5/thumbnails/22.jpg)
Conversor A/D - Programción en C para electrónica
22
Ejemplo