### Detecting Multiple Voltages Using the PIC10F204/206 Comparator

```TB083
Detecting Multiple Voltages Using the
PIC10F204/206 Comparator
Author:
Roy Sasaki
Michael Waldron
Microchip Technology Inc.
INTRODUCTION
The PIC10F204/206 microcontrollers have a built-in
comparator which can be utilized to detect different
discrete voltage levels. This technical brief describes
one technique for detecting two or more such voltages
as different trip points.
THEORY
This technique takes advantage of the properties of an
RC network. An RC network, which is charged up to a
known voltage, will have a voltage decay governed by
an RC time constant, as shown in Equation 1.
EQUATION 1:
VOUT = VIN * e -t/RC
VOUT = Volts, R = Ohms, t = Seconds, VIN = Volts,
If the voltages and values of R and C are known, then
the time t may be determined by re-evaluating the
equation shown in Equation 2.
EQUATION 2:
t = -1*RC * In (VOUT/VIN)
HARDWARE TECHNIQUE
Pins GP0/CIN+ and GP1/CIN-, of the PIC10F204/206
microcontrollers, can be switched between Digital
mode and Analog mode under firmware control. By
placing a known RC network on GP0/CIN+ and the
voltage to be sampled on GP1/CIN-, firmware can
detect discrete voltages.
Application firmware sets pin GP0/CIN+ to Digital mode
and applies a PWM signal to the pin to charge up the
RC network to a known voltage higher than the sample
voltage to be detected. Once the RC network is
charged, pin GP0/CIN+ is switched to Analog mode
keeping track of the time interval for the comparator to
trip, a time is determined which can be referenced to a
look-up table in firmware for various voltage values.
The size of the look-up table should be adjusted to
cover the voltage regions of interest.
Application firmware will take different actions at
different trip points such as providing a warning and
then a shutdown.
In order to switch pin GP0/CIN+ from Analog mode to
Digital mode and back again, use the CMPON control
bit in the CMCON0 register (CMCON0<3>). By turning
the comparator on, the pin is set to Analog mode. By
turning the comparator off, the pin is set to Digital
mode.
Note:
The sampled voltage is assumed to be
stable during the sampling period. Users
should setup their firmware and look-up
tables to search for time ranges rather
than exact time intervals to adjust for
sample voltages which drift.
By knowing the time required for a given VOUT, a lookup table, (see AN556, “Implementing A Table Read”), in
firmware, equates a given time to a given voltage.
Using discrete times of interest, trip points are created
which a microcontroller acts upon.
 2004 Microchip Technology Inc.
DS91083A-page 1
TB083
FIGURE 1:
EXAMPLE CIRCUIT
VDD
10K
R2
CIN+
GP0
C1
R1
VSAMPLE
470Ω
VDD
Red
CINGP1
GP2
Yellow
GP3
470Ω
VSS
PIC10F204/206
Button
EXAMPLE CIRCUIT
CONCLUSION
In Figure 1, GP2 is used to drive both a warning yellow
LED as well as a shut-down LED. A push button is
present on GP3 to trigger a sample to take place.
Detecting multiple discrete voltages is easily accomplished using the hardware and firmware technique
described above. The capability to switch the comparator input pins from Analog Input mode to Digital
Output mode and back again allow for a polled
sampling scheme.
The appropriate values for R1, R2 and C1 should be
determined for the sample voltages and timings of
interest. Correspondingly, the timer used to track the
decay time and look-up table will need to be sized.
DS91083A-page 2
Note:
Voltage detection during Sleep is possible,
but requires the user to cycle through the
process of charging up the RC network
compensating for the time delays in Reset,
Reset service routine and re-establishing
wake-on-comparator.
 2004 Microchip Technology Inc.
Note the following details of the code protection feature on Microchip devices:
•
Microchip products meet the specification contained in their particular Microchip Data Sheet.
•
Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
intended manner and under normal conditions.
•
There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data
Sheets. Most likely, the person doing so is engaged in theft of intellectual property.
•
Microchip is willing to work with the customer who is concerned about the integrity of their code.
•
Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable.”
Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
Information contained in this publication regarding device
applications and the like is provided only for your convenience
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 Microchip name and logo, the Microchip logo, Accuron,
dsPIC, KEELOQ, 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, Migratable Memory, MXDEV, MXLAB,
PICMASTER, 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, dsPICDEM,
dsPICDEM.net, dsPICworks, ECAN, ECONOMONITOR,
FanSense, FlexROM, fuzzyLAB, In-Circuit Serial
Programming, ICSP, ICEPIC, MPASM, MPLIB, MPLINK,
MPSIM, PICkit, PICDEM, PICDEM.net, PICLAB, PICtail,
PowerCal, PowerInfo, PowerMate, PowerTool, rfLAB,
rfPICDEM, Select Mode, Smart Serial, SmartTel and Total
Endurance 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.
© 2004, Microchip Technology Incorporated, Printed in the
Printed on recycled paper.
Microchip received ISO/TS-16949:2002 quality system certification for
its worldwide headquarters, design and wafer fabrication facilities in
Chandler and Tempe, Arizona and Mountain View, California in
October 2003. The Company’s quality system processes and
procedures are for its PICmicro® 8-bit MCUs, 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.
 2004 Microchip Technology Inc.
DS91083A-page 3
WORLDWIDE SALES AND SERVICE
AMERICAS
ASIA/PACIFIC
ASIA/PACIFIC
EUROPE
Corporate Office
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 480-792-7200
Fax: 480-792-7277
Technical Support:
http://support.microchip.com
www.microchip.com
Australia - Sydney
Tel: 61-2-9868-6733
Fax: 61-2-9868-6755
India - Bangalore
Tel: 91-80-2229-0061
Fax: 91-80-2229-0062
China - Beijing
Tel: 86-10-8528-2100
Fax: 86-10-8528-2104
India - New Delhi
Tel: 91-11-5160-8631
Fax: 91-11-5160-8632
Austria - Weis
Tel: 43-7242-2244-399
Fax: 43-7242-2244-393
Denmark - Ballerup
Tel: 45-4450-2828
Fax: 45-4485-2829
China - Chengdu
Tel: 86-28-8676-6200
Fax: 86-28-8676-6599
Japan - Kanagawa
Tel: 81-45-471- 6166
Fax: 81-45-471-6122
France - Massy
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
China - Fuzhou
Tel: 86-591-8750-3506
Fax: 86-591-8750-3521
Korea - Seoul
Tel: 82-2-554-7200
Fax: 82-2-558-5932 or
82-2-558-5934
Germany - Ismaning
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
Atlanta
Alpharetta, GA
Tel: 770-640-0034
Fax: 770-640-0307
Boston
Westford, MA
Tel: 978-692-3848
Fax: 978-692-3821
Chicago
Itasca, IL
Tel: 630-285-0071
Fax: 630-285-0075
Dallas
Tel: 972-818-7423
Fax: 972-818-2924
Detroit
Farmington Hills, MI
Tel: 248-538-2250
Fax: 248-538-2260
Kokomo
Kokomo, IN
Tel: 765-864-8360
Fax: 765-864-8387
China - Hong Kong SAR
Tel: 852-2401-1200
Fax: 852-2401-3431
China - Shanghai
Tel: 86-21-5407-5533
Fax: 86-21-5407-5066
China - Shenyang
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
China - Shenzhen
Tel: 86-755-8203-2660
Fax: 86-755-8203-1760
China - Shunde
Tel: 86-757-2839-5507
Fax: 86-757-2839-5571
Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
Taiwan - Kaohsiung
Tel: 886-7-536-4818
Fax: 886-7-536-4803
Taiwan - Taipei
Tel: 886-2-2500-6610
Fax: 886-2-2508-0102
Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
England - Berkshire
Tel: 44-118-921-5869
Fax: 44-118-921-5820
Taiwan - Hsinchu
Tel: 886-3-572-9526
Fax: 886-3-572-6459
China - Qingdao
Tel: 86-532-502-7355
Fax: 86-532-502-7205
Los Angeles
Mission Viejo, CA
Tel: 949-462-9523
Fax: 949-462-9608
San Jose
Mountain View, CA
Tel: 650-215-1444
Fax: 650-961-0286
Toronto
Mississauga, Ontario,