Comparator - PICmicro Mid-Range MCU Family

M
Section 20. Comparator
HIGHLIGHTS
This section of the manual contains the following major topics:
20.1 Introduction ..................................................................................................................20-2
20.2 Control Register ...........................................................................................................20-3
20.3 Comparator Configuration............................................................................................20-4
20.4 Comparator Operation .................................................................................................20-6
20.5 Comparator Reference.................................................................................................20-6
20.6 Comparator Response Time ........................................................................................20-8
20.7 Comparator Outputs ....................................................................................................20-8
20.8 Comparator Interrupts..................................................................................................20-9
20.9 Comparator Operation During SLEEP .........................................................................20-9
20.10 Effects of a RESET ......................................................................................................20-9
20.11 Analog Input Connection Considerations...................................................................20-10
20.12 Initialization ................................................................................................................20-11
20.13 Design Tips ................................................................................................................20-12
20.14 Related Application Notes..........................................................................................20-13
20.15 Revision History .........................................................................................................20-14
20
Comparator
 1997 Microchip Technology Inc.
DS31020A page 20-1
PICmicro MID-RANGE MCU FAMILY
20.1
Introduction
The comparator module contains two analog comparators. The inputs to the comparators are
multiplexed with the I/O pins. The on-chip Voltage Reference (see the “Voltage Reference” section) can also be an input to the comparators.
The CMCON register, shown in Figure 20-1, controls the comparator input and output multiplexers. A block diagram of the comparator is shown in Figure 20-1.
DS31020A-page 20-2
 1997 Microchip Technology Inc.
Section 20. Comparator
20.2
Control Register
Register 20-1: CMCON Register
R-0
C2OUT
bit 7
R-0
C1OUT
U-0
—
U-0
—
bit 7
C2OUT: Comparator2 Output Indicator bit
1 = C2 VIN+ > C2 VIN–
0 = C2 VIN+ < C2 VIN–
bit 6
C1OUT: Comparator1 Output Indicator bit
1 = C1 VIN+ > C1 VIN–
0 = C1 VIN+ < C1 VIN–
bit 5:4
Unimplemented: Read as '0'
bit 3
CIS: Comparator Input Switch bit
R/W-0
CIS
R/W-0
CM2
R/W-0
CM1
R/W-0
CM0
bit 0
When CM2:CM0: = 001:
1 = C1 VIN– connects to AN3
0 = C1 VIN– connects to AN0
When CM2:CM0 = 010:
1 = C1 VIN– connects to AN3
C2 VIN– connects to AN2
0 = C1 VIN– connects to AN0
C2 VIN– connects to AN1
bit 2:0
CM2:CM0: Comparator Mode Select bits
See Figure 20-1.
Legend
R = Readable bit
W = Writable bit
U = Unimplemented bit, read as ‘0’
- n = Value at POR reset
20
Comparator
 1997 Microchip Technology Inc.
DS31020A-page 20-3
PICmicro MID-RANGE MCU FAMILY
20.3
Comparator Configuration
There are eight modes of operation for the comparators. The CMCON register is used to select
the mode. Figure 20-1 shows the eight possible modes. The TRIS register controls the data
direction of the comparator I/O pins for each mode. If the comparator mode is changed, the comparator output level may not be valid for the new mode for the delay specified in the electrical
specifications of the device.
Note:
DS31020A-page 20-4
Comparator interrupts should be disabled during a comparator mode change, otherwise a false interrupt may occur.
 1997 Microchip Technology Inc.
