PIC18F2550 - Comparadores Analógicos
PIC18F2550 - Comparadores Analógicos
PIC18F2550 - Comparadores Analógicos
Registro CMCON
Este módulo contiene dos comparadores de voltaje que se pueden configurar de varias formas. Las
entradas analógicas de los comparadores se seleccionan entre los pines RA0 a RA3. Las salidas digitales de
los comparadores en estado normal o invertido están disponibles a través de pines RA4 y RA5 o a través
de la lectura de su registro de control.
Debe tenerse en cuenta que, si se está utilizando la interrupción por comparadores analógicos, ésta debe
desactivarse durante un cambio de modo de funcionamiento de los comparadores porque podría
generarse una falsa interrupción.
Registro CMCON
Voltaje de referencia
Dependiendo de la configuración elegida, se puede utilizar una referencia externa o interna. El voltaje
presente en VIN- se compara con el voltaje en VIN+ y la salida cambia de estado de acuerdo al resultado de
dicha comparación.
Si se utilizan voltajes de referencia externos, se puede aplicar una misma referencia para ambos
comparadores o una referencia para cada comparador. Los detectores de umbral pueden necesitar una
misma referencia. El voltaje de referencia debe estar entre VSS y VDD y puede aplicarse a cualquiera de los
pines del comparador.
También se puede generar y utilizar un voltaje de referencia interno gracias al módulo de voltaje de
referencia con que cuenta el PIC18F2550. El voltaje de referencia interno solo está disponible en el modo
en el que se multiplexan cuatro entradas del microcontrolador para los dos comparadores (CM2:CM0 =
110). En este modo, el voltaje producido por el módulo de voltaje de referencia se aplica al pin V IN+ de
ambos comparadores.
Tiempo de respuesta de los comparadores
El tiempo de respuesta de los comparadores es el tiempo mínimo que transcurre desde que se selecciona
un nuevo voltaje de entrada o de referencia hasta que las salidas de los comparadores tienen un nivel
lógico válido. Si se utiliza el módulo de voltaje de referencia se debe considerar el máximo retardo de dicho
módulo cuando se cambia el valor del voltaje de referencia. El valor de estos retardos se puede obtener
de la hoja de datos del microcontrolador, pero podemos señalar que para el PIC18F2550 el máximo tiempo
de respuesta de los comparadores ante un cambio de voltaje en sus entradas es de 400 ns, mientras que
el máximo tiempo de respuesta ante un cambio de modo de funcionamiento es de 10 µs. Por otro lado, el
máximo tiempo de establecimiento del módulo de voltaje de referencia cuando se modifica el valor de
dicho voltaje es 10 µs.
Salidas de los comparadores
Las salidas de los comparadores se pueden leer mediante los bits 6 y 7 del registro CMCON. Estos bits son
de sólo lectura y pueden dirigirse a los pines RA4 y RA5. Cuando se habilitan, estos pines serán las salidas
no sincronizadas de ambos comparadores. La estructura interna de las salidas se puede ver en la figura a
continuación. Los bits TRISA controlan el flujo de entrada/salida de estos pines.
La polaridad de las salidas (normal o inversa) de los comparadores se puede cambiar mediante los bits
C2INV y C1INV del registro CMCON.
Cuando se lee el registro PORTA, los pines configurados como entradas analógicas devuelven el valor 0.
Los pines configurados como entradas digitales devolverán un valor acorde con el entregado por la entrada
Schmitt trigger. Téngase en cuenta que voltajes analógicos aplicados a un pin configurado como digital
pueden provocar que el buffer de entrada consuma más corriente que lo normal.
Interrupción por comparación de voltajes
El flag de interrupción CMIF del módulo de comparadores se pone a 1 cuando hay un cambio de estado en
la salida de cualquiera de los comparadores. Para saber cuál comparador produjo la interrupción es
necesario supervisar el estado de las salidas de ambos comparadores. El flag no se reinicia y debe ser
puesto a 0 en programa.
Para habilitar la interrupción correspondiente se deben poner a 1 los bits CMIE (PIE2<6>), PEEIE
(INTCON<6>) y, por supuesto, también el bit GIE (INTCON<7>). El flag CMIF se pone a 1 de todas maneras
al producirse un cambio de estado en cualquiera de las salidas de los comparadores, aunque la
interrupción no esté habilitada.
Una vez dentro de la rutina de servicio de la interrupción (ISR), el usuario debe borrar la interrupción
leyendo o escribiendo el registro CMCON y borrando a continuación el flag CMIF. De no leer o escribir
CMCON en primer lugar, el flag CMIF y por tanto, la condición de interrupción no podrá resetearse.
Módulo de voltaje de referencia para los comparadores
Este módulo es un circuito divisor de tensión con 16 resistores que proporciona un voltaje de referencia
seleccionable. Si bien es cierto que su propósito principal es suministrar un voltaje de referencia para los
El módulo de voltaje de referencia se controla mediante su registro de control CVRCON. Puede suministrar
dos rangos de voltaje de salida con 16 diferentes voltajes cada uno. El rango se selecciona con el bit CVRR
(CVRCON<5>). La diferencia principal entre rangos es la magnitud de los pasos, los mismos que se
seleccionan con los bits de selección CVREF (CVR3:CVR0). Las fórmulas que permiten calcular la salida del
módulo de voltaje de referencia son:
Si CVRR=1: CVREF =
( CVR3 : CVR0 ) CV
RSRC
24
CVRSRC ( CVR3 : CVR0 )
Si CVRR=0: CVREF = + CVRSRC
4 32
El voltaje de alimentación para el generador de voltaje de referencia puede provenir de la fuente principal
(VDD y VSS) o de los pines VREF+ y VREF- que son multiplexados con RA2 y RA3 respectivamente. El voltaje de
alimentación se selecciona con el bit CVRSS (CVRCON<4>). En las fórmulas el término CVRSRC es
precisamente la diferencia entre las líneas de alimentación (VDD – VSS si CVRSS=0 y VREF+ – VREF- si
CVRSS=1).
Registro CVRCON