Está en la página 1de 24

ADC del DsPIC

SESION5
El ADC
convierte una señal física (usualmente voltaje) en una cantidad digital que representa amplitud.
Nuestro DsPIC  tiene más de 32 canales de ADC que pueden ser configurados de 10 y 12 bits.

Caracteristicas del ADC

ADC de 10-bit
Conversión por aproximaciones sucesivas
Velocidad de conversión 1.1 Msps
Modo de Scan automático de los canales del ADC
Voltaje de referencia externo en los pines de entrada
Muestreo simultaneo de más de 4 entradas analógicas
Cuatro opciones de lectura (con signo/sin signo, fraccional/integrado)

ADC de 12-bit
En esta configuración de 12-bit, tiene las mismas características que en 10-bits a excepción de las siguientes:
En la configuración de 12-bit, la velocidad de conversión es de más de 500 ksps es soportado.
En la configuración de 12-bit el amplificador mantiene solo una muestra, así que el muestreo simultáneo de
múltiples canales no la soporta.
CARACTERISITICAS DEL MODULO ADC

RESOLUCION= (VDD-VSS)/{2^{n}-1}

MODULO ADC

R1
10k

U1
1 4
MCLR RB0/CN4/RP0/AN2/EMUD1/PGD1
20 5
VDDCORE RB1/CN5/RP1/AN3/EMUC1/PGC1
6
RB2/CN6/RP2/AN4
7
RB3/CN7/RP3/AN5
11
+3.6V RB4/CN1/RP4/SOSCI/EMUD3/PGD3
14
RB5/CN27/RP5/ASDA1
28 15
AVDD RB6/CN24/RP6/ASCL1
27 16
RV1 AVSS RB7/CN23/RP7/INT0
17
RB8/CN22/RP8/SCL1/PWM2H1/TCK
18
RB9/CN21/RP9/SDA1/PWM2L1/TDO
21
RB10/CN16/RP10/PWM1H3/TDI
2 22
98%

RA0/CN2/VREF+/AN0/EMUD2/PGD2RB11/CN15/RP11/PWM1L3/TMS
3 23
RA1/CN3/VREF-/AN1/EMUC2/PGC2 RB12/CN14/RP12/PWM1H2
9 24
RA2/CN30/CLKI/OSCI RB13/CN13/RP13/PWM1L2
10 25
RA3/CN29/CLKO/OSCO RB14/CN12/RP14/PWM1H1
1k 12 26
RA4/CN0/T1CK/SOSCO/EMUC3/PGC3 RB15/CN11/RP15/PWM1L1
D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1
DSPIC33FJ12MC202 LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
. . .

R2
100
CARACTERISITICAS DEL MODULO ADC

El módulo ADC dsPIC33F tiene las siguientes características clave:


• conversión SAR
• Velocidad de conversión de hasta un Msps
• Hasta 13 pines de entrada analógica
• Pines de entrada de referencia de voltaje externo
• Cuatro amplificadores de muestreo / retención diferenciales unipolares
• Muestreo simultáneo de hasta cuatro pines de entrada analógica
• Modo de escaneo automático de canales
• Fuente de activación de conversión seleccionable
• búfer de resultados de conversión de 16 palabras
• Modos de llenado de búfer seleccionables
• Cuatro opciones de alineación de resultados.
• Operación durante los modos de inactividad y reposo de la CPU
CARACTERISITICAS DEL MODULO ADC
Dependiendo de la variante del dispositivo, el módulo ADC puede tener hasta 13 pines de entrada
analógica, designado AN0-AN12.

Estas entradas analógicas están conectadas por multiplexores a cuatro muestras / retención
amplificadores, designados CH0-CH3.

Los multiplexores de entrada analógica tienen dos conjuntos de bits de control, designado como
MUXA (CHySA / CHyNA) y MUXB (CHySB / CHyNB).

Estos bits de control seleccionan un Entrada analógica particular para conversión.


Los bits de control MUXA y MUXB pueden seleccionar alternativamente La entrada analógica para la
conversión.

Son posibles conversiones diferenciales unipolares en todos los canales utilizando ciertos pines de
entrada (consulte la Figura 28-1).
CARACTERISITICAS DEL MODULO ADC

El modo de escaneo de canales se puede habilitar para el amplificador CH0 Sample / Hold.

Cualquier subconjunto de La aplicación del usuario puede seleccionar las entradas analógicas (AN0 a
AN12).