Section 20. Comparator
Figure 20-1:
Comparator I/O Operating Modes
CM2:CM0 = 000
Comparators Reset (POR Default Value)
RA0/AN0
RA3/AN3
RA1/AN1
RA2/AN2
A
VIN-
A
VIN+
A
VIN-
A
VIN+
RA0/AN0
C1
Off (Read as '0')
RA3/AN3
A
VIN-
A
VIN+
A
VIN-
RA3/AN3
RA1/AN1
C2
Off (Read as '0')
CM2:CM0 = 100
Two Independent Comparators
RA0/AN0
CM2:CM0 = 111
Comparators Off
RA2/AN2
C1OUT
RA3/AN3
RA1/AN1
RA1/AN1
RA2/AN2
A
VIN+
C2
VIN-
D
VIN+
D
VIN-
D
VIN+
C1
Off (Read as '0')
C2
Off (Read as '0')
CM2:CM0 = 010
Four Inputs Multiplexed to Two Comparators
RA0/AN0
C1
D
C2OUT
RA2/AN2
A
A
VIN-
CIS = 0
CIS = 1
VIN+
C1
C1OUT
C2
C2OUT
A
A
VIN-
CIS = 0
CIS = 1
VIN+
From VREF Module
CM2:CM0 = 110
Two Common Reference Comparators with Outputs
CM2:CM0 = 011
Two Common Reference Comparators
RA0/AN0
RA3/AN3
RA1/AN1
RA2/AN2
A
VIN-
D
VIN+
A
VIN-
A
VIN+
RA0/AN0
C1
C1OUT
RA3/AN3
RA1/AN1
C2
C2OUT
RA2/AN2
A
VIN-
D
VIN+
A
VIN-
A
VIN+
C1
C1OUT
C2
C2OUT
RA4 Open Drain
CM2:CM0 = 101
One Independent Comparator
RA0/AN0
RA3/AN3
RA1/AN1
RA2/AN2
D
VIN-
D
VIN+
A
VIN-
A
VIN+
CM2:CM0 = 001
Three Inputs Multiplexed to Two Comparators
RA0/AN0
C1
Off (Read as '0')
RA3/AN3
RA1/AN1
C2
C2OUT
RA2/AN2
A
A
CIS = 0
CIS = 1
VINVIN+
A
VIN-
A
VIN+
C1
C1OUT
C2
C2OUT
Comparator
A = Analog Input, port reads as zeros always.
D = Digital Input.
CIS (CMCON<3>) is the Comparator Input Switch.
 1997 Microchip Technology Inc.
20
DS31020A-page 20-5
PICmicro MID-RANGE MCU FAMILY
20.4
Comparator Operation
A single comparator is shown in Figure 20-2 along with the relationship between the analog input
levels and the digital output. When the analog input at VIN+ is less than the analog input VIN–,
the output of the comparator is a digital low level. When the analog input at VIN+ is greater than
the analog input VIN–, the output of the comparator is a digital high level. The shaded areas of
the output of the comparator in Figure 20-2 represent the uncertainty due to input offsets and
response time.
20.5
Comparator Reference
An external or internal reference signal may be used depending on the comparator operating
mode. The analog signal that is present at VIN– is compared to the signal at VIN+, and the digital
output of the comparator is adjusted accordingly (Figure 20-2).
Figure 20-2: Single Comparator
VIN+
+
VIN–
–
Output
VIN–
VIN+
Output
DS31020A-page 20-6
 1997 Microchip Technology Inc.
Section 20. Comparator
20.5.1
External Reference Signal
When external voltage references are used, the comparator module can be configured to have
the comparators operate from the same or different reference sources. The reference signal must
be between VSS and VDD, and can be applied to either pin of the comparator(s).
20.5.2
Internal Reference Signal
The comparator module also allows the selection of an internally generated voltage reference for
the comparators. The “Voltage Reference” section contains a detailed description of the Voltage
Reference Module that provides this signal. The internal reference signal is used when the comparators are in mode CM2:CM0 = 010 (Figure 20-1). In this mode, the internal voltage reference
is applied to the VIN+ input of both comparators.
The internal voltage reference may be used in any comparator mode. When used in this fashion
the I/O/VREF pin may be used for I/O. The voltage reference is connected to the VREF pin.
20
Comparator
 1997 Microchip Technology Inc.
