AN1470. Manchester Decoder Using the CLC and NCO ABSTRACT INTRODUCTION MANCHESTER ENCODED DATA (AS PER G.E. THOMAS)



Similar documents
AN1303. Software Real-Time Clock and Calendar Using PIC16F1827 DATA INTERFACE INTRODUCTION IMPLEMENTATION INTERNAL REGISTER MAP

Recommended Usage of Microchip 23X256/23X640 SPI Serial SRAM Devices RECOMMENDED CONNECTIONS FOR 23X256,23X640 SERIES DEVICES VCC 23X256/ HOLD.

TB3016. Using the PIC MCU CTMU for Temperature Measurement IMPLEMENTATION BASIC PRINCIPLE MEASUREMENT CIRCUIT

Installing and Licensing MPLAB XC C Compilers

AN1286. Water-Resistant Capacitive Sensing INTRODUCTION THEORY OF OPERATION. Sensing Steps. Sensing Steps Description DESIGN

AN1142. USB Mass Storage Class on an Embedded Host INTRODUCTION. USB Mass Storage Class. Overview

TC1047/TC1047A. Precision Temperature-to-Voltage Converter. General Description. Applications. Block Diagram. Features.

AN1325. mtouch Metal Over Cap Technology THEORY OF OPERATION INTRODUCTION CROSS SECTION OF METAL OVER CAPACITIVE (UNPRESSED)

AN1275. KEELOQ with Advanced Encryption Standard (AES) Receiver/Decoder KEY FEATURES OVERVIEW. Microchip Technology Inc.

Uninstalling Incorrect USB Device Drivers

Universal Programming Module 2

AN1492. Microchip Capacitive Proximity Design Guide INTRODUCTION CAPACITIVE SENSING BASICS SENSING

AN Wire Communication with PIC Microcontroller INTRODUCTION. OVERVIEW OF THE 1-Wire BUS. 1-Wire Protocol. Prerequisites

AN687. Precision Temperature-Sensing With RTD Circuits RTD OVERVIEW INTRODUCTION EQUATION 1:

AN1857. RGBW Color Mixing DALI Control Gear. COLOR MIXING USING RED, GREEN, BLUE AND WHITE LEDs INTRODUCTION HARDWARE

AN1543. Using MRF24W with PIC32 Internal Program Flash Memory For EZ_CONFIG_STORE ALTERNATIVE LOW-COST SOLUTIONS OVERVIEW SCOPE

Section 15. Input Capture

Features, Value and Benefits of Digital Control for Power Supplies

AN1265. KEELOQ with AES Microcontroller-Based Code Hopping Encoder INTRODUCTION DUAL ENCODER OPERATION BACKGROUND FUNCTIONAL INPUTS AND

PIC18F26K20/46K20 Rev. B2/B3/B5/B6 Silicon Errata and Data Sheet Clarification

AN1332. Current Sensing Circuit Concepts and Fundamentals CURRENT SENSING RESISTOR INTRODUCTION. Description. Microchip Technology Inc.

AN1465. Digitally Addressable Lighting Interface (DALI) Communication TERMINOLOGY PHYSICAL LAYER DALI FREE-FORM LAYOUT. Topology FIGURE 1:

TC7660. Charge Pump DC-to-DC Voltage Converter. Package Types. Features. General Description. Applications. Functional Block Diagram TC7660

AN1156. Battery Fuel Measurement Using Delta-Sigma ADC Devices INTRODUCTION REVIEW OF BATTERY CHARGING AND DISCHARGING CHARACTERISTICS

Timers: Timer0 Tutorial (Part 1)

MPLAB XC8 GETTING STARTED GUIDE. MPLAB XC8 Getting Started Guide

PIC32 Microcontroller Families

AN1353. Op Amp Rectifiers, Peak Detectors and Clamps INTRODUCTION BASIC RECTIFIERS. Choosing the Components. Positive Half-Wave Rectifier.

AN905. Brushed DC Motor Fundamentals INTRODUCTION PRINCIPLES OF OPERATION. Stator. Rotor SIMPLE TWO-POLE BRUSHED DC MOTOR. Microchip Technology Inc.

Peripheral Brief: Programmable Switch Mode Controller (PSMC) 1, 2, 4, 8 PSMCXTMR CLR PSMCXPR = Period. Event PSMCXPRS. Rising.