Las entradas seleccionadas son convertido en orden ascendente usando CH0.

El módulo ADC admite muestreo simultáneo utilizando múltiples canales de muestreo / retención
para muestree las entradas al mismo tiempo y luego realice la conversión para cada canal
secuencialmente Por defecto, los múltiples canales se muestrean y se convierten secuencialmente.

El módulo ADC está conectado a un búfer de resultados de 16 palabras.

El resultado ADC está disponible en cuatro diferentes formatos numéricos (consulte la Figura 28-11).
CARACTERISITICAS DEL MODULO ADC

Nota 1: las entradas VREF +, VREF- pueden


multiplexarse ​con otras entradas analógicas.
Para más detalles, consulte la hoja de datos del
dispositivo.
2: Los canales 1, 2 y 3 no son aplicables para el
modo de operación de 12 bits.
REGISTROS DE CONTROL
El módulo ADC tiene siete registros de control y estado. Estos registros son:
• AD1CON1: Registro de control ADC1
• AD1CON2: Registro de control ADC1
• AD1CON3: Registro de control ADC1
• AD1CHS123: ADC1 Canal de entrada 1, 2, 3 Seleccione Registrarse
• AD1CHS0: ADC1 Canal de entrada 0 Seleccionar Registro
• AD1CSSL: ADC1 Entrada Escaneo Seleccionar Registro Bajo
• AD1PCFGL: Registro de configuración de puerto ADC1 bajo

 Los registros AD1CON1, AD1CON2 y AD1CON3 controlan el funcionamiento del


módulo ADC.
 Los registros AD1CHS0 y AD1CHS123 seleccionan los pines de entrada que se
conectarán al Amplificadores de muestra / retención.
 El registro AD1PCFGL configura los pines de entrada analógica como analógicos
entradas o como E / S digital.
 El registro AD1CSSL selecciona entradas para escanear secuencialmente.
Búfer de resultados de ADC
El módulo ADC contiene una RAM de puerto dual de 16 palabras para almacenar los resultados de ADC.
El búfer 16 las ubicaciones se denominan ADC1BUF0, ADC1BUF1, ADC1BUF2, ...., ADC1BUFE, ADC1BUFF.

AD1CON1: ADC1 Control Register 1

Bit b0: HECHO (DONE): bit de estado de conversión de


Done 1 = Se completa el ciclo de conversión de ADC.
Done 0 = conversión ADC no iniciada o en progreso
Configurado automáticamente por hardware cuando se completa la conversión de analógico a digital.
El software puede escribir "0" para borrar el estado HECHO (el software no puede escribir "1").
bit 1 SAMP: bit de habilitación de muestra ADC
1 = Los amplificadores ADC Sample / Hold están muestreando
0 = ADC Sample / Hold amplificadores están reteniendo

Si ASAM = 0, el software puede escribir "1" para comenzar el muestreo ( FORMA MANUAL).
si ASAM = 1. Establecido automáticamente por hardware
Si SSRC = 000, el software puede escribir "0" para finalizar el muestreo y comenzar la conversión.
Si SSRC ≠ 000, borrado automáticamente por hardware para finalizar el muestreo y comenzar la conversión.

bit 2 ASAM: bit de inicio automático de muestra ADC

1 = El muestreo comienza inmediatamente después de la última conversión. El bit SAMP se configura automáticamente
0 = El muestreo comienza cuando se establece el bit SAMP
bit 3 SIMSAM: bit de selección de muestra simultánea (solo aplicable cuando CHPS <1: 0> = 01
o 1x) Cuando AD12B = 1, SIMSAM es: U-0, no implementado, leído como "0"
1 = Muestras CH0, CH1, CH2, CH3 simultáneamente (cuando CHPS <1: 0> = 1x); o Muestras
CH0 y CH1 simultáneamente (cuando CHPS <1: 0> = 01)
0 = Muestra múltiples canales individualmente en secuencia