DS31020A-page 20-7
PICmicro MID-RANGE MCU FAMILY
20.6
Comparator Response Time
Response time is the minimum time, after selecting a new reference voltage or input source,
before the comparator output is guaranteed to have a valid level. If the internal reference is
changed, the maximum settling time of the internal voltage reference must be considered when
using the comparator outputs. Otherwise the maximum response time of the comparators should
be used.
20.7
Comparator Outputs
The comparator outputs are read through the CMCON register. These bits are read only. The
comparator outputs may also be directly output to the I/O pins. When CM2:CM0 = 110, multiplexors in the output path of the I/O pins will switch and the output of each pin will be the unsynchronized output of the comparator. The uncertainty of each of the comparators is related to the input
offset voltage and the response time given in the specifications. Figure 20-3 shows the comparator output block diagram.
The TRIS bits will still function as the output enable/disable for the I/O pins while in this mode.
Note 1: When reading the Port register, all pins configured as analog inputs will read as a
‘0’. Pins configured as digital inputs will convert an analog input according to the
Schmitt Trigger input specification.
Note 2: Analog levels on any pin that is defined as a digital input may cause the input buffer
to consume more current than is specified.
Figure 20-3: Comparator Output Block Diagram
Port Pins
MULTIPLEX
+
-
To I/O pin
Bus
Data
Q
RD CMCON
Set
CMIF
bit
D
EN
Q
From
Other
Comparator
D
EN
CL
RD CMCON
RESET
DS31020A-page 20-8
 1997 Microchip Technology Inc.
Section 20. Comparator
20.8
Comparator Interrupts
The comparator interrupt flag is set whenever the comparators value changes relative to the last
value loaded into CMxOUT bits. Software will need to maintain information about the status of
the output bits, as read from CMCON<7:6>, to determine the actual change that has occurred.
The CMIF bit, is the comparator interrupt flag. The CMIF bit must be cleared. Since it is also possible to set this bit, a simulated interrupt may be initiated.
The CMIE bit and the PEIE bit (INTCON<6>) must be set to enable the interrupt. In addition, the
GIE bit must also be set. If any of these bits are clear, the interrupt is not enabled, though the
CMIF bit will still be set if an interrupt condition occurs.
The user, in the interrupt service routine, can clear the interrupt in the following manner:
a)
b)
Any read or write of the CMCON register. This will load the CMCON register with the new
value with the CMxOUT bits.
Clear the CMIF flag bit.
An interrupt condition will continue to set the CMIF flag bit. Reading CMCON will end the interrupt
condition, and allow the CMIF flag bit to be cleared.
20.9
Comparator Operation During SLEEP
When a comparator is active and the device is placed in SLEEP mode, the comparator remains
active and the interrupt is functional if enabled. This interrupt will wake up the device from SLEEP
mode when enabled. While the comparator is powered-up, each comparator that is operational
will consume additional current as shown in the comparator specifications. To minimize power
consumption while in SLEEP mode, turn off the comparators, CM2:CM0 = 111, before entering
sleep. If the device wakes-up from sleep, the contents of the CMCON register are not affected.
20.10
Effects of a RESET
A device reset forces the CMCON register to its reset state. This forces the comparator module
to be in the comparator reset mode, CM2:CM0 = 000. This ensures that all potential inputs are
analog inputs. Device current is minimized when analog inputs are present at reset time. The
comparators will be powered-down during the reset interval.
20
Comparator
 1997 Microchip Technology Inc.
