Professional Documents
Culture Documents
Microcontroladores PIC
ATE-Universidad de Oviedo
Puede ser VDD o la tensin aplicada en los pines RA2 y/o RA3.
Posibilidad de seguir funcionando cuando el PIC est en modo SLEEP. Hay 11 registros asociados a este perifrico.
Definicin de pines de entrada Manejo de interrupciones
INTCON PIE1 PIR1 ADCON0 ADCON1 ADRESH - ADRESL
ATE-Universidad de Oviedo
Microcontroladores PIC
Estructura interna
RA0/AN0 RA1/AN1 RA2/AN2/VREFRA3/AN3/VREF+ RA5/AN4 RE0/AN5 RE1/AN6 RE2/AN7
000 001 010 011 100 101 110 111
CHS2:CHS0
Convertidor A/D
VAIN (Input Voltage)
PCFG3:PCFG0
VREF-
GO/DONE
ADON
bit 7-6
bit 5-3
bit 2
bit 0
Microcontroladores PIC
ATE-Universidad de Oviedo
ADON
bit 7-6
ADCS1:ADCS0: Seleccin del reloj para la conversin A/D junto con ADCS2 que est en ADCON1
00 = fOSC / 2 00 = fOSC / 4 01 = fOSC / 8 01 = fOSC / 16 10 = fOSC / 32 10 = fOSC / 64 11 = fRC 11 = fRC
ADCS2= 0 ADCS2= 1
bit 5-3
bit 2
bit 0
Microcontroladores PIC
ATE-Universidad de Oviedo
PCFG1
PCFG0
bit 7
bit 3-0
Microcontroladores PIC
ATE-Universidad de Oviedo
PCFG1
PCFG0
ADCS2: Seleccin de reloj para conversin A/D junto con ADCS1 y ADCS0 PCFG3:PCFG0: Configuracin de las entradas al mdulo A/D
PCFG3: AN7 PCFG0 RE2 0000 0001 0010 0011 0100 0101 011x 1000 1001 1010 1011 1100 1101 1110 1111 A A D D D D D A D D D D D D D AN6 RE1 A A D D D D D A D D D D D D D AN5 RE0 A A D D D D D A A A A D D D D AN4 RA5 A A A A D D D A A A A A D D D AN3 RA3 A VREF+ A VREF+ A VREF+ D VREF+ A VREF+ VREF+ VREF+ VREF+ D VREF+ AN2 RA2 A A A A D D D AN1 RA1 A A A A A A D A A A A A A D D AN0 RA0 A A A A A A D A A A A A A A A
Microcontroladores PIC
ATE-Universidad de Oviedo
bit 7 bit 6
bit 6
bit 6
Microcontroladores PIC
ATE-Universidad de Oviedo
- Bajar el flag ADIF. (PIR1) - Habilitar la interrupcin del convertidor A/D. - Habilitar las interrupciones de los perifricos. - Habilitar la mscara global de interrupciones.
- Tiempo necesario para capturar el valor analgico a convertir. - Los valores tpicos del tiempo de adquisicin son del orden de 20s.
ATE-Universidad de Oviedo
Microcontroladores PIC
4. Comenzar la conversin.
a) Controlando cundo el bit GO/DONE se pone a 0. b) Esperando a que llegue la interrupcin del convertidor. - Disponible en los registros ADRESH:ADRESL. - Bajar el flag ADIF si se estn usando interrupciones.
10
Tiempo de adquisicin
Tiempo necesario para cargar el condensador de mantenimiento (CHOLD).
VDD
RS VA
SS
En estas condiciones, TACQ=Amplifier Settling Time +Hold Capacitor Charging Time +Temperature Coefficient =TAMP + TC + TCOFF =2s + TC + [(Temperature -25C)(0.05s/C)] TC = - CHOLD (RIC + RSS + RS) Ln(1/2047) = -120pF (1k. + 7k. + 10k.) Ln(0.0004885) = 16.47s TACQ=2s + 16.47s + [(50C -25C)(0.05s/C) = 19.72s 20s
Microcontroladores PIC
11
Tiempo de conversin
La conversin de 10 bits dura 12TAD.
Tciclo TAD TAD TAD b9 TAD b8 TAD b7 TAD b6 TAD b5 TAD b4 TAD b3 TAD b2 TAD b1 TAD b0
Se carga ADRES Se pone GO/DONE a 0 Se levanta el flag ADIF CHOLD conectado a entrada analgica
Tambin TAD=4TOSC - TAD=16TOSC - TAD=64TOSC en PIC16F87xA Para un funcionamiento correcto se necesita un valor mnimo de TAD=1,6s.
Microcontroladores PIC ATE-Universidad de Oviedo
12
2 TAD
Depende de Rs externa
Interruptor de muestreo cerrado para alcanzar el nuevo valor a convertir
T. de conversin
T. de adquisicin
GO/DONE 0
Interruptor abierto Inicio de conversin
Interruptor cerrado
SS RSS
CHOLD VSS
Desde el fin de conversin hasta que se vuelve a cerrar el interruptor transcurren 2TAD 13
Microcontroladores PIC
ATE-Universidad de Oviedo
Depende de Rs externa
Interruptor de muestreo cerrado para alcanzar el nuevo valor a convertir A partir de aqu se podra lanzar una nueva conversin porque ya se ha alcanzado el valor de la tensin a convertir
T. de conversin
T. de adquisicin
SS
SS
Inicio de conversin
GO/DONE 1
CONDICIN a cumplir:
Microcontroladores PIC
ATE-Universidad de Oviedo
14
La primera transicin tiene lugar cuando la tensin analgica de entrada alcanza el valor VREF- + (VREF+ - VREF-)/1024 1LSb.
11 bits
Funcin de transferencia
400h 3FFh
1 LSb 2 LSb
1022 LSb
1023 LSb
1024 LSb
3 LSb
4 LSb
1021 LSb
Microcontroladores PIC
ATE-Universidad de Oviedo
15
0 = Ajuste a la izquierda
AN3 RA3 A VREF+ A VREF+ A VREF+ D VREF+ A VREF+ VREF+ VREF+ VREF+ D VREF+ AN2 RA2 A A A A D D D AN1 RA1 A A A A A A D A A A A A A D D AN0 RA0 A A A A A A D A A A A A A A A
Microcontroladores PIC
ATE-Universidad de Oviedo
16
bit 7-6
bit 5-3
bit 2
bit 0
Microcontroladores PIC
ATE-Universidad de Oviedo
Mdulo A/D durante el modo SLEEP El mdulo A/D puede funcionar durante el modo dormido si se selecciona como reloj para la conversin el RC interno (ADCS1:ADCS0 = 11). Cuando se escoga como reloj el RC, el mdulo A/D espera 1 ciclo de instruccin antes de iniciar la conversin. Esto permite que se ejecute la instruccin SLEEP, lo cual elimina todo posible ruido de conmutacin (debido al paso de normal a dormido) en la conversin. Cuando se haya completado la conversin, el bit GO/DONE se pone a 0 y el resultado se carga en los registros ADRES. Si la interrupcin del conversor A/D est habilitada (ADIE y PEIE a 1) el dispositivo se despertar. Si no estuviera habilitada, el mdulo A/D se apagar aunque el bit ADON siga a 1. Si la fuente de reloj para la conversin no es la RC interna, una instruccin SLEEP provocar que la conversin que se este ejecutando se aborte y que el mdulo A/D se apague aunque el bit ADON siga a 1.
Microcontroladores PIC ATE-Universidad de Oviedo
18
Efectos de un RESET sobre el mdulo A/D Un RESET del dispositivo provoca que los registros del mdulo A/D se inicialicen a los valores indicados en la tabla. Por tanto, un RESET provoca que el mdulo A/D se apague y que cualquier conversin que se estuviera realizando cuando se produce el RESET se aborte. Todos los pines asociados al mdulo A/D pasan a ser entradas analgicas. Los valores acumulados en ADRESH:ADRESL no se modifican por un Power-On-Reset. El valor que contendrn los registros ADRESH:ADRESL tras un POR sern desconocidos inicialmente.
Microcontroladores PIC
ATE-Universidad de Oviedo
19
; TEMP ; ; ; ; ; start
org 0x04 ; Vector de interrupcin goto service_int org 0x10 movlw 0FFh movwf PORTB bsf STATUS,RP0 movwf TRISA clrf TRISB bcf STATUS,RP0 call InitializeAD call SetupDelay bsf ADCON0,GO goto loop
; PORTB = 11111111b ; Banco 1 ; PORTA son entradas ; PORTB son salida ; Banco 0 ; Delay para Tad ; Inicia conversin A/D
; InitializeAD, inicializa el modulo A/D. ; Selecciona CH0 a CH3 como entradas analgicas, reloj RC y lee el CH0. ; InitializeAD bsf STATUS,RP0 ; Banco 1 movlw B'00000100' ; RA0,RA1,RA3 entradas analogicas movwf ADCON1 ; Justificado a la izquierda ; 8 bits mas significativos en ADRESH bsf PIE1,ADIE ; Habilitamos interrupciones A/D bcf STATUS,RP0 ; Banco 0 movlw 0C1h ; Oscilador RC, Entrada analgica CH0 movwf ADCON0 ; Modulo A/D en funcionamiento bcf PIR1,ADIF ; Limpio flag interrupcin bsf INTCON,PEIE ; Habilito interrupciones de perifericos bsf INTCON,GIE ; Habilito interrupciones globales return ; Esta rutina es un retardo software de ms de 10us si ; se usa un oscilador de 4MHz que se usa para asegurar ; un tiempo de adquisicin de ms de 20 us antes de ; lanzar una nueva conversin. SetupDelay SD movlw 3 movwf TEMP decfsz TEMP, F goto SD return END ; Carga Temp con 3 ; Bucle de retardo
loop ;
Microcontroladores PIC
ATE-Universidad de Oviedo
20
10