bit 7-5 SSRC <2: 0>: bits de selección de fuente de reloj de muestra
111 = El contador interno finaliza el muestreo y comienza la conversión (conversión automática)
110 = Reservado
101 = Reservado
100 = Reservado
011 = el intervalo MPWM finaliza el muestreo y comienza la conversión
010 = el temporizador GP compara el final de muestreo y comienza la conversión
001 = La transición activa en el pin INT0 finaliza el muestreo y comienza la conversión
000 = Borrar bit de muestra finaliza el muestreo y comienza la conversión
bit 9-8 FORM <1: 0>: bits de formato de salida de datos
Para operación de 10 bits:
11 = fraccionado firmado (DOUT = sddd dddd dd00 0000, donde s = .NOT.d <9>)
10 = fraccional (DOUT = dddd dddd dd00 0000)
01 = entero firmado (D OUT = ssss sssd dddd dddd, donde s = .NOT.d <9>)
00 = Entero (DOUT = 0000 00dd dddd dddd)
Para operación de 12 bits:
11 = fraccionado con signo (DOUT = sddd dddd dddd 0000, donde s = .NOT.d <11>)
10 = fraccional (DOUT = dddd dddd dddd 0000)
01 = Entero firmado (D OUT = ssss sddd dddd dddd, donde s = .NOT.d <11>)
00 = entero (D OUT = 0000 dddd dddd dddd)

bit 10 AD12B: bit de modo de operación de 10 bits o 12 bits


1 = 12 bits operación de ADC de 1 canal
0 = 10 bits, operación ADC de 4 canales

bit 13 ADSIDL: detener en modo inactivo bit


1 = Suspender la operación del módulo cuando el dispositivo entra en modo inactivo
0 = Continuar la operación del módulo en modo inactivo
bit 15 ADON: bit de modo de operación ADC
1 = el módulo ADC está funcionando se habilita al adc
0 = el módulo ADC está apagado
AD1CON2: ADC1 Control Register 2

bit 15-13 VCFG <2: 0>: bits de configuración de referencia de voltaje del convertidor

bit 10 CSCNA: bit de selección de escaneo de entrada


1 = Escanear entradas usando CH0
0 = No escanear entradas
bit 9-8 CHPS <1: 0>: bits de selección de canal
Cuando AD12B = 1, CHPS <1: 0> es: U-0, no implementado, leído como "0"
1x = Convierte CH0, CH1, CH2 y CH3
01 = Convierte CH0 y CH1
00 = Convierte CH0

bit 7 BUFS: bit de estado de llenado de búfer (solo válido cuando BUFM = 1)
1 = ADC está llenando actualmente la segunda mitad del búfer. La aplicación del usuario debe
acceder a los datos en la primera mitad del búfer
0 = ADC está llenando actualmente la primera mitad del búfer. La aplicación del usuario debe
acceder a los datos en el segunda mitad del búfer

bit 5-2 SMPI <3: 0>: Secuencias de conversión de muestras por interrupción
1111 = Interrumpe al finalizar la conversión por cada 16a muestra / secuencia de conversión
1110 = Interrupciones al finalizar la conversión por cada 15a muestra / secuencia de conversión
•••
0001 = Interrumpe al finalizar la conversión para cada 2da muestra / secuencia de conversión
0000 = Interrumpe al finalizar la conversión para cada muestra / secuencia de conversión
bit 1 BUFM: bit de selección de modo de relleno de búfer
1 = Inicia el búfer llenando la primera mitad del búfer en la primera interrupción y la segunda mitad del
búfer en la próxima interrupción
0 = Siempre comienza a llenar el búfer desde la dirección de inicio

bit 0 ALTS: Modo de selección de entrada alternativa Seleccionar bit

1 = los bits de control MUXA y MUXB seleccionan alternativamente la entrada analógica para la conversión
0 = los bits de control MUXA seleccionan la entrada analógica para la conversión (CSCNA = 0) Channel
Scan Logic selecciona la entrada analógica para la conversión (CSCNA = 1)
AD1CON3: ADC1 Control Register 3

bit 15 ADRC: bit de fuente del reloj de conversión de ADC


1 = ADC Reloj RC interno
0 = Reloj derivado del reloj del sistema

bit 12-8 SAMC <4: 0>: bits de tiempo de muestreo automático


11111 = 31 T A D
•••
00001 = 1 T AD
00000
bit = 0 TAD<7: 0>: bits de selección del reloj de conversión ADC
7-0 ADCS
11111111 = T CY • (ADCS <7: 0> + 1) = 256 • TCY = TAD
•••
00000010 = T CY • (ADCS <7: 0> + 1) = 3 • TCY = TAD
00000001 = T CY • (ADCS <7: 0> + 1) = 2 • TCY = TAD
00000000 = TCY • (ADCS <7: 0> + 1) = 1 • TCY = TAD
AD1CHS123: ADC1 Input Channel 1, 2, 3 Select Register

