AN879 Using the Microchip Ultra Low-Power Wake-Up Module Authors: current consumption. These types of applications require a low-power periodic wake-up and can be accomplished by activating a low-power timer prior to placing the device in a Sleep mode. Upon rollover, the timer interrupt can then wake-up the part after some predefined period. A 32 kHz crystal timer used on one of the secondary clock sources is very popular if accuracy is required. Some parts also have dedicated internal low-power, low-frequency oscillators that can be used. Ruan Lourens Jose Benevides Jonathan Dillon Microchip Technology Inc. INTRODUCTION This application note describes ways to reduce system current consumption with the use of the Ultra Low-power Wake-up (ULPWU) module. The PIC16F684 and PIC16F88X are examples of devices with this feature. One solution for a lower current periodic wake-up timer is a simple RC timer that can be charged prior to Sleep and left to slowly discharge. A change in state event can be used to wake the part when the RC voltage reaches the digital input threshold voltage. This sounds ideal, but the problem is that a normal digital-input structure consumes high-crowbar currents when a slowly changing voltage is applied to it. The digital-input structure will consume a few hundred micro amps when driven by an analog voltage that is not close to the rail voltages (VSS and VDD). To combat these high-crowbar currents, Microchip has introduced an ULPWU module, which provides an analog input that can be used to implement a RC timer. The basic module block diagram is shown in Figure 1. The primary use of this module is as an ULPWU timer, but its functionality can be expanded to function as a temperature sensor and/or a low-voltage detector. The main and expanded functions of this module are explained in this document. Many low-power applications require that the microprocessor wake-up from a Sleep state on a periodic basis to check the status of some signal. It can then react based on a measurement of that signal and go back to Sleep until the next timed wake-up. This is a widely used method for reducing overall system FIGURE 1: ULTRA LOW-POWER WAKE-UP PIN DIAGRAM(1) EXTERNAL ANALOG INTERNAL TRIS WRITE C Ultra Low-power Wake-up Module VIL EVENT ISINK Note 1: ULPWUE RA0 cannot be read as a digital pin when ULPWU is enabled. © 2008 Microchip Technology Inc. AN00879D-page 1 AN879 The module operates as a low-power analog comparator that compares the voltage on the external capacitor C to a reference VIL. The module generates an event output when the analog comparator changes state. The change in state event can generate an interrupt-on-change. The module provides a very weak current source to discharge the external capacitor in a controlled manner. The code in Example 1 for PIC16F684 initializes the module, charges the capacitor, enables the module, and then goes to Sleep, waiting for an interrupt-on-change. The trip voltage VIL and the sink current ISINK are basically independent of VDD, but are sensitive to temperature and process variations. Data for the module is given in Table 1. EXAMPLE 1: TABLE 1: BANKSEL BSF MOVLW MOVWF BANKSEL BCF BCF CALL BSF BSF BSF MOVLW MOVWF SLEEP NOP ULPWU CODE FOR THE PIC16F684 PORTA PORTA, 0 H’7’ CMCON0 ANSEL ANSEL, 0 TRISA, 0 CapDelay PCON, ULPWUE IOCA, 0 TRISA, 0 B’10001000’ INTCON ;Bank 0 ;Set RA0 data latch ;Turn off ;comparators ;Bank 1 ;RA0 to digital I/O ;Output high to ;charge capacitor ;Enable ULP Wake-Up ;Select RA0 IOC ;RA0 to input ;Enable interrupt ;and clear flag ;Wait for IOC ; From the data in Table 1, it becomes clear that the variation in module parameters would limit the overall accuracy of the timer, when used as in Figure 1. The wake-up period can vary by as much as 30% between modules. For a large number of applications, it is acceptable to have a large variation in the wake-up period and thus, the module’s accuracy is acceptable. -40°C 25°C 85°C 125°C The code in Example 2 for PIC16F88X devices charges the external capacitor, sets up the module and goes to Sleep, waiting for the ULPWU interrupt. The interrupt is level triggered and, if global interrupts are enabled, the Interrupt Service Routine (ISR) must disable either the ULPWU interrupt enable or the ULPWU module to clear the ULPWU interrupt flag and charge the external cap. EXAMPLE 2: BANKSEL BSF BANKSEL BCF BANKSEL BCF CALL BANKSEL BCF BANKSEL BSF BSF BSF MOVLW MOVWF SLEEP NOP ULPWU CODE FOR THE PIC16F88X PORTA PORTA, 0 ANSEL ANSEL, 0 TRISA TRISA, 0 CapDelay PIR2 PIR2, ULPWUIF PCON PCON, ULPWUE TRISA, 0 PIE2, ULPWUIE B’11000000’ INTCON AN00879D-page 2 ; ;Set RA0 data latch ; ;RA0 to digital I/O ; ;Output high to ;charge capacitor ; ;Clear flag ; ;Enable ULP Wake-up ;RAO to input ;Enable interrupt ;Enable peripheral ;interrupt ; ;Wait for interrupt ; * MODULE DATA* VIL (VDC) ISINK (nA) Min 0.58 104 Typ 0.69 113 Max 0.81 131 Min 0.48 121 Typ 0.58 135 Max 0.69 158 Min 0.38 130 Typ 0.48 145 Max 0.58 169 Min 0.30 142 Typ 0.40 157 Max 0.49 183 Example data not characterized or tested The module, when enabled, will add between 75 nA and 160 nA to the microprocessor's Sleep current, depending on process variations, temperature and voltage. The total expected Sleep current with the ULPWU module enabled should be only a few hundred nA for the PIC16F684 and PIC16F88X devices, since the Sleep current is typically 1 nA with all peripherals disabled. The average system current consumption will be higher due to the energy required to charge the capacitor and the energy consumed to execute code between Sleep periods. The time between Sleep periods and active duty cycle of use will largely dictate the overall current consumption. A typical smoke detector or Tire Pressure Monitoring (TPM) system with sub 1 μA current consumption can be achieved. © 2008 Microchip Technology Inc. AN879 MODULE APPLICATIONS The ULPWU module’s accuracy and functionality can be improved by using it as a programmable timer or using some additional external components. This includes a programmable low-voltage detect and/or a temperature sensor. The following sections will briefly explain these functions. Basic Timer Although the operation of the basic wake-up timer has been discussed, there are more aspects to consider. Figure 2 shows the addition of a series resistor when compared to Figure 1. The resistor R1 is added if C1 is larger than 50 pF. This is done to reduce the peak current drawn from RA0 while charging C1. For larger capacitors, Equation 1 gives the peak charge current drawn from RA0. The maximum allowable current drawn from pin 1 is 25 mA. A resistor of 200 ohm is sufficient for 5-volt supply voltages and large capacitors. FIGURE 2: SERIAL RESISTOR RA0 R1 C1 The discharge period is about 30 ms for a 1 nF capacitor, a VO of 5 VDC with a current sink of 140 nA, and VIL of 0.6 VDC. The internal current sink is fairly constant with voltage, assuming the voltage on the capacitor is VIL or more. This results in a near linear voltage discharge of the capacitor over time. Keep in mind that the weak current sink is equivalent to very high-impedance of several tens of mega ohms. Such a high-impedance discharge system is very sensitive. Care must be given to layout, the influence of moisture, and the capacitor’s self-discharge impedance. To minimize noise and moisture effects, it is advisable to keep trace lengths short by placing the discharge capacitor close to the AN0 pin. Also, note that capacitors have some internal leakage that will shorten the discharge period. Different capacitors have different self-discharge characteristics that will become important, especially if long discharge periods are required. Some electrolytic capacitors have fairly high self-discharge rates that are temperature sensitive. Use of External Components For harsh noise and moisture conditions, the stability of the ULPWU module can be improved by adding an additional discharge resistor R2, as in Figure 3. The voltage discharge on C1, due to R2, will follow Equation 3, if the current through R2 is large compared to the discharge current ISINK. Thus, the discharge period can be derived as in Equation 4. FIGURE 3: R1 RA0 EQUATION 1: IPEAK = DISCHARGE RESISTOR VDD for C1 >> 50 pF R1 R2 C1 IPEAK = peak charge current Equation 2 gives the discharge period. VO is the initial capacitor voltage and will be the same as VDD, if the capacitor is allowed to fully charge prior to starting the discharge process. EQUATION 2: (VO–VIL) . C TDISCHARGE = ISINK + ILEAKAGE TDISCHARGE = discharge period VO = initial capacitor voltage VIL = trip voltage ISINK = sink current EQUATION 3: ( –T V(T) = VO . e C1R2 ) V(T) = voltage across capacitor VO = initial capacitor voltage T = time ILEAKAGE = capacitors internal leakage current © 2008 Microchip Technology Inc. AN00879D-page 3 AN879 Temperature Sensor EQUATION 4: ( ) VO TDISCHARGE = C1R2 ln VIL TDISCHARGE = charge period VO = initial capacitor voltage VIL = trip voltage Calibrated Timer The following section explains how the accuracy of the basic timer can be improved by controlling the charge period. The discharge period for both implementations shown in Figures 2 and 3 are dependent on VO, C1, VIL and ISINK or R2. These parameters depend on process variations, temperature effects, usage and more. A software calibrated Sleep timer will compensate for some of these variations by controlling VO. Timing the charge period of C1 through R1 allows control over the voltage on C1 at the start of the Sleep period VO. The discharge period TDISCHARGE is timed against the main clock source while the part is awake, then the charge period can be adjusted based on the TDISCHARGE error. This process is repeated until the desired accuracy is obtained. Repeat the calibration process after a fixed amount of normal Sleep periods, to maintain accuracy over time. Pay close attention to the residual charge across C1 at the start of the charge period. There may be charge left in C1, depending on VIL and whether or not the ULPWU module was disabled, and whether RA0 turned into an analog input, digital input or digital output. One approach is to fully discharge C1 before starting the charge process. This approach increases accuracy, but will increase the overall current consumption. The final capacitor voltage VO, when charging C1 through R1, is given by Equation 5. The residual voltage across C1 at the beginning of the charge period is represented by VRES and the charge period is TCHARGE. This section explains how to implement a temperature sensor that gives a reading relative to the standard temperature at which calibration was completed. The module parameters VIL and ISINK are dependent on temperature and process variations. The process dependent component must be identified in order to calculate the temperature from later measurements of VIL and ISINK. The process variation can be measured when the device is first turned on under controlled conditions such as at final product testing. These standard measured values can be stored in EEPROM and used for future reference. To measure VIL, sample the voltage across C1 with the A/D converter after the output of the ULPWU module changes the status of bit ‘0’ on PORTA. The sampled voltage will be referenced to the A/D converter reference, which can be VDD or an external voltage reference. VIL has a negative temperature coefficient and is approximately -1.25 mV/°C. VIL is calculated by using the method described in Section “Use of External Components”. The sink current ISINK is measured under standard conditions by using Equation 2 and has a positive temperature coefficient of approx. 140 pA/°C. The discharge time TDISCHARGE is a function of VO, VIL and temperature. Under standard conditions, VO and temperature are controlled and VIL is measured. From this, calculate the standard process dependent value for ISINK. Note: The accuracy of the measurements is dependent on VO, which can be VDD, and the source for the A/D converter, which may or may not be VDD. The method described in Section “Use of External Components” to calculate VIL without an A/D is also dependent on a known value for VO or VDD. EQUATION 5: –TCHARGE C1R1 VO = VRES + (VDD – VRES) 1 – e TCHARGE = charge period VO = final capacitor voltage VRES = residual voltage AN00879D-page 4 © 2008 Microchip Technology Inc. AN879 Equations 7 and 8 are used to calculate temperature variation from the standard temperature using the measured or calculated values for ISINK and VIL. Note 1: The result is dependent on VDD or VO. The temperature dependency of VIL is linear with temperature, but ISINK has a significant second order term that is not shown. The second order term for ISINK can be ignored if the temperature deviation is relatively small. 2: The data is preliminary and will be updated after full characterization is completed. The values ISTANDARD and VSTANDARD are the process dependent values for ISINK and VIL, as measured under standard conditions and stored in EEPROM. EQUATION 6: VIL – VSTANDARD ΔT ≈ –1.25 x 10–3 ΔT = temperature deviation VSTANDARD = standard voltage VIL = trip voltage EQUATION 7: ΔT ≈ ISINK – ISTANDARD 140 x 10–12 Programmable Low-voltage Detect VDD can be calculated using the ULPWU module in two basic ways; both methods are temperature dependent and based on the standard values for VIL and ISINK, as discussed in Section “Temperature Sensor”. The method is fairly accurate for applications where the system is subjected to small temperature variations. Refer to Section “Temperature Sensing and Programmable Low-voltage Detect” for applications where both VDD and temperature need to be measured across a large range. INTERNAL CURRENT SINK DISCHARGE METHOD This method uses the setup as in Figure 2 by measuring TDISCHARGE, while keeping the part active and measuring it against the main clock source. Before measuring TDISCHARGE, make sure that C1 is fully charged to VDD by allowing a long enough charge period. Then, use Equation 9 to calculate VO or VDD. EQUATION 9: . Vo = (Tdischarge • VO VIL TDISCHARGE ISINK Isink C1 ) + Vil = Total Capacitor Voltage = Trip Voltage = Discharge Period = Sink Current The accuracy of the calculated VDD is dependent on VIL, TDISCHARGE, C1 and ISINK. Interestingly, VIL has a negative temperature coefficient while ISINK has a positive temperature coefficient, which reduces the temperature dependency. ΔT It is still possible to use this method if R2 is required, as shown in Figure 3. VO or VDD is now calculated using Equation 10, as most of the dicharge is through R2. Using this method, R2 is more accurate and, for the most part, independent of temperature and process variations. EQUATION 8: Connecting R2 through an I/O controlled MOSFET provides a means for disconnecting R2 from ground, as shown in Figure 4. The additional I/O enables the MOSFET when R2 is needed. = temperature deviation ISINK = sink current VSTANDARD = standard voltage VDD ≈ . VO = VIL + TDISCHARGE ISINK C1 VO = total capacitor voltage VIL = trip voltage ISINK = sink current TDISCHARGE = discharge period © 2008 Microchip Technology Inc. EQUATION 10: VO = VIL • e -TDISCHARGE C1 R2 AN00879D-page 5 AN879 FIGURE 4: RA0 R2 TO I/O R1 C1 Calculate VDDn with Equation 8, using the discharge period TDISCHARGE from the Step 1, or use Equation 9. 8. Use VO-n to measure VIL-n, with the A/D converter, or calculate VIL using Equations 2 or 3. 9. With VIL-n, use Equation 6 to calculate the temperature ΔTn. 10. Store the values for VDDn and ΔTn. 11. Increment n and go to Step 5, until desired n is reached. 7. R2 RA1 VIL CHARGE METHOD This method uses the same setup as illustrated in Figure 3. This method is applicable if R1 is much smaller than R2. Again, the capacitor fully charges to VDD and the TDISCHARGE is measured while the part is still active. Equation 9 can be used to calculate VO or VDD, but note that the result is a multiple of VIL, which is temperature sensitive. TEMPERATURE SENSING AND PROGRAMMABLE LOW-VOLTAGE DETECT Section “Temperature Sensor” of this application note explains a simple method to measure temperature. Clearly, the accuracy of the result is dependent on knowing the VDD and the process dependent variation of the variable. Similarly, Section “Programmable Low-voltage Detect” explains how to calculate VDD, but the result depends on temperature and the process variation. The accuracy of the process can be evaluated by using the alternative methods for specific iterations. In addition, use the EEPROM write time as a temperature sensor for improving the accuracy of Step 1. The EEPROM write time is dependent on temperature and the variation from a standard-measured time can be used to calculate temperature. CONCLUSION The ULPWU module is a flexible module with unmatched current consumption that enables the designer to implement not only a wake-up timer, but also a low-cost PLVD (Programmable Low-voltage Detect) and temperature sensing functions. The module is especially attractive in lithium and other battery applications where very low Sleep currents are required. The accuracy of measuring the interdependent values VDD and temperature is greatly improved by knowing the standard values ISTANDARD and VSTANDARD, as explained in Section “Temperature Sensor”. The deviation of the measured unit from the standard value can then be used in an iterative process to calculate VDD and temperature. The following sequence can be followed (see Figure 5): 1. 2. 3. 4. 5. 6. Calculate VO or VDD using Equation 8, assuming standard temperature, VIL = VSTANDARD and ISINK = ISTANDARD. The discharge period TDISCHARGE is measured against the main clock source, while the device is still active. Alternatively, using Equation 9 is less accurate. Use the resulting VDD to measure VIL with the A/D converter, as explained in Section “Temperature Sensor”. Alternatively, VIL can be calculated using Equations 2 or 3. Use the resulting VIL to calculate the temperature with Equation 6. Save the Step 1 iteration values for VDD and temperature in VDDn and ΔTn, where n is the iteration step number. Calculate ISINKn using Equation 7 with ΔTn. Calculate VIL-n using Equation 6 with ΔTn. AN00879D-page 6 © 2008 Microchip Technology Inc. AN879 FIGURE 5: CALCULATING VDD AND TEMPERATURE BLOCK DIAGRAM Start Step 1 Find VO (VDD)(1,2) Step 2 Find VIL w/A/D converter (3) Step 3 Find Temperature(4) ΔT measurement VDD measurement VDD measurement VIL measurement Step 4 Iteration Values/Step Numbers (VDDn and ΔTn)(5) Step 5 Find ISINKn(6) Step 6 Find VIL-n(7) Step 7 Find VDDn(8) Step 8 Find VIL-n(9) TDISCHARGE measurement Step 9 Find ΔTn(10) Step 10 Store Values VDDn and ΔTn No Step 11 Increment n/repeat cycle(11) Note 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: Use Equation 8, assuming standard temperature; VIL = VSTANDARD; ISINK = ISTANDARD. Measure TDISHARGE against the main clock source while device is still active. Using Equation 9 as an alternative is less accurate. See Section “Temperature Sensor”, using VDD from Step 1 to measure VIL with A/D converter. Alternatively, Equations 2 and 3 can be used. Use Equation 6 w/VIL from Step 2. Use iteration values for VDD and temperature from Step 1 as VDDn and ΔTn, where n is the iteration step number. Use Equation 7 with ΔTn. Calculate VIL-n using Equation 6 with ΔTn. Use Equation 8, using TDISHARGE from Step 1 or use Equation 9. Use VO-n to measure VIL-n, with the A/D converter or calculate VIL using Equations 2 or 3. With VIL-n, use Equation 6 to calculate the ΔTn. Increment n and go to Step 5, until desired n is reached. © 2008 Microchip Technology Inc. Desired n reached? Yes Done AN00879D-page 7 AN879 NOTES: AN00879D-page 8 © 2008 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 devices in life support and/or safety applications is entirely at the buyer’s risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. 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, KEELOQ logo, MPLAB, PIC, PICmicro, PICSTART, PRO MATE, rfPIC and SmartShunt are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. FilterLab, Linear Active Thermistor, MXDEV, MXLAB, 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, dsSPEAK, ECAN, ECONOMONITOR, FanSense, In-Circuit Serial Programming, ICSP, ICEPIC, Mindi, MiWi, MPASM, MPLAB Certified logo, MPLIB, MPLINK, mTouch, PICkit, PICDEM, PICDEM.net, PICtail, PIC32 logo, PowerCal, PowerInfo, PowerMate, PowerTool, REAL ICE, rfLAB, Select Mode, 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. © 2008, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. Printed on recycled paper. Microchip received ISO/TS-16949:2002 certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona; Gresham, Oregon and design centers in California and India. 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. © 2008 Microchip Technology Inc. DS00879D-page 9 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 Asia Pacific Office Suites 3707-14, 37th Floor Tower 6, The Gateway Harbour City, Kowloon Hong Kong Tel: 852-2401-1200 Fax: 852-2401-3431 India - Bangalore Tel: 91-80-4182-8400 Fax: 91-80-4182-8422 India - New Delhi Tel: 91-11-4160-8631 Fax: 91-11-4160-8632 Austria - Wels Tel: 43-7242-2244-39 Fax: 43-7242-2244-393 Denmark - Copenhagen Tel: 45-4450-2828 Fax: 45-4485-2829 India - Pune Tel: 91-20-2566-1512 Fax: 91-20-2566-1513 France - Paris Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 Japan - Yokohama Tel: 81-45-471- 6166 Fax: 81-45-471-6122 Germany - Munich Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Atlanta Duluth, GA Tel: 678-957-9614 Fax: 678-957-1455 Boston Westborough, MA Tel: 774-760-0087 Fax: 774-760-0088 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 Los Angeles Mission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608 Santa Clara Santa Clara, CA Tel: 408-961-6444 Fax: 408-961-6445 Toronto Mississauga, Ontario, Canada Tel: 905-673-0699 Fax: 905-673-6509 Australia - Sydney Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 China - Beijing Tel: 86-10-8528-2100 Fax: 86-10-8528-2104 China - Chengdu Tel: 86-28-8665-5511 Fax: 86-28-8665-7889 Korea - Daegu Tel: 82-53-744-4301 Fax: 82-53-744-4302 China - Hong Kong SAR Tel: 852-2401-1200 Fax: 852-2401-3431 Korea - Seoul Tel: 82-2-554-7200 Fax: 82-2-558-5932 or 82-2-558-5934 China - Nanjing Tel: 86-25-8473-2460 Fax: 86-25-8473-2470 Malaysia - Kuala Lumpur Tel: 60-3-6201-9857 Fax: 60-3-6201-9859 China - Qingdao Tel: 86-532-8502-7355 Fax: 86-532-8502-7205 Malaysia - Penang Tel: 60-4-227-8870 Fax: 60-4-227-4068 China - Shanghai Tel: 86-21-5407-5533 Fax: 86-21-5407-5066 Philippines - Manila Tel: 63-2-634-9065 Fax: 63-2-634-9069 China - Shenyang Tel: 86-24-2334-2829 Fax: 86-24-2334-2393 Singapore Tel: 65-6334-8870 Fax: 65-6334-8850 China - Shenzhen Tel: 86-755-8203-2660 Fax: 86-755-8203-1760 Taiwan - Hsin Chu Tel: 886-3-572-9526 Fax: 886-3-572-6459 China - Wuhan Tel: 86-27-5980-5300 Fax: 86-27-5980-5118 Taiwan - Kaohsiung Tel: 886-7-536-4818 Fax: 886-7-536-4803 China - Xiamen Tel: 86-592-2388138 Fax: 86-592-2388130 Taiwan - Taipei Tel: 886-2-2500-6610 Fax: 886-2-2508-0102 China - Xian Tel: 86-29-8833-7252 Fax: 86-29-8833-7256 Thailand - Bangkok Tel: 66-2-694-1351 Fax: 66-2-694-1350 Italy - Milan Tel: 39-0331-742611 Fax: 39-0331-466781 Netherlands - Drunen Tel: 31-416-690399 Fax: 31-416-690340 Spain - Madrid Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 UK - Wokingham Tel: 44-118-921-5869 Fax: 44-118-921-5820 China - Zhuhai Tel: 86-756-3210040 Fax: 86-756-3210049 01/02/08 DS00879D-page 10 © 2008 Microchip Technology Inc.