AN1066. Microchip MiWi Wireless Networking Protocol Stack INTRODUCTION CONSIDERATIONS TERMINOLOGY FEATURES

AN1861. Bluetooth Smart Communication Using Microchip RN4020 Module and 16-bit PIC Microcontroller BLUETOOTH SMART COMMUNICATION INTRODUCTION

MPLAB Code Configurator User s Guide

AN1387. Using PIC32 MCUs to Develop Low-Cost Controllerless (LCC) Graphics Solutions INTRODUCTION. Basic Graphics Definitions

TCM809/TCM Pin Microcontroller Reset Monitors. General Description. Features. Applications. Pin Configurations. Typical Application Circuit

MCP73X23 Lithium Iron Phosphate (LiFePO 4 ) Battery Charger Evaluation Board User s Guide

Touch Through Metal. mtouch Metal Over Capacitive Technology Part 1

Designing A Li-Ion Battery Charger and Load Sharing System With Microchip s Stand-Alone Li-Ion Battery Charge Management Controller

28-PIN DEMO BOARD USER S GUIDE

AN1212. Using USB Keyboard with an Embedded Host INTRODUCTION. USB Keyboard Overview. USB Keyboard with an Embedded Host USB KEYBOARD OUTPUT REPORT

Section 5. Flash Programming

Integrated Development Environment

dspic30f3012/3013 dspic30f3012/3013 Rev. B0 Silicon Errata dspic30f3012/3013 (Rev. B0) Silicon Errata Silicon Errata Summary

MCP3021. Low Power 10-Bit A/D Converter With I 2 C Interface. Description. Features. Applications. Functional Block Diagram.

MCP2200 USB to RS-232 Demo Board User s Guide

Integrated Development Environment

WORKSHOP-IN-A-BOX 2: LOW POWER SOLUTIONS DEMONSTRATION BOARD

Resistive Temperature Detector (RTD) Reference Design

AN1767. Solutions for Radio Frequency Electromagnetic Interference in Amplifier Circuits WHAT IS ELECTROMAGNETIC INTERFERENCE (EMI)

AN1256. Microchip s Power MOSFET Driver Simulation Models INTRODUCTION MODEL DESCRIPTION. Using The Power MOSFET Simulation Models

AN1521. Practical Guide to Implementing Solar Panel MPPT Algorithms SOLAR PANEL MPPT INTRODUCTION

AN645. PIC16C57 Based Code Hopping Security System PINOUT OVERVIEW FEATURES BLOCK DIAGRAM RECOMMENDED READING

AN1307 FULL STEP MODE PHASE VOLTAGE AND PHASE CURRENT MICROSTEPPING WITH 1/4 STEP SIZE

Selecting the MCU Memory Technology That s Right for You

AN1160. Sensorless BLDC Control with Back-EMF Filtering Using a Majority Function SENSORED CONTROL VERSUS SENSORLESS CONTROL INTRODUCTION

2K SPI Bus Serial EEPROMs with EUI-48 or EUI-64 Node Identity

MCP2515 CAN Bus Monitor Demo Board User s Guide

AN1426. Design Tips for the MCP3911 INTRODUCTION. Addressable Devices on Single SPI Bus. Addressable SPI for Poly-phase Meter Designs.

AN956. Migrating Applications to USB from RS-232 UART with Minimal Impact on PC Software OVERVIEW INTRODUCTION. Microchip Technology Inc.

Section 15. Quadratrure Encoder Interface (QEI)

AN1305. Sensorless 3-Phase Brushless Motor Control with the PIC16FXXX TYPICAL MOTOR CONNECTION OVERVIEW DRIVE AND CONTROL CIRCUITRY

TCP/IP Networking: Web-Based Status Monitoring

APPLICATION NOTE. Atmel AVR134: Real Time Clock (RTC) Using the Asynchronous Timer. Atmel AVR 8-bit Microcontroller. Introduction.

MPLAB ICD 3 In-Circuit Debugger User s Guide For MPLAB X IDE

MCP1701A. 2 µa Low-Dropout Positive Voltage Regulator. Features. General Description. Applications. Package Types

MCP14A0151/2. 1.5A MOSFET Driver with Low Threshold Input And Enable. Features. General Description. Applications. Package Types

