Está en la página 1de 22

COMPARADOR ANÁLOGICO

DISPOSITIVOS PROGRAMABLES
• Un comparador analógico es un dispositivo que compara dos (2)
valores analógicos e indica cuál es mayor. En electrónica, es
básicamente un amplificador sin retroalimentación y, por lo tanto,
una ganancia muy alta
¿Cómo funciona comparador analógico?
• Básicamente es un amplificador que compara la magnitud de
voltajes en dos entradas.

• Dispone de dos entradas y una salida, dependiendo de cual voltaje


de entrada sea mas alto, un cero lógico (0) o un uno lógico (1), será
la salida.

• Cuando el voltaje analógico en Vin – es mas alto que en Vin+ la


salida del comparador esta en un nivel digital bajo.
• Cuando el voltaje analógico en Vin+ es mas alto que el voltaje
análogo en Vin-, la salida del comparador estará en un nivel digital
alto.
Comparador analógico en el ATmega8535
• El comparador análogo compara los valores de entrada en el pin
positivo AIN0 y el pin negativo AIN1. Cuando el voltaje en el pin
positivo AIN0 es mayor que el voltaje en el pin negativo AIN1, la
salida del comparador análogo AC0 se coloca en alto. Se pueden
generar tres tipos de interrupción del comparador, por flanco de
subida, flanco de bajada o cambio de nivel.
Entrada multiplexada comparador análogo

• Es posible seleccionar cualquiera de los pines para remplazar la


entrada negativa del comparador análogo. El multiplexor del ADC es
usado para seleccionar esta entrada y consecuentemente el ADC
debe estar apagado para usar esta opción. Si el bit que habilita el
multiplexor del comparador análogo ACME en el registro SFIOR esta
en alto y el ADC esta apagado con un cero en ADEN del
registro ADCSRA, los bits MUX2:0 en el
registroADMUX seleccionara la entrada negativa del comparador
análogo.
Registros
• SFIOR - Registro de funciones especial de E/S

Cuando el bit ACME (Analog Comparator Multiplexer


Enable) del registro SFIOR, esta en uno lógico y el ADC se
encuentra apagado, el multiplexor del ADC selecciona la
entrada negativa al comparador análogo. Cuando este bit
esta en cero lógico, AIN1 es la entrada negativa del
comparador análogo.
ACSR – Registro de Estado y Control del Comparador Análogo
Bit 7 – ACD: Deshabilitador del Comparador Análogo
• Cuando se escribe un uno lógico en este bit, la alimentación del
Comparador Análogo es desconectada. Este bit puede colocarse en
alto en cualquier momento para apagar el Comparador Análogo.
Esto reduce consumo de potencia en el modo de bajo consumo y
en el modo activo. Cuando el bit ACD cambia, la interrupción del
Comparador Análogo debe ser deshabilitada borrando el
bit ACIE en el registro ACSR. Sino se deshabilita la interrupción
puede ocurrir una interrupción cuando el bit es cambiado.
Bit 6 – ACBG: Selección de Voltaje de Referencia del
Comparador Análogo

• Cuando este bit esta en alto, un voltaje de referencia fijo remplaza


la entrada positiva del Comparador Análogo. Cuando este bit es
borrado, AIN0 es aplicado a la entrada positiva del Comparador
Análogo. El voltaje de referencia es de 2.56V, que también es usado
por el Conversor Análogo Digital.
Bit 5 – ACO: Salida del Comparador Análogo

• La salida del Comparador Análogo es sincronizada y conectada


directamente a ACO. La sincronización introduce un retarde de 1 - 2
ciclos de reloj
Bit 4 – ACI: Analog Comparator Interrupt Flag

• Este bit es colocado en alto por hardware cuando en la salida


ocurre un cambio de acuerdo a la configuración definida por los bits
ACIS1 y ACIS0. La rutina de servicio de interrupción es ejecutada si
el bit ACIE esta en alto y el bit I del registro SREG esta en uno. ACI es
borrada por hardware cuando se ejecuta la interrupción. ACI
también puede ser borrada escribiendo un uno lógico en la bandera
cuando no se usa interrupciones.
Bit 3 – ACIE: Analog Comparator Interrupt Enable

• Cuando el bit ACIE y el bit I del registro SREG estan en alto, la


interrupción del Comparador Análogo es activada. Cuando este bit
esta en cero lógico la interrupción es deshabilitada.
Bit 2 – ACIC: Analog Comparator Input Capture Enable

• Cuando se escribe un uno lógico en este bit, la función Input


Capture del Temporizador 1 es manipulada por el Comparador
Análogo. La salida del Comparador es en este caso conectada
directamente a la lógica del Input Capture del Temporizador 1.
Cuando se escribe un cero lógico no hay conexión entre la función
Input Capture del Temporizador 1 y el Comparador Análogo.
Bits 1, 0 – ACIS1, ACIS0: Analog Comparator Interrupt
Mode Select
• Estos bits determinan que tipo de evento genera la interrupción del
Comparador Análogo.

1.Interrupción por cambio en la salida, bien sea de alto a bajo o


bajo a alto.
2.Reservado
3.Interrupción por flanco de bajada en la salida
4.Interrupción por flanco de subida en la salida
Ejemplo
• El indicador de temperatura:

Diagrama esquemático simple de un


sistema de control integrado que
utiliza un microcontrolador Atmel
ATMega, que supervisa la
temperatura de una habitación e
indica, en el LED, si la temperatura
de la habitación es superior o
inferior a un determinado valor
preestablecido.
El sistema de control hace uso de un Comparador
Analógico ATMega Atmel AVR que toma dos entradas:
• Una temperatura
preestablecida representada
por un voltaje - Establezca
usando la resistencia variable
y aplique a PB2.
• La temperatura actual de la
sala - Salida de un sensor de
temperatura en forma de
voltaje y aplicada a PB3.
• No hay conexiones de reloj externas en el esquema, por lo que para
que el hardware funcione, el oscilador interno del microcontrolador
ATMega DEBE estar habilitado.

• La descripción del software


• Según la descripción del sistema anterior, el LED debe encenderse
cuando el bit de salida del comparador analógico (ACO) = 0 y
APAGAR cuando ACO = 1. A continuación se encuentran dos (2)
códigos que realizan esta tarea. El software I está escrito en
lenguaje ensamblador y el software II está escrito en lenguaje C.
Código Ensamblador
SBI DDRD , 0 ; Establecer PD0 como salida
LDI R16 , 0x00 ; Estas dos líneas configuran
OUT ACSR , R16 ; el comparador analógico

loop : SBIS ACSR , ACO ; Omita las siguientes instrucciones si ACO = 1

SBI PORTD , 0 ; Encienda el LED si ACO = 0


SBIC ACSR , ACO ; Omita las siguientes instrucciones si ACO = 0
CBI PORTD , 0 ; Apague el LED si ACO = 1

RJMP bucle ; Volver al ciclo


Referencias

• https://www.mikroe.com/ebooks/microcontroladores-pic-programacion-en-c-
con-ejemplos/modulos-analogicos

• http://ucsystem.blogspot.mx/2013/12/comparador-analogo.html

• http://www.avr-tutorials.com/comparator/utilizing-avr-analog-comparator-aco

• http://ww1.microchip.com/downloads/en/DeviceDoc/doc2502.pdf