bit 0 CH123SA: Canal 1, 2, 3 Selección de entrada positiva para el bit de muestra A


Cuando AD12B = 1, CHxSA es: U-0, no implementado, leído como "0"
1 = La entrada positiva CH1 es AN3, la entrada positiva CH2 es AN4, la entrada positiva CH3 es AN5
0 = La entrada positiva CH1 es AN0, la entrada positiva CH2 es AN1, la entrada positiva CH3 es AN2

bit 2-1 CH123NA <1: 0>: Canal 1, 2, 3 Selección de entrada negativa para bits de muestra A Cuando AD12B =
1, CHxNA es: U-0, no implementado, leído como "0"
11 = La entrada negativa CH1 es AN9, la entrada negativa CH2 es AN10, la entrada negativa CH3 es AN11
10 = La entrada negativa CH1 es AN6, la entrada negativa CH2 es AN7, la entrada negativa CH3 es AN8
0x = CH1, CH2, CH3 entrada negativa es VREF-
bit 8 CH123SB: Canal 1, 2, 3 Selección de entrada positiva para el bit de muestra B Cuando
AD12B = 1, CHxSA es: U-0, no implementado, leído como "0"
1 = La entrada positiva CH1 es AN3, la entrada positiva CH2 es AN4, la entrada positiva CH3 es AN5
0 = La entrada positiva CH1 es AN0, la entrada positiva CH2 es AN1, la entrada positiva CH3 es AN2

bit 10-9 CH123NB <1: 0>: Canal 1, 2, 3 Selección de entrada negativa para bits de muestra B
Cuando AD12B = 1, CHxNB es: U-0, no implementado, leído como "0"
11 = La entrada negativa CH1 es AN9, la entrada negativa CH2 es AN10, la entrada negativa CH3 es AN11
10 = La entrada negativa CH1 es AN6, la entrada negativa CH2 es AN7, la entrada negativa CH3 es AN8
0x = CH1, CH2, CH3 entrada negativa es VREF-
AD1CHS0: ADC1 Canal de entrada 0 Seleccionarregistro

bit 4-0 CH0SA <4: 0>: canal 0 Selección de entrada positiva para bits de muestra A
01100 = La entrada positiva del canal 0 es AN12
01011 = La entrada positiva del canal 0 es AN11
•••
00010 = La entrada positiva del canal 0 es AN2
00001 = La entrada positiva del canal 0 es AN1
00000 = La entrada positiva del canal 0 es AN0

bit 7 CH0NA: Selección de entrada negativa del canal 0 para el bit de muestra A
1 = La entrada negativa del canal 0 es AN1
0 = La entrada negativa del canal 0 es VREF-
bit 12-8 CH0SB <4: 0>: canal 0 Selección de entrada positiva para bits de muestra B Misma
definición que el bit <4: 0>.

bit 15 CH0NB: Selección de entrada negativa del canal 0 para el bit de muestra B Misma definición que el bit 7

AD1CSSL: ADC1 Entrada Escaneo Seleccionar Registro Bajo

bit 12-0 CSS <12: 0>: bits de selección de escaneo de entrada ADC
1 = Seleccione ANx para escaneo de entrada
0 = Saltar ANx para escaneo de entrada
AD1PCFGL: ADC1 Port Configuration Register Low bit 12-0 PCFG <12: 0>: bits de control de
configuración del puerto ADC (1, 2)
1 = Pin de puerto en modo digital, entrada de
lectura de puerto habilitada, multiplexor de entrada
ADC conectado a AVSS
0 = Pin de puerto en modo analógico, entrada de
lectura de puerto deshabilitada, voltaje de pin de
muestras ADC
EJERCICIO1
 
