MODULO - ADC Del DsPIC
MODULO - ADC Del DsPIC
MODULO - 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.
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
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).
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).
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 resultado ADC está disponible en cuatro diferentes formatos numéricos (consulte la Figura 28-11).
CARACTERISITICAS DEL MODULO ADC
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.
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 15-13 VCFG <2: 0>: bits de configuración de referencia de voltaje del convertidor
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
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 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
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