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