OBJETIVO : Estudiar el funcionamiento del ADC del dsPIC33f en modo 12
bits
El ADC convierte una señal física (usualmente voltaje) en una cantidad digital que representa
amplitud. Nuestro DsPIC  tiene más de 32 canales de ADC que pueden ser configurados de 10 y 12
bits.
Características del ADC
ADC de 10-bit
•Conversión por aproximaciones sucesivas
•Velocidad de conversión 1.1 Msps
•Modo de Scan automático de los canales del ADC
•Voltaje de referencia externo en los pines de entrada
•Muestreo simultaneo de más de 4 entradas analógicas
•Cuatro opciones de lectura (con signo/sin signo, fraccional/integrado)
ADC de 12-bit
En esta configuración de 12-bit, tiene las mismas características que en 10-bits a excepción de las
siguientes:
•En la configuración de 12-bit, la velocidad de conversión es de más de 500 ksps es soportado.
•En la configuración de 12-bit el amplificador mantiene solo una muestra, así que el muestreo
simultáneo de múltiples canales no la soporta.
Material
•8 LEDs Amarillos /
•Protoboard 
•Eliminador 5V  
•Cables Jumper Macho a Macho 
•Potenciómetro de 1KΩ  8
Resistencias de 330 Ω
•Pickit 2  R1
10k
•Tarjeta de desarrollo
DsPIC33FJ12MC202) 1
U1
4
MCLR RB0/CN4/RP0/AN2/EMUD1/PGD1
20 5
VDDCORE RB1/CN5/RP1/AN3/EMUC1/PGC1
6
RB2/CN6/RP2/AN4
7
RB3/CN7/RP3/AN5
11
+3.6V RB4/CN1/RP4/SOSCI/EMUD3/PGD3
14
RB5/CN27/RP5/ASDA1
28 15
AVDD RB6/CN24/RP6/ASCL1
27 16
RV1 AVSS RB7/CN23/RP7/INT0
17
RB8/CN22/RP8/SCL1/PWM2H1/TCK
18
RB9/CN21/RP9/SDA1/PWM2L1/TDO
21
RB10/CN16/RP10/PWM1H3/TDI
2 22

98%
RA0/CN2/VREF+/AN0/EMUD2/PGD2RB11/CN15/RP11/PWM1L3/TMS
3 23
RA1/CN3/VREF-/AN1/EMUC2/PGC2 RB12/CN14/RP12/PWM1H2
9 24
RA2/CN30/CLKI/OSCI RB13/CN13/RP13/PWM1L2
10 25
RA3/CN29/CLKO/OSCO RB14/CN12/RP14/PWM1H1
1k 12 26
RA4/CN0/T1CK/SOSCO/EMUC3/PGC3 RB15/CN11/RP15/PWM1L1
D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1
DSPIC33FJ12MC202 LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
. . .

R2
100
int main(void)
#include "xc.h" {
#define FCY 5000000ULL // FCY = FOSC/2
TRISB=0X0000; // Puerto B como salida
#include <stdio.h>
adc1(); // Llama función para inicializar el ADC
#include "config.h" AD1CON1bits.ADON = 1; // Habilita ADC reg. AD1CON1
#include "reloj.h"
#include <libpic30.h> while(1)
#include <p33FJ12MC202.h> {
//int main(void); // Declaración de funciones AD1CON1bits.SAMP = 1; // Bit para habilitar muestreo
void adc1 (void); __delay_ms(30) ;
AD1CON1bits.SAMP = 0; // Retiene el muestreo

while(!AD1CON1bits.DONE); // Esperar a que se haya realizado la convercion


PORTB=ADC1BUF0; // Datos se guardan en ADC1BUF0 y se envía al puerto B
__delay_ms(200);
}
}
void adc1 (void) //CONFIGURACION DEL ADC
{
TRISA = 0x0001; // Entrada analógica RA0
AD1PCFGL = 0xFFFE; // Todas entradas analógicas *Solo se necesita la primera
AD1CON1bits.AD12B=1; // 1=12 bits resolución y muestreo secuencial de los canales

AD1CON1bits.ASAM=0; // El muestreo inicia cuando bit SAMP=1 *muestreo manual


AD1CON1bits.SSRC=0; // Termina el muestreo e inicia la conversión

AD1CHS0bits.CH0NA =0; // La entrada negativa será Vss


AD1CHS0bits.CH0SA =0; // Entrada positiva será AN0

AD1CON2bits.CSCNA =0; // Muestreo secuencial (scan) deshabilitado


AD1CON2bits.VCFG =0; // Referencia para la conversión: Referencia
// positiva=AVdd, Negativa=AVss
AD1CON2bits.BUFM =0; // Configurado como buffer de 16 palabras
AD1CON2bits.SMPI =0; // Después de la conversión se genera la interrupción
AD1CON2bits.ALTS =0; // Solo muestra un Canal

AD1CON3bits.ADRC =0; // Reloj del ADC es derivado del sistema


AD1CON3bits.ADCS =21; // Tiempo de conversión.
}

También podría gustarte