AN1370. Smart Card Communication Using PIC MCUs INTRODUCTION SMART CARD COMMUNICATION USING PC APPLICATION

AN3998 Application note

AN709. System Level Design Considerations When Using I 2 C TM Serial EEPROM Devices INTRODUCTION INSURING BUS-FREE DURING POWER-UP

Serial EEPROM Powered for Automotive

TABLE 1: BUCK REGULATOR

Analog-to-Digital Converters

1.5A Dual MOSFET Driver with Low Threshold Input And Enable MCP14A OUT A OUT A OUT A IN A GND IN B

AVR319: Using the USI module for SPI communication. 8-bit Microcontrollers. Application Note. Features. Introduction

Flexible Active Shutter Control Interface using the MC1323x

PICkit 3 Programmer/Debugger User s Guide

LIN Serial Analyzer User s Guide Rev2.0

AN974 APPLICATION NOTE

AN1523. Sine Wave Generator Using Numerically Controlled Oscillator Module DIRECT DIGITAL SYNTHESIS (DDS) AND NCO INTRODUCTION

AN232. Low-Frequency Magnetic Transmitter Design ABOUT THIS APPLICATION NOTE INTRODUCTION LFMC LINK COMPONENTS

PDIP, MSOP, SOIC, TSSOP

Software Real Time Clock Implementation on MC9S08LG32

PIC10F200/202/204/206

AN3332 Application note

Processor Extension Pak (PEP) and Debug Header Specification

Section 33. Programming and Diagnostics

How To Use Microchip.Com

AVR317: Using the Master SPI Mode of the USART module. 8-bit Microcontrollers. Application Note. Features. Introduction

MCP73811/2. Simple, Miniature Single-Cell, Fully Integrated Li-Ion / Li-Polymer Charge Management Controllers. Description. Features.

AVR305: Half Duplex Compact Software UART. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

Programming Audio Applications in the i.mx21 MC9328MX21

MX PIC24F Educational Module User Manual

16-bit Microcontrollers. High-Performance PIC24 Microcontroller Family.

dspic Digital Signal Controllers

PICkit 3 In-Circuit Debugger/Programmer User s Guide

Description. Table 1. Device summary. Order code Temperature range Package Packaging Marking

Freescale Semiconductor, Inc. Product Brief Integrated Portable System Processor DragonBall ΤΜ

MGC3130 Hillstar Development Kit User s Guide

AN3265 Application note

IRTC Compensation and 1 Hz Clock Generation

Transcription:

Manchester Decoder Using the CLC and NCO Authors: ABSTRACT A Manchester decoder can be built using Microchip s award winning CLC (Configurable Logic Cell) blocks and NCO (Numerically Controlled Oscillator) available in the PIC16F150x devices. The PIC16F150x devices are Microchip s new enhanced core devices featuring low-power XLP technology. The decoder requires little firmware support and, therefore, requires very few CPU cycles after the modules are initialized. Data and clock can be directed to the internal SPI module for data capture at rates of up to 500 kbps. INTRODUCTION Jatinder Gharoo Brian Bailey Microchip Technology Inc. Manchester encoding is used in a wide range of applications in telecommunication and data storage. It is used in systems for its simplicity and synchronization benefits. A transition is ensured at least once every bit, allowing the receiving device to recover clock and data. It has no DC component, which means that it may be coupled inductively or capacitively. A typical application requires a Manchester data encoder used to transmit data, and a receiver on the other end that decodes data. The objective of this document is to demonstrate how the NCO and CLC peripherals found on PIC16F devices can be used as a Manchester Decoder. Traditional algorithms can be firmware intensive and leave very small amount of CPU cycles to service other application needs. The following approach involves using blocks that operate independently of the CPU clock and have zero CPU utilization, allowing designers to service their applications along with data encoding and decoding. Depending on the encoding standard, data is available during the first or second half of bit time. There are two standards of Manchester encoded signals used in the industry. Manchester encoded signal as per G.E. Thomas (Figure 1), a 0 is transmitted by low-to-high transition and a 1 is expressed by high-to-low transition: FIGURE 1: MANCHESTER ENCODED DATA (AS PER G.E. THOMAS) Manchester encoded signal as per IEEE 802.3 (Figure 2) is the opposite of G.E. Thomas, where a 0 is transmitted by high-to-low transition: FIGURE 2: MANCHESTER ENCODED DATA (AS PER IEEE 802.3) 2012 Microchip Technology Inc. DS01470A-page 1

