PIC MCU Comparator Tips n Tricks

PIC® MCU
Comparator
Tips ‘n Tricks
M
Tips ‘n Tricks
Table of Contents
Tips ‘n Tricks Introduction
TIP #1:
TIP #2:
TIP #3:
TIP #4:
TIP #5:
TIP #6:
TIP #7:
TIP #8:
TIP #9:
TIP #10:
TIP #11:
TIP #12:
TIP #13:
TIP #14:
TIP #15:
TIP #16:
TIP #17:
TIP #18:
TIP #19:
TIP #20:
Low Battery Detection ................................. 2
Faster Code for Detecting Change.............. 5
Hysteresis.................................................... 7
Pulse Width Measurement ........................ 10
Window Comparison ................................. 12
Data Slicer................................................. 15
One-Shot ................................................... 17
Multi-Vibrator (Square Wave Output) ........ 20
Multi-Vibrator (Ramp Wave Output) .......... 22
Capacitive Voltage Doubler....................... 25
PWM Generator ........................................ 28
Making an Op Amp Out of a Comparator.. 31
PWM High-Current Driver ......................... 34
Delta-Sigma ADC ...................................... 38
Level Shifter .............................................. 40
Logic: Inverter............................................ 42
Logic: AND/NAND Gate ............................ 44
Logic: OR/NOR Gate................................. 47
Logic: XOR/XNOR Gate............................ 50
Logic: Set/Reset Flip Flop ......................... 53
© 2007 Microchip Technology Inc.
DS41215C-page i
Tips ‘n Tricks
NOTES:
DS41215C-page ii
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
TIPS ‘N TRICKS INTRODUCTION
Microchip continues to provide innovative
products that are smaller, faster, easier to use and
more reliable. The Flash-based PIC®
microcontrollers (MCU) are used in a wide range
of everyday products from smoke detectors to
industrial, automotive and medical products.
The PIC12F/16F Family of devices with on-chip
voltage comparators merge all the advantages of
the PIC MCU architecture and the flexibility of
Flash program memory with the mixed signal
nature of a voltage comparator. Together they form
a low-cost hybrid digital/analog building block with
the power and flexibility to work in an analog world.
The flexibility of Flash and an excellent
development tool suite, including a low-cost InCircuit Debugger, In-Circuit Serial Programming™
(ICSP™) and MPLAB® ICE 2000 emulation, make
these devices ideal for just about any embedded
control application.
The following series of Tips ‘n Tricks can be
applied to a variety of applications to help make
the most of discrete voltage comparators or
microcontrollers with on-chip voltage comparators.
© 2007 Microchip Technology Inc.
DS41215C-page 1
Tips ‘n Tricks
TIP #1
Low Battery Detection
When operating from a battery power supply, it is
important for a circuit to be able to determine when
the battery charge is insufficient for normal
operation of the circuit. Typically, this is a
comparator-based circuit similar to the
Programmable Low Voltage Detect (PLVD)
peripheral. If the PLVD peripheral is not available
in the microcontroller, a similar circuit can be
constructed using a comparator and a few external
components (see Figure 1-1 and Figure 1-2). The
circuit in Figure 1-1 assumes that the
microcontroller is operating from a regulated
supply voltage. The circuit in Figure 1-2 assumes
that the microcontroller supply is unregulated.
DS41215C-page 2
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
FIGURE 1-1:
REGULATED SUPPLY
VDD
R1
VBATT
Low Battery
R3
R4
R2
Enable
The comparator will trip when the battery voltage,
VBATT = 5.7V: R1 = 33k, R2 = 10k, R3 = 39k,
R4 = 10k, VDD = 5V.
In Figure 1-1, resistors R1 and R2 are chosen to
place the voltage at the non-inverting input at
approximately 25% of VDD. R3 and R4 are chosen
to set the inverting input voltage equal to the noninverting input voltage when the battery voltage is
equal to the minimum operating voltage for the
system.
© 2007 Microchip Technology Inc.
DS41215C-page 3
Tips ‘n Tricks
FIGURE 1-2:
UNREGULATED SUPPLY
VBATT
R3
R1
Comparator
Low Battery
D1
R2
Enable
Comparator will trip when VBATT = 3V: R1 = 33k,
R2 = 10k and R3 = 470Ω.
In Figure 1-2, resistor R3 is chosen to bias diode
D1 above its forward voltage when VBATT is equal
to the minimum battery voltage for the system.
Resistors R1 and R2 are chosen to set the
inverting input voltage equal to the forward voltage
of D1.
DS41215C-page 4
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
TIP #2
Faster Code for Detecting
Change
When using a comparator to monitor a sensor, it is
often just as important to know when a change
occurs as it is to know what the change is. To
detect a change in the output of a comparator, the
traditional method has been to store a copy of the
output and periodically compare the held value to
the actual output to determine the change. An
example of this type of routine is shown below.
EXAMPLE 2-1:
Test
MOVF hold,w ;
XORWF CMCON,w ;
ANDLW COUTMASK
BTFSC STATUS,Z
RETLW 0
;
MOVF CMCON,w ;
ANDLW COUTMASK ;
MOVWF hold
;
IORLW CHNGBIT ;
RETURN
get old Cout
compare to new Cout
if = return "no change"
if not =, get new Cout
remove all other bits
store in holding var.
add change flag
This routine requires 5 instructions for each test, 9
instructions if a change occurs, and 1 RAM
location for storage of the old output state.
A faster method for microcontrollers with a single
comparator is to use the comparator interrupt flag
to determine when a change has occurred.
© 2007 Microchip Technology Inc.
DS41215C-page 5
Tips ‘n Tricks
EXAMPLE 2-2:
Test
BTFSS
RETLW
BTFSS
RETLW
PIR1,CMIF
0
CMCON,COUT
CHNGBIT
;test comparator flag
;if clear, return a 0
;test Cout
;if clear return
;CHNGFLAG
RETLW COUTMASK + CHNGBIT;if set,
;return both
This routine requires 2 instructions for each test, 3
instructions if a change occurs, and no RAM
storage.
If the interrupt flag can not be used, or if two
comparators share an interrupt flag, an alternate
method that uses the comparator output polarity
bit can be used.
EXAMPLE 2-3:
Test
BTFSS
RETLW
MOVLW
XORWF
BTFSS
RETLW
CMCON,COUT
0
CINVBIT
CMCON,f
CMCON,CINV
CHNGFLAG
;test Cout
;if clear, return 0
;if set, invert Cout
;forces Cout to 0
;test Cout polarity
;if clear, return
;CHNGFLAG
RETLW COUTMASK + CHNGFLAG;if set,
;return both
This routine requires 2 instructions for each test, 5
instructions if a change occurs, and no GPR
storage.
DS41215C-page 6
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
TIP #3
Hysteresis
When the voltages on a comparator’s input are
nearly equal, external noise and switching noise
from inside the microcontroller can cause the
comparator output to oscillate or “chatter.” To
prevent chatter, some of the comparator output
voltage is fed back to the non-inverting input of the
comparator to form hysteresis (see Figure 3-1).
Hysteresis moves the comparator threshold up
when the input is below the threshold, and down
when the input is above the threshold. The result
is that the input must overshoot the threshold to
cause a change in the comparator output. If the
overshoot is greater than the noise present on the
input, the comparator output will not chatter.
FIGURE 3-1:
COMPARATOR WITH HYSTERESIS
Input
Output
R1
R3
VDD
R2
© 2007 Microchip Technology Inc.
DS41215C-page 7
Tips ‘n Tricks
To calculate the resistor values required, first
determine the high and low threshold values which
will prevent chatter (VTH and VTL). Using VTH and
VTL, the average threshold voltage can be
calculated using the equation.
EQUATION 3-1:
VAVG =
VDD * VTL
VDD – VTH + VTL
Next, choose resistor values that satisfy
Equation 3-2 and calculate the equivalent
resistance using Equation 3-3.
Note:A continuous current will flow through R1
and R2. To limit the power dissipation in
R1 and R2 the total resistance of R1 and
R2 should be at least 1k. The total
resistance of R1 and R2 should also be
kept below 10K to keep the size of R3
small. Large values for R3, 100k-10
megohm, can produce voltage offsets at
the non-inverting input due to the
comparator’s input bias current.
EQUATION 3-2:
VAVG =
DS41215C-page 8
VDD * R2
R1 + R2
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
EQUATION 3-3:
REQ =
R1 * R2
R1 + R2
Then, determine the feedback divider ratio DR,
using Equation 3-4.
EQUATION 3-4:
DR =
(VTH – VTL)
VDD
Finally, calculate the feedback resistor R3 using
Equation 3-5.
EQUATION 3-5:
R3 = REQ [ (
1
DR
) – 1]
Example:
• A VDD = 5.0V, VH = 3.0V and VL = 2.5V
• VAVG = 2.77V
• R = 8.2k and R2 = 10k, gives a VAVG = 2.75V
• REQ = 4.5k
• DR = .1
• R3 = 39k (40.5 calculated)
• VHACT = 2.98V
• VLACT = 2.46V
© 2007 Microchip Technology Inc.
DS41215C-page 9
Tips ‘n Tricks
TIP #4
Pulse Width Measurement
To measure the high or low pulse width of an
incoming analog signal, the comparator can be
combined with Timer1 and the Timer1 Gate input
option (see Figure 4-1). Timer1 Gate acts as a
count enable for Timer1. If the input is low, Timer1
will count. If the T1G input is high, Timer1 does not
count. Combining T1G with the comparator allows
the designer to measure the time between a highto-low output change and a low-to-high output
change.
To make a measurement between a low-to-high
and a high-to-low transition, the only change
required is to set the CINV bit in the comparator
CMCON register which inverts the comparator
output.
Because the output of the comparator can change
asynchronously with the Timer1 clock, only
comparators with the ability to synchronize their
output with the Timer1 clock should be used and
their C2SYNC bits should be set.
FIGURE 4-1:
COMPARATOR WITH TIMER1 AND T1G
VDD
VINPUT
COUT
TIG
Timer1
Trigger Level
DS41215C-page 10
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
If the on-chip comparator does not have the ability
to synchronize its output to the Timer1 clock, the
output can be synchronized externally using a
discrete D flip-flop (see Figure 4-2).
Note:The flip-flop must be falling edge triggered
to prevent a race condition.
FIGURE 4-2:
VDD
VINPUT
TIG
COUT
D O
Trigger Level
© 2007 Microchip Technology Inc.
Timer
Clock
Timer1
T1CKI
DS41215C-page 11
Tips ‘n Tricks
TIP #5
Window Comparison
When monitoring an external sensor, it is often
convenient to be able to determine when the signal
has moved outside a pre-established safe
operating range of values or window of operation.
This windowing provides the circuit with an alarm
when the signal moves above or below safety
limits, ignoring minor fluctuations inside the safe
operating range.
To implement a window comparator, two voltage
comparators and 3 resistors are required (see
Figure 5-1).
FIGURE 5-1:
WINDOW COMPARATOR
VDD
R1
High Limit
Input
R2
Low Limit
R3
DS41215C-page 12
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
Resistors R1, R2 and R3 form a voltage divider
which generates the high and low threshold
voltages. The outputs HIGH LIMIT and LOW LIMIT
are both active high, generating a logic one on the
HIGH LIMIT output when the input voltage rises
above the high threshold, and a logic one on the
LOW LIMIT output when the input voltage falls
below the low threshold.
To calculate values for R1, R2 and R3, find values
that satisfy Equation 5-1 and Equation 5-2.
Note:A continuous current will flow through R1,
R2 and R3. To limit the power dissipation
in the resistors, the total resistance of R1,
R2 and R3 should be at least 1k. The total
resistance of R1, R2 and R3 should also
be kept less than 1 megohm to prevent
offset voltages due to the input bias
currents of the comparator.
EQUATION 5-1:
VTH-HI =
© 2007 Microchip Technology Inc.
VDD * (R3 + R2)
R1 + R2 + R3
DS41215C-page 13
Tips ‘n Tricks
EQUATION 5-2:
VTH-LO =
VDD * R3
R1 + R2 + R3
Example:
• VDD = 5.0V, VTH = 2.5V, VTL = 2.0V
• R1 = 12k, R2 = 2.7k, R3 = 10k
• VTH (actual) = 2.57V, VTL (actual) = 2.02V
Adding Hysteresis:
To add hysteresis to the HIGH LIMIT comparator,
follow the procedure outlined in TIP #3. Use the
series combination of R2 and R3 as the resistor R2
in TIP #3.
To add hysteresis to the LOW LIMIT comparator,
choose a suitable value for Req, 1k to 10 kOhm,
and place it between the circuit input and the noninverting input of the LOW LIMIT comparator. Then
calculate the needed feedback resistor using
Equation 3-4 and Equation 3-5.
DS41215C-page 14
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
TIP #6
Data Slicer
In both wired and wireless data transmission, the
data signal may be subject to DC offset shifts due
to temperature shifts, ground currents or other
factors in the system. When this happens, using a
simple level comparison to recover the data is not
possible because the DC offset may exceed the
peak-to-peak amplitude of the signal. The circuit
typically used to recover the signal in this situation
is a data slicer.
The data slicer shown in Figure 6-1 operates by
comparing the incoming signal with a sliding
reference derived from the average DC value of
the incoming signal. The DC average value is
found using a simple RC low-pass filter (R1 and
C1). The corner frequency of the RC filter should
be high enough to ignore the shifts in the DC level
while low enough to pass the data being
transferred.
Resistors R2 and R3 are optional. They provide a
slight bias to the reference, either high or low, to
give a preference to the state of the output when
no data is being received. R2 will bias the output
low and R3 will bias the output high. Only one
resistor should be used at a time, and its value
should be at least 50 to 100 times larger than R1.
Example:
Data rate of 10 kbits/second. A low pass filter
frequency of 500 Hz: R1 = 10k, C1 = 33 μF. R2 or
R3 should be 500k to 1 MB.
© 2007 Microchip Technology Inc.
DS41215C-page 15
Tips ‘n Tricks
FIGURE 6-1:
DATA SLICER
VDD
R2
Comparator
Input
R1
Output
R3
DS41215C-page 16
C1
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
TIP #7
One-Shot
When dealing with short duration signals or
glitches, it is often convenient to stretch out the
event using a mono-stable, multi-vibrator or oneshot. Whenever the input pulses, the one-shot
fires holding its output for a preset period of time.
This stretches the short trigger input into a long
output which the microcontroller can capture.
The circuit is designed with two feedback paths
around a comparator. The first is a positive
hysteresis feedback which sets a two level
threshold, VHI and VLO, based on the state of the
comparator output. The second feedback path is
an RC time circuit.
The one-shot circuit presented in Figure 7-1 is
triggered by a low-high transition on its input and
generates a high output pulse. Using the
component values from the example, the circuit’s
operation is as follows.
Prior to triggering, C1 will have charged to a
voltage slightly above 0.7V due to resistor R2 and
D1 (R1 << R2 and will have only a minimal effect
on the voltage). The comparator output will be low,
holding the non-inverting input slightly below 0.7V
due to the hysteresis feedback through R3, R4 and
R5 (the hysteresis lower limit is designed to be
less than 0.7V). With the non-inverting input held
low, C2 will charge up to the difference between
the circuit input and the voltage present at the
non-inverting input.
© 2007 Microchip Technology Inc.
DS41215C-page 17
Tips ‘n Tricks
When the circuit input is pulsed high, the voltage
present at the non-inverting input is pulled above
0.7V due to the charge in C2. This causes the
output of the comparator to go high, the hysteresis
voltage at the non-inverting input goes to the high
threshold voltage, and C1 begins charging through
R2.
When the voltage across C1 exceeds the high
threshold voltage, the output of the comparator
goes low, C1 is discharged to just above the 0.7V
limit, the non-inverting input is pulled below 0.7V,
and the circuit is reset for the next pulse input,
waiting for the next trigger input.
FIGURE 7-1:
ONE-SHOT CIRCUIT
VDD
R2
C1
V1
R1
D1
Comparator
VDD
R3
Output
V2
C2
Input
R5
DS41215C-page 18
R4
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
To design the one-shot, first create the hysteresis
feedback using the techniques from TIP #3.
Remember to set the low threshold below 0.7V.
Next, choose values for R2 and C1 using
Equation 7-1.
EQUATION 7-1:
TPULSE =
R2 * C1 * ln(VTH/VTL)
4
D1 can be any low voltage switching diode. R1
should be 1% to 2% of R2 and C2 should be
between 100 and 220 pF.
Example:
• VDD = 5V, VTH = 3.0V, VTL = 2.5V
• From TIP #3, R4 = 1k, R5 = 1.5k and R3 = 12k
• TPULSE = IMS, C1 = .1 μF and R2 = 15k
• D1 is a 1N4148, R1 = 220Ω and C2 = 150 pF
© 2007 Microchip Technology Inc.
DS41215C-page 19
Tips ‘n Tricks
TIP #8
Multi-Vibrator (Square Wave
Output)
A multi-vibrator is an oscillator designed around a
voltage comparator or operational amplifier (see
Figure 8-1). Resistors R1 through R3 form a
hysteresis feedback path from the output to the
non-inverting input. Resistor RT and capacitor CT
form a time delay network between the output and
the inverting input. At the start of the cycle, CT is
discharged holding the non-inverting input at
ground, forcing the output high. A high output
forces the non-inverting input to the high threshold
voltage (see TIP #3) and charges CT through RT.
When the voltage across CT reaches the high
threshold voltage, the output is forced low. A low
output drops the non-inverting input to the low
threshold voltage and discharges CT through RT.
When the voltage across CT reaches the low
threshold voltage, the output is forced high and the
cycle starts over.
DS41215C-page 20
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
FIGURE 8-1:
MULTI-VIBRATOR CIRCUIT
CT
RT
Output
VDD
R1
R3
R2
To design a multi-vibrator, first design the
hysteresis feedback path using the procedure in
TIP #3. Be careful to choose threshold voltages
(VTH and VTL) that are evenly spaced within the
common mode range of the comparator and
centered on VDD/2. Then use VTH and VTL to
calculate values for RT and CT that will result in
the desired oscillation frequency FOSC.
Equation 8-1 defines the relationship between RT,
CT, VTH, VTL and FOSC.
EQUATION 8-1:
FOSC =
1
2 * RT * CT * ln(VTH/VTL)
Example:
• VDD = 5V, VTH = 3.333, VTL = 1.666V
• R1, to R2, to R3 = 10k
• RT = 15 kHz, CT = .1 μF for FOSC = 480 Hz
© 2007 Microchip Technology Inc.
DS41215C-page 21
Tips ‘n Tricks
TIP #9
Multi-Vibrator (Ramp Wave
Output)
A multi-vibrator (ramp wave output) is an oscillator
designed around a voltage comparator or
operational amplifier that produces an
asymmetrical output waveform (see Figure 9-1).
Resistors R1 through R3 form a hysteresis
feedback path from the output to the non-inverting
input. Resistor RT, diode D1 and capacitor CT
form a time delay network between the output and
the inverting input. At the start of the cycle, CT is
discharged holding the non-inverting input at
ground, forcing the output high. A high output
forces the non-inverting input to the high threshold
voltage (see TIP #3) and charges CT through RT.
When the voltage across CT reaches the high
threshold voltage, the output is forced low. A low
output drops the non-inverting input to the low
threshold voltage and discharges CT through D1.
Because the dynamic on resistance of the diode is
significantly lower than RT, the discharge of CT is
small when compared to the charge time, and the
resulting waveform across CT is a pseudo ramp
function with a ramping charge phase and a shortsharp discharge phase.
DS41215C-page 22
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
FIGURE 9-1:
RAMP WAVEFORM MULTI-VIBRATOR
D1
CT
Output
RT
Comparator
VDD
R1
R3
R2
To design this multi-vibrator, first design the
hysteresis feedback path using the procedure in
TIP #3. Remember that the peak-to-peak
amplitude of the ramp wave will be determined by
the hysteresis limits. Also, be careful to choose
threshold voltages (VTH and VTL) that are evenly
spaced within the common mode range of the
comparator. Then use VTH and VTL to calculate
values for RT and CT that will result in the desired
oscillation frequency FOSC. Equation 9-1 defines
the relationship between RT, CT, VTH, VTL and
FOSC.
EQUATION 9-1:
FOSC =
1
RT * CT * ln(VTH/VTL)
This assumes that the dynamic on resistance of
D1 is much less than RT.
© 2007 Microchip Technology Inc.
DS41215C-page 23
Tips ‘n Tricks
Example:
• VDD = 5V, VTL = 1.666V and VTH = 3.333V
• R1, R2 and R3 = 10k
• RT = 15k, CT = .1 μF for a FOSC = 906 Hz
Note:Replacing RT with a current limiting diode
will significantly improve the linearity of
the ramp wave form. Using the example
shown above, a CCL1000 (1 mA Central
Semiconductor CLD), will produce a very
linear 6 kHz output (see Equation 9-2).
EQUATION 9-2:
FOSC =
FIGURE 9-2:
ICLD
C (VTH – VTL)
ALTERNATE RAMP WAVEFORM
MULTI-VIBRATOR USING A CLD
Output
D1
CT
CLD
Comparator
VDD
R1
R3
R2
DS41215C-page 24
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
TIP #10 Capacitive Voltage Doubler
This tip takes the multi-vibrator described in TIP #8
and builds a capacitive voltage doubler around it
(see Figure 10-1). The circuit works by alternately
charging capacitor C1 through diode D1, and then
charge balancing the energy in C1 with C2 through
diode D2. At the start of the cycle, the output of the
multi-vibrator is low and charge current flows from
VDD through D1 and into C1. When the output of
the multi-vibrator goes high, D1 is reverse biased
and the charge current stops. The voltage across
C1 is added to the output voltage of the multivibrator, creating a voltage at the positive terminal
of C1 which is 2 x VDD. This voltage forward biases
D2 and the charge in C1 is shared with C2. When
the output of the multi-vibrator goes low again, the
cycle starts over.
© 2007 Microchip Technology Inc.
DS41215C-page 25
Tips ‘n Tricks
FIGURE 10-1:
CAPACITIVE VOLTAGE DOUBLER
VDD
RT
CT
D1
C1
VDD R1
+
Comparator
R2
D2
VOLT
+
C2
R3
Note: The output voltage of a capacitive double
is unregulated and will sag with increasing
load current. Typically, the output is
modeled as a voltage source with a series
resistance (see Figure 10-2).
FIGURE 10-2:
EQUIVALENT OUTPUT MODEL
2 x VDD
ROUT
VOUT
To design a voltage doubler, first determine the
maximum tolerable output resistance based on the
required output current and the minimum tolerable
output voltage. Remember that the output current
will be limited to one half of the output capability of
the comparator. Then choose a transfer
capacitance and switching frequency using
Equation 10-1.
DS41215C-page 26
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
EQUATION 10-1:
ROUT =
1
FSWITCH * C1
Note: ROUT will be slightly higher due to the
dynamic resistance of the diodes. The
equivalent series resistance or ESR, of
the capacitors and the output resistance of
the comparator. See the data sheet for the
TC7660 for a more complete description.
Once the switching frequency is determined,
design a square-wave multi-vibrator as described
in TIP #8.
Finally, select diodes D1 and D2 for their current
rating and set C2 equal to C1.
Example:
From TIP #8, the values are modified for a FOSC of
4.8 kHz.
• C1 and C2 = 10 μF
• ROUT = 21Ω.
© 2007 Microchip Technology Inc.
DS41215C-page 27
Tips ‘n Tricks
TIP #11 PWM Generator
This tip shows how the multi-vibrator (ramp wave)
can be used to generate a voltage controlled PWM
signal. The ramp wave multi-vibrator operates as
described in TIP #9, generating a positive going
ramp wave. A second comparator compares the
instantaneous voltage of the ramp wave with the
incoming voltage to generate the PWM output (see
Figure 11-2).
When the ramp starts, it is below the input voltage,
and the output of the second comparator is pulled
high starting the PWM pulse. The output remains
high until the ramp wave voltage exceeds the
input, then the output of the second comparator
goes low ending the PWM pulse. The output of the
second comparator remains low for the remainder
of the ramp waveform. When the ramp waveform
returns to zero at the start of the next cycle, the
second comparator output goes high again and
the cycle starts over.
DS41215C-page 28
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
FIGURE 11-1:
PWM WAVE FORMS
Ramp
Wave
Form
V1
Time
Input
Time
Output
Time
FIGURE 11-2:
PWM CIRCUIT
Comparator
Output
Input
V1
D1
CT
CLD
Comparator
VDD
R1
R3
R2
© 2007 Microchip Technology Inc.
DS41215C-page 29
Tips ‘n Tricks
To design a PWM generator, start with the design
of a ramp wave multi-vibrator using the design
procedure from TIP #9. Choose high and low
threshold voltages for the multi-vibrators
hysteresis feedback that are slightly above and
below the desired PWM control voltages.
Note:The PWM control voltage will produce a
0% duty cycle for inputs below the low
threshold of the multi-vibrator. A control
voltage greater than the high threshold
voltage will produce a 100% duty cycle
output.
Using the example values from TIP #9 will result in
a minimum pulse width at an input voltage of 1.7V
and a maximum at an input of 3.2V.
DS41215C-page 30
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
TIP #12 Making an Op Amp Out of a
Comparator
When interfacing to a sensor, some gain is
typically required to match the full range of the
sensor to the full range of an ADC. Usually this is
done with an operational amplifier, however, in
cost sensitive applications, an additional active
component may exceed the budget. This tip shows
how an on-chip comparator can be used as an op
amp like gain stage for slow sensor signals. Both
an inverting and non-inverting topology are shown
(see Figure 12-1 and Figure 12-2).
FIGURE 12-1:
NON-INVERTING AMPLIFIER
Comparator
Input
R3
Output
C2
R2
C1
FIGURE 12-2:
R1
INVERTING AMPLIFIER
VDD
10K
Comparator
10K
R3
Output
C2
R2
Input
C1
© 2007 Microchip Technology Inc.
R1
DS41215C-page 31
Tips ‘n Tricks
To design a non-inverting amplifier, choose
resistors R1 and R2 using the Gain formula for an
op amp non-inverting amplifier (see
Equation 12-1).
EQUATION 12-1:
Gain =
R1 + R2
R2
Once the gain has been determined, values for R3
and C2 can be determined. R3 and C2 form a lowpass filter on the output of the amplifier. The corner
frequency of the low pass should be 2 to 3 times
the maximum frequency of the signal being
amplified to prevent attenuation of the signal, and
R3 should be kept small to minimize the output
impedance of the amplifier. Equation 12-2 shows
the relationship between R3, C2 and the corner
frequency of the low pass filter.
EQUATION 12-2:
FCORNER =
DS41215C-page 32
1
2 * π * R3 * C2
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
A value for C1 can then be determined using
Equation 12-3. The corner frequency should be
the same as Equation 12-3.
EQUATION 12-3:
1
2 * π * (R1 || R2) * C2
FCORNER =
To design an inverting amp, choose resistors R1
and R2 using the Gain formula for an op amp
inverting amplifier (see Equation 12-4).
EQUATION 12-4:
Gain =
R1
R2
Then choose values for the resistor divider formed
by R4 and R5. Finally choose C1 and C2 as shown
in the non-inverting amplifier design.
Example:
• For C2 will set the corner F
• Gain = 6.156, R1 = R3 = 19.8k
• R2 = 3.84k, C1 = .047 μF, FCORNER = 171 Hz
• C2 = .22 μF
© 2007 Microchip Technology Inc.
DS41215C-page 33
Tips ‘n Tricks
TIP #13 PWM High-Current Driver
This tip combines a comparator with a MOSFET
transistor and an inductor to create a switch mode
high-current driver circuit. (See Figure 13-1).
The operation of the circuit begins with the
MOSFET off and no current flowing in the inductor
and load. With the sense voltage across R1 equal
to zero and a DC voltage present at the drive level
input, the output of the comparator goes low. The
low output turns on the MOSFET and a ramping
current builds through the MOSFET, inductor, load
and R1.
FIGURE 13-1:
HIGH CURRENT DRIVER
VDD
Comparator
Drive
Level
R3
R2
C1
DS41215C-page 34
P ch
MOSFET
Load
R1
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
When the current ramps high enough to generate
a voltage across R1 equal to the drive level, the
comparator output goes high turning off the
MOSFET. The voltage at the junction of the
MOSFET and the inductor then drops until D1
forward biases. The current continues ramping
down from its peak level toward zero. When the
voltage across the sense resistor R1 drops below
the drive level, the comparator output goes low,
the MOSFET turns on, and the cycle starts over.
R2 and C1 form a time delay network that limits the
switching speed of the driver and causes it to
slightly overshoot and undershoot the drive level
when operating. The limit is necessary to keep the
switching speed low, so the MOSFET switches
efficiently. If R2 and C1 were not present, the
system would run at a speed set by the
comparator propagation delay and the switching
speed of the MOSFET. At that speed, the
switching time of the MOSFET would be a
significant portion of the switching time and the
switching efficiency of the MOSFET would be too
low.
© 2007 Microchip Technology Inc.
DS41215C-page 35
Tips ‘n Tricks
FIGURE 13-2:
CURRENT THROUGH THE LOAD
Load Current
Ripple Current
Drive Level
Time
To design a PWM high current driver, first
determine a switching speed (FSWX) that is
appropriate for the system. Next, choose a
MOSFET and D1 capable of handling the load
current requirements. Then choose values for R2
and C1 using Equation 13-1.
EQUATION 13-1:
FSWX =
DS41215C-page 36
2
R2 * C1
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
Next determine the maximum ripple current that
the load will tolerate, and calculate the required
inductance value for L1 using Equation 13-2.
EQUATION 13-2:
L=
VDD – VLOAD
IRIPPLE * FSWX * 2
Finally, choose a value for R1 that will produce a
feedback ripple voltage of 100 mV for the
maximum ripple current IRIPPLE.
Example:
• FSWX = 10 kHz, R2 = 22k, C1 = .01 μF
• IRIPPLE = 100 mA, VDD = 12V, VL = 3.5V
• L = 4.25 mH
© 2007 Microchip Technology Inc.
DS41215C-page 37
Tips ‘n Tricks
TIP #14 Delta-Sigma ADC
This tip describes the creation of a hardware/
software-based Delta-Sigma ADC. A Delta-Sigma
ADC is based on a Delta-Sigma modulator
composed of an integrator, a comparator, a clock
sampler and a 1-bit DAC output. In this example,
the integrator is formed by R1 and C1. The
comparator is an on-chip voltage comparator. The
clock sampler is implemented in software and the
1-bit DAC output is a single I/O pin. The DAC
output feeds back into the integrator through R2.
Resistors R3 and R4 form a VDD/2 reference for
the circuit (see Figure 14-1).
FIGURE 14-1:
DELTA-SIGMA MODULATOR
Input
R2
R1
Comparator
C1
R3
Software
Data
R4
VDD
In operation, the feedback output from the
software is a time sampled copy of the comparator
output. In normal operation, the modulator output
generates a PWM signal which is inversely
proportional to the input voltage. As the input
DS41215C-page 38
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
voltage increases, the PWM signal will drop in duty
cycle to compensate. As the input decreases, the
duty cycle rises.
To perform an A-to-D conversion, the duty cycle
must be integrated over time, digitally, to integrate
the duty cycle to a binary value. The software
starts two counters. The first counts the total
number of samples in the conversion and the
second counts the number of samples that were
low. The ratio of the two counts is equal to the ratio
of the input voltage over VDD.
Note: This assumes that R1 and R2 are equal
and R3 is equal to R4. If R1 and R2 are not
equal, then the input voltage is also scaled
by the ratio of R2 over R1, and R3 must
still be equal to R4.
For a more complete description of the operation
of a Delta-Sigma ADC and example firmware, see
Application Note AN700 “Make A Delta-Sigma
Converter Using a Microcontroller’s Analog
Comparator Module.”
Example:
• R3 = R4 = 10 kHz
• R1 = R2 = 5.1k
• C1 = 1000 pF
© 2007 Microchip Technology Inc.
DS41215C-page 39
Tips ‘n Tricks
TIP #15 Level Shifter
This tip shows the use of the comparator as a
digital logic level shifter. The inverting input is
biased to the center of the input voltage range
(VIN/2). The non-inverting input is then used for the
circuit input. When the input is below the VIN/2
threshold, the output is low. When the input is
above VIN/2, then the output is high. Values for R1
and R2 are not critical, though their ratio should
result in a threshold voltage VIN/2 at the mid-point
of the input signal voltage range. Some
microcontrollers have the option to connect the
inverting input to an internal voltage reference. To
use the reference in place of R1 and R2, simply
select the internal reference and configure it for
one half the input voltage range.
Note: Typical propagation delay for the circuit is
250-350 ns using the typical on-chip comparator peripheral of a microcontroller.
DS41215C-page 40
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
FIGURE 15-1:
LEVEL SHIFTER
VDD
R1
Y
A
R2
Example:
• VIN = 0 - 2V, VIN/2 = 1V, VDD = 5V
• R2 = 10k, R3 = 3.9k
© 2007 Microchip Technology Inc.
DS41215C-page 41
Tips ‘n Tricks
TIP #16 Logic: Inverter
When designing embedded control applications,
there is often the need for an external gate. Using
the comparator, several simple gates can be
implemented. This tip shows the use of the
comparator as an inverter.
The non-inverting input is biased to the center of
the input voltage range, typically VDD/2. The
inverting input is then used for the circuit input.
When the input is below VDD/2, the output is high.
When the input is above VDD/2, then the output is
low.
Values for R1 and R2 are not critical, though they
must be equal to set the threshold at VDD/2.
Some microcontrollers have the option to connect
the inverting input to an internal voltage reference.
To use the reference in place of R1 and R2, move
the input to the non-inverting input and set the
output polarity bit in the comparator control
register to invert the comparator output.
Note: Typical propagation delay for the circuit is
250-350 ns using the typical on-chip comparator peripheral of a microcontroller.
DS41215C-page 42
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
FIGURE 16-1:
INVERTER
VDD
R1
Y
A
R2
© 2007 Microchip Technology Inc.
DS41215C-page 43
Tips ‘n Tricks
TIP #17 Logic: AND/NAND Gate
This tip shows the use of the comparator to
implement an AND gate and its complement the
NAND gate (see Figure 17-2). Resistors R1 and
R2 drive the non-inverting input with 2/3 the supply
voltage. Resistors R3 and R4 average the voltage
of input A and B at the inverting input. If either A or
B is low, the average voltage will be one half VDD
and the output of the comparator remains low. The
output will go high only if both inputs A and B are
high, which raises the input to the inverting input
above 2/3 VDD.
The operation of the NAND gate is identical to the
AND gate, except that the output is inverted due to
the swap of the inverting and non-inverting inputs.
Note: Typical propagation delay for the circuit is
250-350 ns using the typical on-chip comparator peripheral of a microcontroller.
Delay measurements were made with 10k
resistance values.
DS41215C-page 44
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
While the circuit is fairly simple, there are a few
requirements for correct operation:
1. The inputs A and B must drive from ground
to VDD for the circuit to operate properly.
2. The combination of R1 and R2 will draw
current constantly, so they must be kept large
to minimize current draw.
3. All resistances on the inverting input react with
the input capacitance of the comparator. So the
speed of the gate will be affected by the source
resistance of A and B, as well as, the size of
resistors R3 and R4.
4. Resistor R2 must be 2 x R1.
5. Resistor R3 must be equal to R4.
FIGURE 17-1:
AND GATE
R3
A
R4
B
VDD
Y
R1
R2
Example:
• VDD = 5V, R3 = R4 = 10k
• R1 = 5.1k, R2 = 10k
© 2007 Microchip Technology Inc.
DS41215C-page 45
Tips ‘n Tricks
FIGURE 17-2:
NAND GATE
R3
A
R4
B
VDD
Y
R1
R2
DS41215C-page 46
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
TIP #18 Logic: OR/NOR Gate
This tip shows the use of the comparator to
implement an OR gate, and its complement, the
NOR gate.
Resistors R1 and R2 drive the non-inverting input
of the comparator with 1/3 VDD. Resistors R3 and
R4 average the voltages of the inputs A and B at
the inverting input. If either A or B is high, the
average voltage is 1/2 VDD and the output of the
comparator is high. Only if both A and B are low
does the average voltage at the non-inverting input
drop below 1/3 the supply voltage, causing the
comparator output to go low. The operation of the
NOR gate is identical to the OR gate, except the
output is inverted due to the swap of the inverting
and non-inverting inputs.
Note: Typical propagation delay for the circuit is
250-350 ns using the typical on-chip comparator peripheral of a microcontroller.
Delay measurements were made with 10k
resistance values.
© 2007 Microchip Technology Inc.
DS41215C-page 47
Tips ‘n Tricks
While the circuit is fairly simple, there are a few
requirements for correct operation:
1. The inputs A and B must drive from ground
to VDD for the circuit to operate properly.
2. The combination of R1 and R2 will draw
current constantly, so they must be kept large
to minimize current draw.
3. All resistances on the inverting input react with
the input capacitance of the comparator, so the
speed of the gate will be affected by the source
resistance of A and B, as well as, the size of
resistors R3 and R4.
4. Resistor R1 must be 2 x R2.
5. Resistor R3 must be equal to R4.
FIGURE 18-1:
OR GATE
R3
A
R4
B
VDD
Y
R1
R2
Example:
• VDD = 5V, R3 = R4 = 10k
• R1 = 10k, R2 = 5.1k
DS41215C-page 48
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
FIGURE 18-2:
NOR GATE
R3
A
R4
B
VDD
Y
R1
R2
© 2007 Microchip Technology Inc.
DS41215C-page 49
Tips ‘n Tricks
TIP #19 Logic: XOR/XNOR Gate
This tip shows the use of the comparator to
implement an XOR gate and its complement the
XNOR gate.
The operation is best described in three sections:
1. Both A and B inputs are low
With both inputs low, the inverting input is
held at .7V and the non-inverting is held at
ground. This combination results in a low
output.
2. Both A and B inputs are high
With both inputs high, the inverting input is
pulled up to VDD and the non-inverting input is
equal to 2/3 VDD (the average of VDD inputs
and GND). This combination also results in a
low output.
3. Input A or B is high
With one input high and one low, The inverting
input is held at .7V and the non-inverting input
is equal to 1/3 VDD (the average of a VDD input
and GND). This combination results in a high
output.
Note: Typical propagation delay for the circuit is
250-350 ns using the typical on-chip comparator peripheral of a microcontroller.
Delay measurements were made with 10k
resistance values.
DS41215C-page 50
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
While the circuit is fairly simple, there are a few
requirements for correct operation:
1. The inputs A and B must drive from ground
to VDD for the circuit to operate properly.
2. All resistances on the both inputs react with the
input capacitance of the comparator, so the
speed of the gate will be affected by the source
resistance of A and B, as well as, the size of
resistors R1, R2, R3 and R4.
3. Resistor R1, R2 and R3 must be equal.
4. Resistor R4 must be small enough to produce
a 1.0V, or lower, voltage drop across D1 and
D2.
FIGURE 19-1:
XOR GATE
Comparator
R1
A
Y
R2
B
R3
VDD
D1
R4
D2
© 2007 Microchip Technology Inc.
DS41215C-page 51
Tips ‘n Tricks
FIGURE 19-2:
XNOR GATE
Comparator
R1
A
Y
R2
B
R3
VDD
D1
R4
D2
Example:
• D1 = D2, = 1N4148
• R4 = 10k, R1 = R2 = R3 = 5.1k
DS41215C-page 52
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
TIP #20 Logic: Set/Reset Flip Flop
This tip shows the use of the comparator to
implement a Set/Reset Flip Flop.
The inverting and non-inverting inputs are biases
at VDD/2 by resistors R1 through R4. The noninverting input also receives positive feedback
from the output through R5. The common bias
voltages and the positive feedback configure the
comparator as a bistable latch. If the output Q is
high, the non-inverting input is also pulled high,
which reinforces the high output. If Q is low, the
non-inverting input is also pulled low, which
reinforces the low output. To change state, the
appropriate input must be pulled low to overcome
the positive feedback. The diodes prevent a
positive state on either input from pulling the bias
of either input above VDD/2.
Note: Typical propagation delay for the circuit is
250-350 ns using the typical on-chip comparator peripheral of a microcontroller.
Delay measurements were made with 10k
resistance values.
© 2007 Microchip Technology Inc.
DS41215C-page 53
Tips ‘n Tricks
While the circuit is fairly simple, there are a few
requirements for correct operation:
1. The inputs Set and Reset must be driven
near ground for the circuit to operate
properly.
2. The combination of R1/R2 and R3/R4 will draw
current constantly, so they must be kept large
to minimize current draw.
3. R1 through R4 must be equal for a VDD/2 trip
level.
4. R5 must be greater or equal to R3.
5. R1 through R4 will react with the input
capacitance of the comparator, so larger
values will limit the minimum input pulse width.
FIGURE 20-1:
SET/RESET FLIP FLOP
VDD
VDD
R1
R3
R5
SET
Q
RESET
R2
R4
Example:
• Diodes = 1N4148
• R1 = R2 = R3 = R4 = 10k
• R5 = 10k
DS41215C-page 54
© 2007 Microchip Technology Inc.
Tips ‘n Tricks
NOTES:
© 2007 Microchip Technology Inc.
DS41215C-page 55
Tips ‘n Tricks
NOTES:
DS41215C-page 56
© 2007 Microchip Technology Inc.
Information contained in this publication regarding device applications and the like is provided only for your convenience and
may be superseded by updates. It is your responsibility to ensure
that your application meets with your specifications. Microchip
makes no representations or warranties of any kind whether
express or implied, written or oral, statutory or otherwise, related to
the information, including but not limited to its condition, quality,
performance, merchantability or fitness for purpose. Microchip
disclaims all liability arising from this information and its use. Use
of Microchip’s products as critical components in life support
systems is not authorized except with express written approval by
Microchip. No licenses are conveyed, implicitly or otherwise, under
any Microchip intellectual property rights.
The graphics in this document are for illustration only. Microchip
reserves the right to modify the contents of its development
systems.
Trademarks
The Microchip name and logo, the Microchip logo, Accuron,
dsPIC, KEELOQ, KEELOQ logo, microID, MPLAB, PIC, PICmicro,
PICSTART, PRO MATE, PowerSmart, rfPIC, and SmartShunt
are registered trademarks of Microchip Technology Incorporated
in the U.S.A. and other countries.
AmpLab, FilterLab, Linear Active Thermistor, Migratable
Memory, MXDEV, MXLAB, PS logo, SEEVAL, SmartSensor and
The Embedded Control Solutions Company are registered
trademarks of Microchip Technology Incorporated in the U.S.A.
Analog-for-the-Digital Age, Application Maestro, CodeGuard,
dsPICDEM, dsPICDEM.net, dsPICworks, ECAN,
ECONOMONITOR, FanSense, FlexROM, fuzzyLAB, In-Circuit
Serial Programming, ICSP, ICEPIC, Mindi, MiWi, MPASM,
MPLAB Certified logo, MPLIB, MPLINK, PICkit, PICDEM,
PICDEM.net, PICLAB, PICtail, PowerCal, PowerInfo,
PowerMate, PowerTool, REAL ICE, rfLAB, rfPICDEM, Select
Mode, Smart Serial, SmartTel, Total Endurance, UNI/O,
WiperLock and ZENA are trademarks of Microchip Technology
Incorporated in the U.S.A. and other countries.
SQTP is a service mark of Microchip Technology Incorporated in
the U.S.A.
All other trademarks mentioned herein are property of their
respective companies.
© 2007, Microchip Technology Incorporated, Printed in the
U.S.A., All Rights Reserved.
Printed on recycled paper.
© 2007 Microchip Technology Inc.
DS41215C-page 57
M
Worldwide Sales and Service
AMERICAS
China-Hong Kong
Philippines-Manila
SAR
Tel: 63-2-634-9065
Tel: 852-2401-1200
Singapore
China-Qingdao
Tel: 65-6334-8870
Tel: 86-532-8502-7355 Taiwan-Hsin Chu
Tel: 886-3-572-9526
China-Shanghai
Taiwan-Kaohsiung
Tel: 86-21-5407-5533
Tel: 886-7-536-4818
China-Shenyang
Taiwan-Taipei
Tel: 86-24-2334-2829
Tel: 886-2-2500-6610
China-Shenzhen
Thailand-Bangkok
Tel: 86-755-8203-2660 Tel: 66-2-694-1351
China-Shunde
EUROPE
Tel: 86-757-2839-5507 Austria-Weis
China-Wuhan
Tel: 43-7242-2244-39
Tel: 86-27-5980-5300
Denmark-Copenhagen
Tel: 45-4450-2828
China-Xian
Tel: 86-29-8833-7250
France-Paris
India-Bangalore
Tel: 33-1-69-53-63-20
Tel: 91-80-4182-8400
Germany-Munich
India-New Delhi
Tel: 49-89-627-144-0
Tel: 91-11-4160-8631
Italy-Milan
India-Pune
Tel: 39-0331-742611
Tel: 91-20-2566-1512
ASIA/PACIFIC
Netherlands-Drunen
Australia
Tel: 31-416-690399
Japan-Yokohama
Tel: 61-2-9868-6733
Tel: 81-45-471- 6166
Spain-Madrid
China-Beijing
Tel: 34-91-708-08-90
Korea-Gumi
Tel: 86-10-8528-2100
Tel: 82-54-473-4301
UK-Wokingham
China-Chengdu
Tel: 44-118-921-5869
Korea-Seoul
Tel: 86-28-8665-5511
Tel: 82-2-554-7200
12/08/06
China-Fuzhou
Malaysia-Penang
Tel: 86-591-8750-3506 Tel: 60-4-646-8870
Microchip received ISO/TS-16949:2002
certification for its worldwide headquarters, design
and wafer fabrication facilities in Chandler and
Tempe, Arizona, Gresham, Oregon and Mountain
View, California. The Company’s quality system
processes and procedures are for its PIC® MCUs
and dsPIC® DSCs, KEELOQ® code hopping
devices, Serial EEPROMs, microperipherals,
nonvolatile memory and analog products. In
addition, Microchip’s quality system for the design
and manufacture of development systems is ISO
9001:2000 certified.
Corporate Office
Tel: 480-792-7200
Technical Support:
http://support.microchip.com
Atlanta
Tel: 678-957-9614
Boston
Tel: 774-760-0087
Chicago
Tel: 630-285-0071
Dallas
Tel: 972-818-7423
Detroit
Tel: 248-538-2250
Kokomo
Tel: 765-864-8360
Los Angeles
Tel: 949-462-9523
Santa Clara
Tel: 408-961-6444
Toronto
Tel: 905-673-0699
*DS41215C*
DS41215C-page 58
© 2007 Microchip Technology Inc.
Microchip Technology Inc.
2355 W. Chandler Blvd. • Chandler, AZ 85224 U.S.A.
Phone: 480-792-7200 • Fax: 480-792-9210
www.microchip.com
© 2007, Microchip Technology Inc., 4/07 DS41215C
*DS41215C*