DS31020A-page 20-9
PICmicro MID-RANGE MCU FAMILY
20.11
Analog Input Connection Considerations
A simplified circuit for an analog input is shown in Figure 20-4. Since the analog pins are connected to a digital output, they have reverse biased diodes to VDD and VSS. The analog input
therefore, must be between VSS and VDD. If the input voltage deviates from this range by more
than 0.6V in either direction, one of the diodes is forward biased and a latch-up may occur. A
maximum source impedance of 10 kΩ is recommended for the analog sources.
Figure 20-4: Analog Input Model
VDD
VT = 0.6V
RS
RC < 10k
AIN
CPIN
5 pF
VAIN
VT = 0.6V
ILEAKAGE
±500 nA
VSS
Legend
CPIN
VT
ILEAKAGE
RIC
RS
VA
= Input Capacitance
= Threshold Voltage
= Leakage Current at the pin due to various junctions
= Interconnect Resistance
= Source Impedance
= Analog Voltage
Table 20-1: Registers Associated with Comparator Module
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Value on
POR,
BOR
Value on
All Other
Resets
CMCON
VRCON
C2OUT
VREN
C1OUT
VROE
—
VRR
—
—
CIS
VR3
CM2
VR2
CM1
VR1
CM0
VR0
00-- 0000
000- 0000
00-- 0000
000- 0000
INTCON
GIE
PEIE
T0IE
INTE
RBIE(2)
T0IF
INTF
RBIF(2)
0000 000x
0000 000x
0
0
0
0
Name
PIR
CMIF
(1)
PIE
CMIE (1)
Legend: x = unknown, - = unimplemented locations read as '0'.
Shaded cells are not used for Comparator Module.
Note 1: The position of this bit is device dependent.
2: These bits can also be named GPIE and GPIF.
DS31020A-page 20-10
 1997 Microchip Technology Inc.
Section 20. Comparator
20.12
Initialization
The code in Example 20-1 depicts example steps required to configure the comparator module
of the PIC16C62X devices. RA3 and RA4 are configured as digital output. RA0 and RA1 are configured as the V- inputs and RA2 as the V+ input to both comparators.
Example 20-1:
FLAG_REG
;
CLRF
CLRF
ANDLW
IORWF
MOVLW
MOVWF
BSF
MOVLW
MOVWF
BCF
CALL
MOVF
BCF
BSF
BSF
BCF
BSF
BSF
EQU
Initializing Comparator Module (PIC16C62X)
0X20
FLAG_REG
PORTA
0xC0
FLAG_REG,F
0x03
CMCON
STATUS,RP0
0x07
TRISA
STATUS,RP0
DELAY 10
CMCON,F
PIR1,CMIF
STATUS,RP0
PIE1,CMIE
STATUS,RP0
INTCON,PEIE
INTCON,GIE
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
Init flag register
Init PORTA
Mask comparator bits
Store bits in flag register
Init comparator mode
CM<2:0> = 011
Select Bank1
Initialize data direction
Set RA<2:0> as inputs, RA<4:3> as outputs,
TRISA<7:5> always read ‘0’
Select Bank0
10µs delay
Read
CMCON to end change condition
Clear pending interrupts
Select Bank1
Enable comparator interrupts
Select Bank0
Enable peripheral interrupts
Global interrupt enable
20
Comparator
 1997 Microchip Technology Inc.
DS31020A-page 20-11
PICmicro MID-RANGE MCU FAMILY
20.13
Design Tips
Question 1:
My program appears to lock up.
Answer 1:
You may be getting stuck in an infinite loop with the comparator interrupt service routine if you
did not follow the proper sequence to clear the CMIF flag bit. First you must read the CMCON
register, and then you can clear the CMIF flag bit.
DS31020A-page 20-12
 1997 Microchip Technology Inc.
Section 20. Comparator
20.14
Related Application Notes
This section lists application notes that are related to this section of the manual. These application notes may not be written specifically for the Mid-Range MCU family (that is they may be written for the Base-Line, or High-End families), but the concepts are pertinent, and could be used
(with modification and possible limitations). The current application notes related to the comparator module are:
Title
Resistance and Capacitance Meter using a PIC16C622
Application Note #
AN611
20
Comparator
 1997 Microchip Technology Inc.
DS31020A-page 20-13
PICmicro MID-RANGE MCU FAMILY
20.15
Revision History
Revision A
This is the initial released revision of the Comparator module description.
DS31020A-page 20-14
 1997 Microchip Technology Inc.