CONFIGURABLE LOGIC CELL This section describes a Manchester decoding implementation using the CLC blocks of PIC16F150x microcontrollers. The Configurable Logic Cell (CLC) provides programmable logic that operates outside the limitation of CPU execution. The logic cell allows signal multiplexing from other peripherals, input pins or register bits through the use of configurable gates that drive selectable single-output logic functions. The output of each CLC block can be directed internally to peripherals, other CLC blocks and to an output pin. Possible configurations include eight logic functions: AND-OR OR-XOR AND S-R Latch D Flip-flop with Set and Reset D Flip-flop with Reset J-K flip-flop with Reset Transparent Latch with Set and Reset Logic functions are shown in Figure 3. Each logic function has four inputs and one output. The four inputs are the four data gate outputs of the previous stage. CLC CONFIGURATION TOOL The CLC is a complex peripheral with multiple combinations and sequential circuits that can be pre-programmed or configured dynamically. This allows flexibility, but also makes configuration and setup very complex. The CLC configuration tool provided by Microchip makes the setup process of the CLC module easier to implement and understand. It is worthwhile mentioning that any gate with an unconnected input will be read as a logic zero. To input a logic one as an input to a gate or latch, the zero can be inverted. See Appendix A for configuration snapshots of the tool. DS01470A-page 2 2012 Microchip Technology Inc.

FIGURE 3: CLC FUNCTIONS AND - OR OR - XOR lcxg1 lcxg1 lcxg2 lcxg3 lcxq lcxg2 lcxg3 lcxq lcxg4 lcxg4 LCxMODE<2:0>= 000 LCxMODE<2:0>= 001 4-Input AND S-R Latch lcxg1 lcxg2 lcxg3 lcxg4 lcxq lcxg1 lcxg2 lcxg3 lcxg4 S R Q lcxq LCxMODE<2:0>= 010 LCxMODE<2:0>= 011 1-Input D Flip-Flop with S and R 2-Input D Flip-Flop with R lcxg4 lcxg2 D S Q lcxq lcxg4 lcxg2 D Q lcxq lcxg1 lcxg3 R lcxg1 lcxg3 R LCxMODE<2:0>= 100 LCxMODE<2:0>= 101 J-K Flip-Flop with R 1-Input Transparent Latch with S and R lcxg2 lcxg1 J Q lcxg4 K R lcxg3 LCxMODE<2:0>= 110 lcxq lcxg4 lcxg2 D S Q lcxq lcxg1 LE R lcxg3 LCxMODE<2:0>= 111 2012 Microchip Technology Inc. DS01470A-page 3

NUMERICALLY CONTROLLED OSCILLATOR The NCO module as shown in Figure 4 is a timer that uses a 16-bit increment register to add to a 20-bit accumulator to divide the input frequency. The NCO is most useful in applications that require frequency accuracy and fine resolution at a fixed duty cycle. Some features of the NCO include: 16-bit increment function Fixed Duty Cycle (FDC) mode Pulse Frequency (PF) mode Output pulse width control Multiple clock input sources Output polarity control Interrupt capability FIGURE 4: NCO BLOCK DIAGRAM Increment 16 (1) Buffer 16 Interrupt event Set NCOxIF flag NCO1CLK 11 20 D Q NCOxOUT To CLC, CWG LC1OUT FOSC HFINTOSC 10 01 00 2 NxEN Accumulator 20 Overflow NCOx Clock Q 0 1 NxOE TRIS Control NCOx NxCKS<2:0> Overflow S Q NxPFM NxPOL R Q NCOx Clock Ripple Counter 3 NxPWS<2:0> Reset Note 1: The increment registers are double-buffered to allow for value changes to be made without first disabling the NCOx module. They are shown here for reference. The buffers are not user-accessible. One of the key features of the NCO is the ability to generate a pulsed output every time the accumulator overflows. The output becomes active for specified clock periods. The output returns to an inactive state once the clock period expires. DS01470A-page 4 2012 Microchip Technology Inc.

