Vous êtes sur la page 1sur 16

UNIVERSIDAD NACIONAL DE HUANCAVELICA

FACULTAD DE INGENIERIA ELECTRONICA–SISTEMAS


ESCUELA ACADEMICO PROFESIONAL DE ELECTRONICA

Conversor ADC del PIC18F2550

MG. JAVIER CAMILO POMA PALACIOS


PAMPAS -2017
Conversor ADC
Un conversor analógico-digital es un dispositivo electrónico que
convierte una entrada analógica de voltaje a un número digital.
Conversor ADC del PIC18F2550
Los microcontroladores PIC pueden incorporar un módulo de conversión
de señal analógica a señal digital. Los módulos AD que utiliza Microchip
hacen un muestreo y retención (sample & hold) con un condensador y
después utiliza el módulo de conversión. El módulo de conversión A/D
es del tipo de aproximaciones sucesivas.
ADC DEL PIC18F2550
El módulo que utilizan los PIC´s de gama alta tiene un número de 10 bits,
por lo que su resolución es: 𝑉𝑟𝑒𝑓+ − 𝑉𝑟𝑒𝑓−
Va: voltaje offset. Resolución = 𝑛 + Va
2

5𝑉
Para el caso: 𝑉𝑟𝑒𝑓+ = 5𝑉 𝑦 𝑉𝑟𝑒𝑓− = 0V Resolución =
210
ADC DEL PIC18F2550

• 10 canales de entrada para señal analógica, para una entrada


máxima de 5V.
• Utiliza la conversión por método de aproximaciones sucesivas.
• 10 bits de resolución.
• Voltaje alto y bajo de referencia seleccionable por software.
• Posibilidad de ejecución en modo SLEEP.
• Tiempo de muestreo configurable.
• En el lenguaje C de CCS, se tiene las funciones para realizar
la conversión .
ADC DEL PIC18F2550

Se requiere 4 Registros Básicos


– 2 Registros de configuración:

ADCON0

ADCON1

– 2 Registros para almacenar los datos: ADRESH y ADRESL


ADC DEL PIC18F2550
setup_adc_ports (valor); // para C de CCS.
Valor: definición de las entradas analógicas correspondiente a los bits 3-0 del
ADCON1. (Seleccionar canal de entrada)
ADC DEL PIC18F2550
setup_adc_ports (valor); //para C de CCS
Valor: definición de las entradas analógicas correspondiente a los bits 3-0 del registro
ADCON1.
#define NO_ANALOGS 0x0F // None
#define ALL_ANALOG 0x00 // A0 A1 A2 A3 A5 B2 B3 B1 B4 B0
#define AN0_TO_AN11 0x03 // A0 A1 A2 A3 A5 B2 B3 B1 B4
#define AN0_TO_AN10 0x04 // A0 A1 A2 A3 A5 B2 B3 B1
#define AN0_TO_AN9 0x05 // A0 A1 A2 A3 A5 B2 B3
#define AN0_TO_AN8 0x06 // A0 A1 A2 A3 A5 B2
#define AN0_TO_AN4 0x0A // A0 A1 A2 A3 A5
#define AN0_TO_AN3 0x0B // A0 A1 A2 A3
#define AN0_TO_AN2 0x0C // A0 A1 A2
#define AN0_TO_AN1 0x0D // A0 A1
#define AN0 0x0E // A0
ADC DEL PIC18F2550
– Configurar bit de Resultado
(bit ADFM del registro ADCON1)

– Habilitar el modulo conversor


(bit ADON del registro ADCON0)
ADC DEL PIC18F2550
Módulo ADC en C
Valor Canal
set_adc_channel (canal); 0 AN0
canal: selecciona canal analógico 1 AN1
correspondiente a los bits 5:3 de 2 AN2
ADCON0. 3 AN3
4 AN4
5 No implementado
6 No implementado
7 No implementado
8 AN8
9 AN9
10 AN10
11 AN11
12 AN12
ADC DEL PIC18F2550
Módulo ADC en C
Para los voltajes de referencia se tiene los siguientes valores:

#define VSS_VDD 0x00 // Range 0-VDD


#define VREF_VREF 0x30 // Range VrefL-VrefH
#define VREF_VDD 0x20 // Range VrefL-VDD
#define VSS_VREF 0x10 // Range 0-VrefH
ADC DEL PIC18F2550
Módulo ADC en C

Tiempo de adquisición y tiempo de conversión


 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.
ADC DEL PIC18F2550

En el compilador C las funciones para manejar el convertidor A/D


son las siguientes:
setup_adc (modo);
modo: para la configuración del módulo correspondientes al
registro ADCON2. (programar frecuencia de adquisición)
ADC DEL PIC18F2550
Módulo ADC en C

Valor = read_adc([modo]);
 Lectura del resultado de la conversión.
 Modo es el modo de lectura, según la siguiente lista.
 ADC_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.
ADC DEL PIC18F2550
Módulo ADC en C
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, donde x es el # de bits de resolución.
APLICACIÓN ADC DEL PIC18F2550 Y LCD
Ejemplo de aplicación de mostrar mensaje en un LCD 16x2, utilizando el
conversor ADC de 10 bits, y formatos de presentación .

LCD1
LM016LP
VDD

VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E

K
1
2
3
4
5
6

7
8
9
10
11
12
13
14

15

16
D0
D1
D2
D3
RV1 R1
1K
50%

VDD
5k

VDD

C1

15pF R9
10k

X1
4MHz
1 U2
U1 D9
2 9 C2 1N914
RA0/AN0 OSC1/CLKI
3 10
27.0 RA1/AN1 RA6/OSC2/CLKO
4
RA2/AN2/VREF-/CVREF
5
RA3/AN3/VREF+
15pF R10
2 6 1
VOUT RA4/T0CKI/C1OUT/RCV RE3/MCLR/VPP
7
RA5/AN4/SS/LVDIN/C2OUT 10k
11
RC0/T1OSO/T1CKI
12
RC1/T1OSI/CCP2/UOE
3 LM35 D0 21 13
RB0/AN12/INT0/FLT0/SDI/SDA RC2/CCP1
D1 22 15
RB1/AN10/INT1/SCK/SCL RC4/D-/VM
D2 23 16
RB2/AN8/INT2/VMO RC5/D+/VP
D3 24 17
RB3/AN9/CCP2/VPO RC6/TX/CK
25 18
RB4/AN11/KBI0/CSSPP RC7/RX/DT/SDO
26
RB5/KBI1/PGM
27 14
RB6/KBI2/PGC VUSB
28
RB7/KBI3/PGD
PIC18F2550

Vous aimerez peut-être aussi