Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCION
El convertidor analógico a digital de 12 bits (ADC) permite la conversión de una señal
de entrada analógica a un número digital de 12 bits.
Este módulo se basa en una arquitectura de Registro de Aproximación Sucesiva
(SAR) y proporciona una frecuencia de muestreo máxima de 200 ksps.
El módulo A / D tiene hasta 16 entradas analógicas que se multiplexan en un
amplificador de muestra y retención.
La salida de la muestra y retención es la entrada al convertidor que genera el
resultado.
El voltaje de referencia analógico es seleccionable por software para el voltaje de
alimentación del dispositivo (AVDD / AVSS) o el nivel de voltaje en el pin (VREF + /
VREF-).
El convertidor A / D tiene una característica única de poder operar mientras el
dispositivo está en modo de Suspensión con selección de oscilador RC.
El módulo A / D tiene seis registros de 16 bits:
• Registro de control A / D 1 (ADCON1)
• Registro de control A / D 2 (ADCON2)
• Registro de control A / D 3 (ADCON3)
• Registro de selección de entrada A / D (ADCHS)
• Registro de configuración de puerto A / D (ADPCFG)
• Registro de selección de escaneo de entrada A / D (ADCSSL)
bit 3 SIMSAM: bit de selección de muestra simultánea (solo aplicable cuando CHPS = 01 o 1x)
1 = Muestras CH0, CH1, CH2, CH3 simultáneamente (cuando CHPS = 1x) o Muestras CH0 y
CH1 simultáneamente (cuando CHPS = 01)
0 = Muestra múltiples canales individualmente en secuencia
bit 7-5 SSRC <2: 0>: bits de selección de fuente de activación de conversión
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 PWM de control del motor finaliza el muestreo y comienza la conversión
010 = GP Timer3 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 el bit SAMP finaliza el muestreo y comienza la conversión
REGISTRO ADCON2
bit 10 CSCNA: Selecciones de entrada de escaneo para entrada CH0 + S / H para entrada de MUX A Bit
de configuración del multiplexor
1 = entradas de escaneo
0 = No escanear entradas
bit 5-2 SMPI <3: 0>: muestra / convertir secuencias por bits de selección de interrupción
1111 = Interrumpe al finalizar la conversión para cada 16a muestra / secuencia de conversión
1110 = Interrupciones al finalizar la conversión para cada 15a muestra / secuencia de
conversión
.....
0001 = Interrumpe al finalizar la conversión para cada segunda muestra / secuencia de
conversión
0000 = Interrumpe al finalizar la conversión para cada muestra / secuencia de conversión
bit 5-0 ADCS <5: 0>: bits de selección del reloj de conversión A / D
111111 = T CY / 2 • (ADCS <5: 0> + 1) = 32 • TCY
······
000001 = TCY / 2 • (ADCS <5: 0> + 1) = TCY
000000 = TCY / 2 • (ADCS <5: 0> + 1) = TCY / 2
bit 15-14 CH123NB <1: 0>: Canal 1, 2, 3 Selección de entrada negativa para bits de
configuración del multiplexor MUX B Misma definición que los bits 6-7 (Nota)
bit 13 CH123SB: Canal 1, 2, 3 Selección de entrada positiva para el bit de configuración del
multiplexor MUX B Misma definición que el bit 5 (Nota)
bit 12 CH0NB: Selección de entrada negativa del canal 0 para el bit de configuración del
multiplexor MUX B Misma definición que el bit 4 (Nota)
bit 11-8 CH0SB <3: 0>: canal 0 Selección de entrada positiva para bits de configuración del
multiplexor MUX B Misma definición que los bits 3-0 (Nota)
bit 7-6 CH123NA <1: 0>: Canal 1, 2, 3 Selección de entrada negativa para MUX A Multiplexor Bit de
configuración
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 V ÁRBITRO-
bit 5 CH123SA: Canal 1, 2, 3 Selección de entrada positiva para MUX A Bit de configuración del
multiplexor
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 4 CH0NA: Selección de entrada negativa del canal 0 para el bit de configuración del multiplexor
MUX A
1 = La entrada negativa del canal 0 es AN1
0 = La entrada negativa del canal 0 es VÁRBITRO-
bit 3-0 CH0SA <3: 0>: Canal 0 Selección de entrada positiva para MUX A Multiplexor Bit de
configuración
1111 = La entrada positiva del canal 0 es AN15
1110 = La entrada positiva del canal 0 es AN14
1101 = La entrada positiva del canal 0 es AN13
•••
0001 = La entrada positiva del canal 0 es AN1
0000 = La entrada positiva del canal 0 es AN0
bit 15-0 PCFG <15: 0>: bits de control de configuración de pin de entrada analógica
1 = Pin de entrada analógica en modo digital, entrada de lectura de puerto habilitada, entrada multiplexor
de entrada A / D conectada a AVSS
0 = Pin de entrada analógica en modo analógico, entrada de lectura de puerto deshabilitada, voltaje de pin
de muestras A / D
ADC del DsPIC
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 12-bit
En esta configuración de 12-bit, tiene las mismas características que en 10-bits a
excepción de las siguientes:
#include "xc.h"
#define FCY 8000000ULL // FCY = FOSC/2
#include <p33FJ32MC202.h>;
// Biblioteca con las MACROS y definiciones para el dsPIC
#include libpic30.h>
// Biblioteca para hacer uso de los retardos "
__delay_xx"
_FICD(JTAGEN_OFF & ICS_PGD1);
// Seleccionar el canal 1 de los pines de programacion PGD
_FWDT(FWDTEN_OFF) // Deshabilitar el watchdogtimer
_FOSC(OSCIOFNC_OFF & POSCMD_NONE)
// Deshabilitadas entradas externas de reloj
_FOSCSEL(FNOSC_FRCPLL) // Habilitar oscilador interno FRC con PLL
while(1){
AD1CON1bits.SAMP = 1; // Bit para habilitar muestreo
__delay_ms(30) ;
AD1CON1bits.SAMP = 0; // Retiene el muestreo
while(!AD1CON1bits.DONE); // Esperar a que se haya realizado la convercion
PORTE=ADC1BUF0; // Datos se guardan en ADC1BUF0 y se envía al puerto E
__delay_ms(200);
}
}