MANCHESTER DECODER The approach described in this section and hereafter is based on Manchester encoding as per G.E.Thomas described in Figure 1. The method is flexible and can be easily ported to IEEE 802.3. There are several variations and considerations required for the first transition based on the Idle states of modules, power-up configuration of microcontroller pins and the first bit received (transition based on encoding method). Start-up and Idle states will be discussed in the Section Synchronization of this document. The CLC modules are very flexible and can be easily applied to a wide range of scenarios by inverting the input or output polarities of each individual blocks. The NCO module s Idle state can also be controlled in the software. The methods discussed below assume that data is available during the first half of each bit time. Let s take an example of the following encoded bit-stream as per G.E. Thomas encoding (Figure 5). This signal will be decoded into its clock and data line, as shown in Figure 6. FIGURE 5: ENCODED BIT STREAM FIGURE 6: DATA AND CLOCK LINE Two key points to note from this bit stream are that the bit value is present in the first half of each bit time, before the mid-bit transition. There is a transition in the middle of each bit period. This allows us to use the mid-bit transition as a trigger for NCO and use ¾ bit time to overflow and capture the next bit value (Figure 7). This ¾ bit time allows up to +/- ¼ bit time of error. FIGURE 7: DATA CAPTURE 2012 Microchip Technology Inc. DS01470A-page 5

CLC block in OR-XOR configuration is used to extract clock out of this configuration (Figure 8). FIGURE 8: CLOCK EXTRACTION This essentially is our Manchester decoder, where CLC OR-XOR is clock and D is data. If we use the rising edge of a clock signal to capture data from D, we notice that every bit except the first one is decoded. The issue can be resolved in several ways, which will be discussed in the Section Synchronization. FIGURE 9: MANCHESTER DECODER The timing diagram above (Figure 9) is decoded into the following block diagram (Figure 10). There are five stages in this diagram: Stage 1 Incoming Manchester Signal Stage 2 D flip-flop that captures input data when NCO is triggered Stage 3 XOR gate to provide start time for NCO Stage 4 AND-OR gate to supply clock to NCO, and to ensure that it clocks for full ¾ bit time Stage 5 NCO to generate ¾ bit time, started in mid-bit transition of previous bit DS01470A-page 6 2012 Microchip Technology Inc.

FIGURE 10: FULL DECODER BLOCK DIAGRAM CLC4 CLC2 CLC1 Data Out Data In D S Q1 R FOSC CLK NCO OUT Clock Out PIC16F1509 IMPLEMENTATION The device chosen for this implementation is PIC16F1509. It has four CLC blocks to implement combinational logic along with NCO to generate specific bit time. The following section covers the implementation of these blocks using the available resources in this device. Stage 1 D Flip-Flop (CLC4) This stage latches in the Manchester data on the falling edge of the clock signal. This output is the recovered data that will be fed into the microcontroller. The data is sampled on the clock falling edge, and is stable to be read on the clock rising edge, because the data line never changes on a rising clock edge. These two blocks together are the most important in the decoder. They create a fixed length pulse for each rising edge coming out of Stage 2. The output of the NCO is fed back into the AND-OR gate, so that when the output of Stage 2 goes to zero, the NCO will continue clocking until it overflows. When the part is first configured, it will output a single ¾ bit length pulse. This is needed to put the NCO in its active-low state. When it is active, the NCO is waiting on the output pulse width clocks configured in the NCOCLK register.* Once a clock source is supplied, it will finish its active pulse and start counting again. *Design Tip: By removing the clock source from the NCO and holding it in its active state, you have essentially created a way to control the duty cycle of the NCO. Stage 2 XOR Gate (CLC2) Because a transition is ensured in the middle of every bit in Manchester encoding, we can use an XOR gate to ensure that each mid-bit transition gives us a rising edge for Stage 3. This means that we are synchronizing our decoder in the middle of each bit. Stage 3 NCO + AND-OR (CLC1) The PIC16F1509 has a NCO module that is used to generate ¾ bit-time to capture data value. The NCO is used in active-low Pulse Frequency mode to output a pulse when ¾ bit time expires. The pulse width can be controlled using a Special Function Register. The module also requires a clock source that allows it to repeatedly add a fixed value to an accumulator at the specified clock rate, which will be supplied by CLC1. 2012 Microchip Technology Inc. DS01470A-page 7

