Documentos de Académico
Documentos de Profesional
Documentos de Cultura
USB/Bluetooth
Modem-Router
Paciente
Modem-Router inalmbrico
INTERNE T
Amplificad or Ganancia G
Niveles de cuantizacin = 2N (el nmero de puntos diferentes con el cual se representa la seal digital en amplitud ) V Resolucin = N bits 3 2 1
2.5V=Va
VRE FH
Vc Vb Vd
VREFL
Tc 2Tc 3Tc 4Tc 5Tc
t(seg .)
La seal digitalizada
Supongamos N=8 bits, VREFH= 5 V y VREFL= 0V. Resolucin = 8 bits 4 5 Niveles de cuantizacin = 256 5V 19,5mV Precisin del ADC = = 256
valores discretos
11111111b
3 2 1
VREFH
11010010b
19,6mV
VREFL
Muestra 1 =
La frecuencia de muestreo
La frecuencia de muestreo depende de la naturaleza de la seal. Una seal de temperatura no es igual que una seal de voz o que una seal de ECG.
Para seales de ECG se establece una frecuencia de muestreo de 250 muestras/seg, para seales de voz de 8000 muestras /seg y para seales de temperatura de 1 muestra/seg Mag. Ing. Sergio Sala
El Aliasing
Toda seal no peridica presenta una caracterstica fundamental: El ancho de banda (BW). Este parmetro se mide en Hz y representa aquellos componentes de frecuencia que son ms importantes en la estructura de la seal. El teorema del muestreo indica que la frecuencia de muestreo de una seal debe de ser al menos el doble del ancho de banda para una correcta digitalizacin (Teorema de Nyquist). Si se digitaliza una seal por debajo de su frecuencia de muestreo recomendada se produce un fenmeno denominado Aliasing, en el cual la seal digitalizada resultante es diferente a la seal original.
El dsPIC30F3014 posee 13 canales multiplexados de entradas analgicas ubicados en los pines del Puerto B. El ADC soporta una resolucin mxima de 12 bits y una frecuencia de muestreo mxima de 100kHz. Posee 16 registros de resultados en los cuales se pueden ir acumulando las muestras generadas por cada canal de forma sucesiva. Entradas Analgicas Entradas Analgicas
ar que la tensin mxima y mnima de la seal no supere los voltajes VREF+ y V urar los pines del Puerto B como analgicos y seleccione los voltajes de referenc ione el canal de entrada del A/D. ione la fuente de disparo de conversin. der el A/D. s, se requiere configurar la interrupcin: el bit ADIF (IFS0<11>, bandera de fin de conversin). cionar la prioridad del A/D. el bit ADIE en 1 y activar la interrupcin por fin de conversin (IEC0<11>) zar a muestrear. ar el tiempo de adquisicin. rar el fin de adquisicin, empezar la conversin. ar a que se complete la conversin, ya sea por espera de la interrupcin o por el l buffer de resultado y borrar el bit ADIF.
ADCS <5 : 0> 2 000000 -> 2 TAD - 1 ADCS = TBUS*2 TBUS 000001 -> TBUS*4 000011 -> Para que el A/D de el resultado correcto se requiere TBUS*8 000111 -> 14 TAD. TBUS*16 001111 -> TBUS*32 011111 -> Mag. Ing. Sergio Sal
El multiplexor analgico
s multiplexores (A y B) que permiten seleccionar el canal de entrada a tomar la m n del canal se realiza con los bits ADCHS<3:0> AN0 AN1 AN2 AN3 . . . . . Multiplexor A
AN12
ro ADPCFG especifica el bit analgico ponindolo a 0. Por defecto todos los pin B estn configurados como analgicos. El TRISB debe configurarse como entrada vo pin que desea utilizarse para la lectura de la seal analgica.
el bit ADON (ADCON1<15>) se pone a 1 el A/D se alimenta y se vuelve activo. ASCON2<15:13> seleccionan el voltaje de referencia a configurar en el dsPIC.
ADCON1.SAMP=1 ADCON1.SAMP=0
DONE
ADCBUF0
odo automtico, el bit ASAM (ADCON1<2>) se pone a 1 as que el A/D comienc ar cuando la conversin previa se ha completado.
ADCON1.SAMP=0 ADCON1.SAMP=1 ADCON1.SAMP=0
ADCBUF0
15 ADON
13 ADIDL
Registro ADCON1
9 8 7 3 2 ASAM 1 SAMP FORM<1:0>SSRC<2:0>
0 DONE
ADON: ADC ON/OFF ASAM: Bit de auto inicio ADIDL: Se detiene el A/D en modo IDLE (ADIDL = 1) SAMP: Bit habilitador del muestr FORM<1:0>: Formato de salida DONE: Bit de finalizacin de la 00 -> Entero conversin: 01 -> Entero con signo 1: finalizada 10 -> Fraccional 0: en progreso 11 -> Fraccional con signo SSRC<2:0> Seleccin del disparo de conversin 000 -> SAMP = 0 001 -> PIN INT0 inicia la conversin 010 -> Timer3 = PR3 finaliza el muestreo y empieza la conversin 011 -> Intervalo del PWM finaliza el muestreo y empieza la conversin 101..110 -> Reservados 111 -> Modo automtico
Registro ADCON2
15 13 10 CSCNA 7 BUFS 5 4 3 2 1 0 VCFG<2:0> SMPI<3:0> BUFM ALTS
FG<2:0>: Referencia de voltaje BUFM: Modo del buffer. 000 -> VREFH = AVDD, VREFL = AVSS 1: Buffer se lee como 2 registros 001 -> VREFH = VREF+, VREFL = AVSS de 8 bits. 010 -> VREFH = AVDD, VREFL = VREF0: Buffer se lee como un solo 011 -> VREFH = VREF+, VREFL = VREFregistro. 1XX -> VREFH = AVDD, VREFL = AVSS ALTS: Alternar la muestra de entrada NA: Opcin de escaneo. 1: Alternancia habilitada FS: Bit de estado del buffer lleno (solo es vlido si BUFM = 1) 0: Alternancia desh 1: A/D usa los registros buffer 8 15. 0: A/D usa los registros buffer 0 - 7 PI <3:0> Secuencias por interrupcin: 0000 Interrupcin al completarse una secuencia de conversin. 0001 Interrupcin al completarse una secuencia de dos muestras. .. 1110 Interrupcin al completarse una secuencia de 15 muestras 1111 Interrupcin al completarse una secuencia de 16 muestras Mag. Ing. Sergio Sal
Registro ADCON3
15 12 8 7 ADRC 5 ADCS<5:0> 0 SAMC<4:0>
SAMC<4:0>: Bits de tiempo de auto muestreo 00000 -> 0 00001 -> TBUS 00010 -> TBUS*2 . 11111 -> TBUS*31 ADRC: Fuente de reloj 1: Circuito RC. 0: Reloj del sistema. ADCS <5:0> Bits de seleccin del reloj de conversin: 000000 TBUS/2*(ADCS>5:0>+1) = TBUS*2 000001 TBUS/2*(ADCS>5:0>+1) = TBUS .. 111111 TBUS/2*(ADCS>5:0>+1) = 32xTBUS
15
12
11
Registro ADCHS
8 4 CH0NA
3 CH0SA<3:0>
CH0NB CH0SB<3:0>
CH0NB ->: Canal 0 negativo para el mux B 1: Seleccin de AN1 0: VREF- seleccionado CH0SB<3:0> Selector de canal para el multiplexor B 0000 -> AN0 0001 -> AN1 1110 -> AN14 1111 -> AN15 CH0NA -> Canal 0 negativo para el mux A 1: Seleccin de AN1 0: VREF- seleccionado CH0SB<3:0> Selector de canal para el multiplexor B 0000 -> AN0 0001 -> AN1 1110 -> AN14 1111 -> AN15
Librera ADC.h
Librera ADC.c
#include "p30fxxxx.h" #include "ADC.h" #include "libpic30.h" void INICIA_ADC(unsigned char canal) { ADPCFG = 0xFFFE; ADPCFG <<=canal; //Configurar el pin respectivo como analgico ADCON1 = 0x0004; //ADC off, Formato de la muestra entero ADCHS = 0x0000 + canal; //Conectar RB0 a AN10 como entrada CH0 ADCSSL = 0; //Sin scan ADCON3 = 0x1003; //ADCS=3 (TAD minimo para 10MHz es 3*TCY=300ns) ADCON2 = 0; //Interrupcin al completarse una muestra ADCON1bits.ADON = 1; //ADC ON } unsigned int CONVERTIR_ADC(void) { ADCON1bits.SAMP = 0; //Borrar el bit SAMP while(ADCON1bits.SAMP == 0); //Esperar el fin de la conversin return(ADCBUF0); }
//Macros para la configuracin de los fusibles _FOSC(CSW_FSCM_OFF & XT_PLL4); _FWDT(WDT_OFF); _FBORPOR(PBOR_OFF & PWRT_16 & MCLR_EN); _FGS(CODE_PROT_OFF); unsigned int muestra; unsigned char aux; void main() { TRISB = 0xFFFF; //Port B is input TRISD = 0; INICIA_ADC(0); __delay_ms(15); LCD_CONFIG(); ESCRIBE_MENSAJE("Muestra: ",9);