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.