Figure 11 uses the example of a 25 khz Manchester data input. 25 khz gives us 40 µs bit time, which means that we need to generate a ¾ bit time of 30 µs to capture data and synchronize the NCO clock to the rising edge of the extracted clock. FIGURE 11: BIT TIMING To configure the NCO, refer to Equation 25-1 in the PIC16F1509 data sheet on the Microchip web site: EQUATION 1: F overflow = NCO Clock Frequency * Increment Value ----------------------------------------------------------------------------------------------------- 2 n = 16 MHz Internal Clock F osc * Increment Value ------------------------------------------------------------------------------------------------------------------------- 2 20 n = accumulator width in bits 30us pulse = 33.33 khz = 16 MHz * Increment Value ------------------------------------------------------------------ 2 20 I n c r e m e n t V a l u e = 2184 = 0 x 0888 We are using the NCO in Pulse Frequency mode, where every time the accumulator overflows; the output becomes active for pre-defined clock periods. Keep in mind that these clocks are removed from the NCO to hold it in its active (low) state. They will then be added to the next pulse. DS01470A-page 8 2012 Microchip Technology Inc.

SYNCHRONIZATION The assumption in the above analysis is that the first edge was a mid-bit transition. The problem is that one ¾ bit length after the first mid-bit transition; you have already missed your first bit of data. There are several methods to overcome this problem. The first and easiest method is by receiving data with a known first bit. That way you can just mask it in after the data is read. Another method is by first sending a Start bit. It needs to occur a ½ bit length before the first bit is transmitted, so the remaining data will synchronize with the mid-bit transitions. A Stop bit may be necessary to return the encoded data line back to its default state. Figure 12 again shows the waveform timings of the different blocks in the decoder. Because there is a Start and Stop bit, the first clock and last clock do not contain data and must be filtered out in the software. This can be done using the interrupt-on-change feature (trigger on the Start bit), then fed into the SPI or UART. Or, it can easily be bit-banged. FIGURE 12: MANCHESTER DECODER FINAL TIMING 2012 Microchip Technology Inc. DS01470A-page 9

HARDWARE APPLICATION The CLC blocks have a variety of inputs and outputs. Figure 13 shows how the three blocks can be wired up to each other externally in order to make the decoder work properly. FIGURE 13: BLOCK DIAGRAM WITH EXTERNAL PIN CONNECTIONS CONCLUSION A Manchester decoder is implemented using Microchip s award winning CLC blocks. In the chosen implementation, the NCO and three CLC blocks were used. Serial data and clock can be fed into an SPI module, UART, or bit-banged to recover data if needed. The implementation chosen is using very few CPU cycles for Manchester decoding, leaving it to process other application tasks. The part can remain in Sleep mode between bytes to save power. There are plenty of other applications where CLC blocks can be used very efficiently. Manchester encoding and decoding is just one of them. The new enhanced mid-range 8-bit core on PIC16F1509 features Microchip s Extreme Low-Power XLP technology, and is suitable for a wide range of applications. DS01470A-page 10 2012 Microchip Technology Inc.

REFERENCES Wikipedia: http://en.wikipedia.org/wiki/manchester_code Device Data Sheet: http://www.microchip.com/wwwproducts/devices.aspx?ddocname=en553474 2012 Microchip Technology Inc. DS01470A-page 11

APPENDIX A FIGURE 14: CLC 1 (AND-OR) FIGURE 15: CLC 2 (D FLIP-FLOP) DS01470A-page 12 2012 Microchip Technology Inc.

FIGURE 16: CLC4 (D FLIP-FLOP) 2012 Microchip Technology Inc. DS01470A-page 13

