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, C = Farads 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 and a comparator read made. By starting a timer and 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 allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act. 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. Trademarks 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 U.S.A., All Rights Reserved. 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 Web Address: 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 Addison, TX 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, Canada Tel: 905-673-0699 Fax: 905-673-6509 10/20/04 DS91083A-page 4 2004 Microchip Technology Inc.