Introducción
Comparador de voltaje analógico.
Posibles Usos:
Detección de nivel de carga en dispositivos portátiles que utilizan batería.
Medición de elementos resistivos.
Adaptación de señales pequeñas, que necesiten activar un evento en el microcontrolador.
Características
Multiplexor para las entradas + y -, que permite intercambiarlas.
Filtro RC seleccionado por software.
La salida del comparador permite captura del timer_A.
Control por software del buffer de los puertos de entrada.
Capacidad de interrupción.
Referencia de voltaje seleccionable.
Tanto el comparador como el circuito de referencia pueden ser desconectados.
Conexiones
NO es posible utilizar el comparador en la tarjeta de desarrollo, ya que los pines están ocupados con el LCD.
Comparador
Comparador
El comparador compara entre las dos señales analógicas, de los terminales + y .
Si el terminal + es mas positivo que el terminal -, entonces la salida del comparador CAOUT queda en alto.
El comparador se puede desconectar (para ahorrar energía) a través del bit de control CAON, en cuyo caso la salida queda baja.
Switches Análogos de Entrada
Switches Análogos de Entrada
Permiten conectar o desconectar los terminales de entrada asociados a los pines del puerto 2 usando los bits P2CAx.
Los bits P2CAx permiten:
Aplicar señales externas a los terminales + o del comparador.
Ruteo de una referencia de voltaje interno a un pin asociado de la salida .
El bit de control CAEX controla la entrada al multiplexor, intercambiando cual señal de entrada se conecta a los terminales + y -.
Filtro de Salida
Filtro de Salida
La salida del comparador se puede utilizar con o sin filtro interno.
Cuando se setea el bit de control CAF, la salida del comparador es filtrada con un Filtro-RC integrado.
El comparador oscila cuando la diferencia entre los voltajes de los terminales de entrada es pequeña.
Seleccionando el filtro, se reduce dicha oscilación.
Ejemplo sin filtro :
#include "msp430x14x.h"
void main ()
{
WDTCTL = WDTPW | WDTHOLD;
P2SEL = 0xff; // configura puerto 1 como i/o
P2DIR = 0x04; // pin 2 como salida,
// y el resto como entrada
CACTL1 = CARSEL | CAON | CAREF1;
CACTL2 = P2CA0;
}
Filtro de Salida
Filtro de Salida
Salida sin filtro:
Ejemplo con filtro:
#include "msp430x14x.h"
void main ()
{
WDTCTL = WDTPW | WDTHOLD;
P2SEL = 0xff; // configura puerto 1 como i/o
P2DIR = 0x04; // pin 2 como salida,
//y el resto como entrada
CACTL1 = CARSEL | CAON | CAREF1;
CACTL2 = P2CA0 | CAF; // se configura el filtro
}
Filtro de Salida
Salida con filtro:
Filtro de Salida
Generador de Voltaje de Referencia
Generador de Voltaje de Referencia
EL objetivo es entregar el voltaje de Referencia interno llamado VCAREF .
El Voltaje VCAREF puede tomar valores de 0.5Vcc, 0.5Vcc o un voltaje umbral de un transistor.
Los Valores de VCAREF se configuran mediante los bits de control CAREFx del
Registro CACTL1.
Para seleccionar a cual
entrada se aplicara VCAREF
se utiliza el bit CARSEL
del Registro CACTL1.
Generador de Voltaje de Referencia
Codigos en C Ejemplo ocupando el voltaje Vcaref
Utiliza una señal de entrada externa en CAO (+) comparada con un voltaje de Referencia interno en CA1(-)
#include "msp430x14x.h"
void main () // utiliza Vcaref= 0.25Vcc
{
WDTCTL = WDTPW | WDTHOLD;
P2SEL = 0xff; // configura puerto 2 como i/o
P2DIR = 0x04;//configura pin 2 como salida, resto entrada
CACTL1 = CARSEL | CAON | CAREF0;//seteando registro
CACTL2 = P2CA0;//control del Comparador A
}
Generador de Voltaje de Referencia
Ejemplo de Laboratorio ocupando el voltaje Vcaref = 0.25 Vcc
(Gp:) SEÑAL SALIDA CAOUT
PIN 22
(Gp:) SEÑxAL ENTRADA CAO
PIN 23 x
Generador de Voltaje de Referencia
Ejemplo de Laboratorio ocupando el voltaje Vcaref = 0.5 Vcc CAREF0 CAREF1
(Gp:) SEÑAL SALIDA CAOUT
PIN 22
(Gp:) SEÑAL ENTRADA CAO
PIN 23 x
Interrupciones
EL sistema de interrupciones del comparador se compone principalmente de un flip-flop D , de compuertas lógicas ,de la salida del comparador y registros interrupción.
El flag de interrupción CAIFG se pone en alto cuando hay un cambio en el canto de la salida del comparador.
La activación del flag de interrupción se selecciona si es por canto de subida o bajada mediante el bit selector CAIES del registro CACTL1 del comparador.
Para generar una interrupción es necesario configurar los bits CAIE y GIE , para que el flag CAIFG genere un requerimiento de servicio de interrupción.
El flag CAIFG es reiniciado
cuando el requerimiento es
servido o puede ser
reiniciado manualmente
por software.
Interrupciones
Codigos en C Ejemplo ocupando el vector de interrupción del Campador A
Utiliza una señal de entrada externa comparada con un voltaje de Referencia interno generando una interrupción
void main (){
_EINT();
WDTCTL = WDTPW | WDTHOLD;
P2SEL = 0xff; // configura puerto 2 como i/o
P2DIR = 0x04; //direccion de salida
CACTL1 = CARSEL|CAON|CAREF1|CAIE;
CACTL2 = P2CA0|CAF;
P3SEL=0x00;
P3DIR = 0x01;
while(1){;}}
#pragma vector=COMPARATORA_VECTOR
__interrupt void comparador(void){
if(P3OUT!=0)P3OUT=0x00;
else P3OUT=0x01;}
Registro CAPD
Los pines de los puertos I/O del microcontrolador tienen características de puertas digitales CMOS.
Por lo tanto una tensión análoga de entrada podría producir una corriente parásita en la puerta digital.
Deshabilitando el buffer del puerto 2 entrada se elimina la corriente parásita de la compuerta lógica y reduce el consumo de potencia del microcontrolador.
Para habilitar el buffer se
configura el bit CAPDx del pin
correspondiente del puerto 2
del Registro CAPD. Ej.
CAPD = CAPD3;
Registros
El comparador se configura en base a tres registros:
Los registros son de lectura y escritura, y son reseteados al encendido del microcontrolador.
Registro de Control 1, CACTL1
Registro de Control 2, CACTL2
Registro deshabilitador de puertos, CAPD