FIGURE 17: DECODED DATA DS01470A-page 14 2012 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. QUALITY MANAGEMENT SYSTEM CERTIFIED BY DNV == ISO/TS 16949 == Trademarks The Microchip name and logo, the Microchip logo, dspic, FlashFlex, KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro, PICSTART, PIC 32 logo, rfpic, SST, SST Logo, SuperFlash and UNI/O are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor, MTP, SEEVAL and The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A. Silicon Storage Technology is a registered trademark of Microchip Technology Inc. in other countries. Analog-for-the-Digital Age, Application Maestro, BodyCom, chipkit, chipkit logo, CodeGuard, dspicdem, dspicdem.net, dspicworks, dsspeak, ECAN, ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial Programming, ICSP, Mindi, MiWi, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, mtouch, Omniscient Code Generation, PICC, PICC-18, PICDEM, PICDEM.net, PICkit, PICtail, REAL ICE, rflab, Select Mode, SQI, Serial Quad I/O, Total Endurance, TSHARC, UniWinDriver, WiperLock, ZENA and Z-Scale 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. GestIC and ULPP are registered trademarks of Microchip Technology Germany II GmbH & Co. & KG, a subsidiary of Microchip Technology Inc., in other countries. All other trademarks mentioned herein are property of their respective companies. 2012, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. Printed on recycled paper. ISBN: 9781620766200 Microchip received ISO/TS-16949:2009 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. 2012 Microchip Technology Inc. DS01470A-page 15

Worldwide Sales and Service AMERICAS Corporate Office 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Fax: 480-792-7277 Technical Support: http://www.microchip.com/ support Web Address: www.microchip.com 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 Cleveland Independence, OH Tel: 216-447-0464 Fax: 216-447-0643 Dallas Addison, TX Tel: 972-818-7423 Fax: 972-818-2924 Detroit Farmington Hills, MI Tel: 248-538-2250 Fax: 248-538-2260 Indianapolis Noblesville, IN Tel: 317-773-8323 Fax: 317-773-5453 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 ASIA/PACIFIC 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 Australia - Sydney Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 China - Beijing Tel: 86-10-8569-7000 Fax: 86-10-8528-2104 China - Chengdu Tel: 86-28-8665-5511 Fax: 86-28-8665-7889 China - Chongqing Tel: 86-23-8980-9588 Fax: 86-23-8980-9500 China - Hangzhou Tel: 86-571-2819-3187 Fax: 86-571-2819-3189 China - Hong Kong SAR Tel: 852-2401-1200 Fax: 852-2401-3431 China - Nanjing Tel: 86-25-8473-2460 Fax: 86-25-8473-2470 China - Qingdao Tel: 86-532-8502-7355 Fax: 86-532-8502-7205 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 - Wuhan Tel: 86-27-5980-5300 Fax: 86-27-5980-5118 China - Xian Tel: 86-29-8833-7252 Fax: 86-29-8833-7256 China - Xiamen Tel: 86-592-2388138 Fax: 86-592-2388130 ASIA/PACIFIC India - Bangalore Tel: 91-80-3090-4444 Fax: 91-80-3090-4123 India - New Delhi Tel: 91-11-4160-8631 Fax: 91-11-4160-8632 India - Pune Tel: 91-20-2566-1512 Fax: 91-20-2566-1513 Japan - Osaka Tel: 81-66-152-7160 Fax: 81-66-152-9310 Japan - Yokohama Tel: 81-45-471-6166 Fax: 81-45-471-6122 Korea - Daegu Tel: 82-53-744-4301 Fax: 82-53-744-4302 Korea - Seoul Tel: 82-2-554-7200 Fax: 82-2-558-5932 or 82-2-558-5934 Malaysia - Kuala Lumpur Tel: 60-3-6201-9857 Fax: 60-3-6201-9859 Malaysia - Penang Tel: 60-4-227-8870 Fax: 60-4-227-4068 Philippines - Manila Tel: 63-2-634-9065 Fax: 63-2-634-9069 Singapore Tel: 65-6334-8870 Fax: 65-6334-8850 Taiwan - Hsin Chu Tel: 886-3-5778-366 Fax: 886-3-5770-955 Taiwan - Kaohsiung Tel: 886-7-536-4818 Fax: 886-7-330-9305 Taiwan - Taipei Tel: 886-2-2500-6610 Fax: 886-2-2508-0102 Thailand - Bangkok Tel: 66-2-694-1351 Fax: 66-2-694-1350 EUROPE Austria - Wels Tel: 43-7242-2244-39 Fax: 43-7242-2244-393 Denmark - Copenhagen Tel: 45-4450-2828 Fax: 45-4485-2829 France - Paris Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 Germany - Munich Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 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 11/29/11 DS01470A-page 16 2012 Microchip Technology Inc.