TB055. PS/2 to USB Mouse Translator IMPLEMENTATION OVERVIEW. Hardware FIGURE 1: PS/2 TO USB MOUSE TRANSLATOR HARDWARE DIAGRAM (1)



Similar documents
TB056. Demonstrating the Set_Report Request With a PS/2 to USB Keyboard Translator Example INTRODUCTION. The Set_Report Request.

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

AN688. Layout Tips for 12-Bit A/D Converter Application GETTING A GOOD START INTRODUCTION. Microchip Technology Inc. / 2 MCP602

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

M Floating Point to ASCII Conversion

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

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

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

AN680. Passive RFID Basics INTRODUCTION DEFINITIONS. Modulation. Reader. Tag. Carrier. Microchip Technology Inc.

AN831. Matching Small Loop Antennas to rfpic Devices INTRODUCTION CALCULATING THE LOOP RADIATION RESISTANCE AND LOSS RESISTANCE EQUATION 2:

How to Implement ICSP Using PIC12C5XX OTP MCUs VDD. GP3/MCLR/VPP ICSP Connector. To application circuit Isolation circuits

TCM V To ±10V Voltage Converter. General Description. Features. Applications. Package Type. Typical Operating Circuit

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

M Floating Point to ASCII Conversion

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

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

AN873. Using the MCP2515 CAN Developer s Kit INTRODUCTION. PC Node. PICmicro Node BLOCK DIAGRAM OF MCP2515 DEVELOPMENT BOARD

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

AN844. Simplified Thermocouple Interfaces and PICmicro MCUs INTRODUCTION. Linearization THERMOCOUPLE CIRCUITS. Absolute Temperature Reference.

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

AN699. Anti-Aliasing, Analog Filters for Data Acquisition Systems ANALOG VERSUS DIGITAL FILTERS INTRODUCTION. Microchip Technology Inc.

AN713. Controller Area Network (CAN) Basics INTRODUCTION CAN PROTOCOL BASICS CAN OVERVIEW

A CAN Physical Layer Discussion

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:

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

PIC10F200/202/204/206

FLASH Memory Programming Specification TABLE 1-1: PIN DESCRIPTIONS (DURING PROGRAMMING): PIC16F72

Simplified Description of USB Device Enumeration

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

How To Use A Temperature Sensor On A Microchip Computer (For Microchip)

Installing and Licensing MPLAB XC C Compilers

Timers: Timer0 Tutorial (Part 1)

Voltage-to-Frequency/Frequency-to-Voltage Converter

Code Hopping Decoder Using a PIC16C56

AN295 USB AUDIO CLASS TUTORIAL. 1. Introduction. 2. USB, Isochronous Transfers, and the Audio Class Overview USB Operational Overview

Technical Brief Secure Learning RKE Systems Using KEELOQ Encoders

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

TB040. Fast Integer Square Root THE ALGORITHM INTRODUCTION SQUARE ROOT FLOW CHART

TC652/TC653. Integrated Temperature Sensor & Brushless DC Fan Controller with FanSense Detect & Over-Temperature. Features.

AN880. Converting from 8051 to Microchip Assembler: A Quick Reference INTRODUCTION

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

TB026. Calculating Program Memory Checksums Using a PIC16F87X ACCESSING MEMORY INTRODUCTION. PIC16C7X vs. PIC16F87X. Microchip Technology Inc.

AN249 HUMAN INTERFACE DEVICE TUTORIAL. Relevant Devices This application note applies to all Silicon Labs USB MCUs. 1.

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

AN885. Brushless DC (BLDC) Motor Fundamentals INTRODUCTION CONSTRUCTION AND OPERATING PRINCIPLE. Stator. Padmaraja Yedamale Microchip Technology Inc.

Universal Programming Module 2

25AA640/25LC K SPI Bus Serial EEPROM. Device Selection Table. Description. Features. Block Diagram. Package Types

AN1164. USB CDC Class on an Embedded Device INTRODUCTION ASSUMPTIONS FEATURES LIMITATIONS

Uninstalling Incorrect USB Device Drivers

AN685. Thermistors in Single Supply Temperature Sensing Circuits INTRODUCTION THERMISTOR OVERVIEW. Current-Over-Time Mode. Voltage-Versus-Current Mode

Analog-to-Digital Converters

AN562. Using Endurance Predictive Software. Using the Microchip Endurance Predictive Software INTRODUCTION TOTAL ENDURANCE PREDICTIVE SOFTWARE

TCP/IP Networking: Web-Based Status Monitoring

TC4421/TC4422. Functional Block Diagram. TC4421 Inverting. TC4422 Non-Inverting V DD. 300 mv Output. Input 4.7V. GND Effective. Input.

PIC16F877A. FLASH Memory Programming Specification 1.0 PROGRAMMING THE PIC16F87XA

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

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

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

AN679. Temperature Sensing Technologies SO MANY TEMPERATURE SENSORS INTRODUCTION. Microchip Technology Inc.

AN1163. USB HID Class on an Embedded Device FEATURES INTRODUCTION LIMITATIONS ASSUMPTIONS SYSTEM HARDWARE. Microchip Technology Inc.

Section 15. Input Capture

AN990. Analog Sensor Conditioning Circuits An Overview INTRODUCTION SENSOR APPLICATIONS. Target Audience. Goals. Description.

Driving Power MOSFETs in High-Current, Switch Mode Regulators V GS(TH) In equation form: and. I G = Q G /t (transition) where: For example:

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

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

How To Improve Electromagnetic Compatibility

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

LIN Serial Analyzer User s Guide Rev2.0

PICmicro DC Motor Control Tips n Tricks

AN826. Crystal Oscillator Basics and Crystal Selection for rfpic TM and PICmicro Devices INTRODUCTION OSCILLATOR MODELS. Microchip Technology Inc.

Motor Control Sensor Feedback Circuits. Power Management. PICmicro Input Microcontroller Driver Motor. Direction Current Sensor

MCP2515 Development Kit User s Guide

TC110. PFM/PWM Step-Up DC/DC Controller. Features. General Description. Applications. Functional Block Diagram. Device Selection Table

High-Speed CAN Transceiver

PL2571 (Chip Rev B) Hi-Speed USB to SATA Bridge Controller Product Datasheet

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

Integrated Development Environment

MCRF khz Passive RFID Device with Sensor Input. Not recommended for new designs. Package Type. Features. Description. Applications PDIP/SOIC

Features, Value and Benefits of Digital Control for Power Supplies

PL-2303HX Edition (Chip Rev A) USB to Serial Bridge Controller Product Datasheet

SMART Modular Small Form Factor USB Key

Bypassing Endpoint Security for $20 or Less. Philip A. Polstra, ppolstra.blogspot.com

AN717. Building a 10-bit Bridge Sensing Circuit using the PIC16C6XX and MCP601 Operational Amplifier

Universal Serial Bus Device Class Definition for Printing Devices

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

HCS200. KEELOQ Code Hopping Encoder DESCRIPTION FEATURES PACKAGE TYPES BLOCK DIAGRAM. Security. Operating. Other. Typical Applications

AN723. Operational Amplifier AC Specifications and Applications INTRODUCTION FREQUENCY DOMAIN SPECIFICATIONS

TC648. Fan Speed Controller with Auto-Shutdown and Over-Temperature Alert. Package Types. Features TC648. General Description.

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

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

USB Overview. This course serves as an introduction to USB.

PICkit 2 Microcontroller Programmer USER S GUIDE

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

PIC32 Microcontroller Families

Operational Amplifier Topologies and DC Specifications

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

Transcription:

PS/2 to USB Mouse Translator TB55 Author: OVERVIEW Reston Condit Microchip Technology Inc. This Technical Brief details the translation of a PS/2 mouse to a USB mouse using the PIC16C745/765. The PIC16C745/765 is Microchip s low-speed USB microcontroller. All of the USB descriptors for the mouse translator are listed in the tables in Appendix A: Device Descriptors. A detailed byte-by-byte description is given for each descriptor to assist USB peripheral designers in understanding USB descriptors. For the basics of USB descriptors, refer to TB54, An Introduction to USB Descriptors with a Game Port to USB Game Pad Translator Example. IMPLEMENTATION Hardware The PS/2 port is a 6-pin DIN. Only four pins are used: Ground Power Clock Data The power and ground pins are tied directly to VDD and VSS of the microcontroller. The clock and data pins are connected to RC and RC1, respectively, via current limiting resistors. The clock is driven by the PS/2 mouse regardless of the direction of the transaction. Figure 1 shows the complete system. Note: This Technical Brief is the second in a series of five technical briefs. This series is meant to familiarize developers with USB. For the best understanding of USB, read the briefs in order: TB54, TB55, TB56, TB57 and TB58. FIGURE 1: PS/2 TO USB MOUSE TRANSLATOR HARDWARE DIAGRAM (1) PS/2 Female 6 5 5 4 3 3 4 2 1 1 C1 (2) C2 (2)XTAL Clock Data 1Ω 6 MHz PIC16C745/765 OSC1 OSC2 RC RC1 VUSB D- D+ VSS* VDD* C3 R1 1.5k C4.1 µf 2 nf USB Cable Host D- D+ GND +5 VDC Note 1: There are two VSS and VDD pins on PIC16C765. 2: C1 and C2 values selected according to crystal load capacitance. 24 Microchip Technology Inc. DS9155C-page 1

Software PS/2 DATA FORMAT Before explaining how PS/2 mouse data is translated to USB, it is necessary to touch upon the PS/2 data format. Data is sent via PS/2 one byte at a time regardless of direction, host-to-device or vice-versa. The data has the following form: Start bit (always low) Data byte (Least Significant bit to Most Significant bit) Parity bit (high for an even number of high bits in the data byte and low for an odd number) Stop bit (always high) In the case of host-to-device communication, the Stop bit is immediately followed by an ACK bit (low), which is sent by the device to the host. The bits are read on the falling edge of the clock for device-to-host communication and on the rising edge for host-to-device communication. In the Idle state, the clock and data lines are held high by the device. See Figure 2 and Figure 4 for device-to-host and host-to-device communication, respectively. FIGURE 2: DEVICE-TO-HOST COMMUNICATION (DATA BIT READ ON FALLING EDGE OF CLOCK) Clock Data START DATA DATA1 DATA2 DATA3 DATA4 DATA5 DATA6 DATA7 PARITY STOP FIGURE 3: HOST-TO-DEVICE COMMUNICATION (DATA BIT READ ON FALLING EDGE OF CLOCK) Clock Data START DATA DATA1 DATA2 DATA3 DATA4 DATA5 DATA6 DATA7 PARITY STOP ACK INTERRUPT SERVICE ROUTINE The portion of the firmware that deals with PS/2 reception and translation is entirely interrupt driven. An interrupt is generated when the PS/2 Start bit is received from the mouse. At this point, the receive routine is initiated. In addition to this interrupt, every 683 µs, a timer overflow interrupts the normal program flow and implements one state of the mouse state machine. This state machine handles sending bytes to and translating bytes received from the PS/2 mouse. These two interrupts essentially handle everything, except for transferring the translated PS/2 data to the PC via USB. Table 1 and Table 2 show the PS/2 and USB mouse report formats respectively. They are nearly identical so a very short and simple routine translates the PS/2 mouse data format to the USB mouse data format. Table 2 corresponds directly to the report format information described by the report descriptor. The mouse report descriptor is listed in Appendix A: Device Descriptors. DS9155C-page 2 24 Microchip Technology Inc.

TABLE 1: PS/2 MOUSE REPORT Byte Bit Description 3 7 6-1 2 7 6-1 1 7 6 5 4 3 2 1 MSB of Y Data Y Data LSB of Y Data MSB of X Data X Data LSB of X Data Y Data Overflow, 1 = overflow X Data Overflow, 1 = overflow Y Data Sign, 1 = negative X Data Sign, 1 = negative Right Button Status, 1 = pressed Left Button Status, 1 = pressed TABLE 2: USB MOUSE REPORT Byte Bit Description 3 7 6-1 2 7 6-1 1 7 6 5 4 3 2 1 MSB of Y Data Y Data LSB of Y Data MSB of X Data X Data LSB of X Data Third Button Status, 1 = pressed Right Button Status, 1 = pressed Left Button Status, 1 = pressed MAIN LOOP The main loop of the firmware sends USB mouse data to the host. This is done with the use of the PutEP1 function. PutEP1 loads the EP1 IN buffer with the USB mouse data. Special Function Register (SFR) BC1IAL is the address pointer to the EP1 IN buffer. After the bytes are loaded into the buffer, the UOWN bit (BD1IST<7>) is set so that the SIE will send the bytes to the host the next time the host polls the device. A closer look at the source code and endpoint descriptor reveals that PutEP1 sends four bytes to the host instead of three, the number of bytes specified in the report descriptor. If only three bytes are sent, the mouse will never move the cursor. The reason for this stems from the fact that a mouse is a boot device. Since the mouse is such a commonly used peripheral, the host requires a standard length report of four bytes. Therefore, in the mouse example, a null fourth byte is sent with the three data bytes. 24 Microchip Technology Inc. DS9155C-page 3

REFERENCES 1. USB Specification, Version 1.1: Chapter 9 (located at www.usb.org) 2. Device Class Definition for Human Interface Devices (located at www.usb.org) 3. HID Usage Tables (located at www.usb.org) 4. USB Firmware User's Guide (located in USB Support Firmware zip file at www.microchip.com) 5. USB Complete, Second Edition, Jan Axelson; Lakeview Research, 21 (www.lvr.com) 6. TB54: An Introduction to USB Descriptors with a Game Port to USB Game Pad Translator (DS9154) 7. TB56: Demonstrating the Set_Report Request with a PS/2 to USB Keyboard Translator Example (DS9156) 8. TB57: USB Combination Devices Demonstrated by a Combination Mouse and Game Pad device (DS9157) 9. TB58: Demonstrating the Soft Detact Function with a PS/2 to USB Translator Example (DS9158) DS9155C-page 4 24 Microchip Technology Inc.

APPENDIX A: DEVICE DESCRIPTORS Chapter 9 of the USB Specification, V 1.1, defines the standard descriptors (Device, Configuration, Interface, Endpoint and String Descriptors.) The HID Class Definition defines the HID descriptors (HID and Report). TABLE 3: TABLE 4: DEVICE DESCRIPTORS Offset Field Size Description Value for Mouse blength 1 Size of descriptor in bytes x12 1 bdescriptortype 1 Descriptor type (DEVICE = 1) x1 2 bcdusb 2 USB specification release (Ver 1.1 = x11) x11 4 bdeviceclass 1 Class code (this field is zero if every interface specifies x its own class information) 5 bdevicesubclass 1 Subclass code (if the class code is zero this must be x zero) 6 bdeviceprotocol 1 Protocol code (zero if it does not use a class-specific x protocols on a device level) 7 bmaxpacketsize 1 Maximum packet size (eight for low speed) x8 8 idvendor 2 Vendor ID (assigned by the USB-IF) x4d8 1 idproduct 2 Product ID (assigned by the manufacture) x1 12 bcddevice 2 Device release number in binary-coded decimal x441 14 imanufacturer 1 Index of string descriptor describing manufacturer x1 (String 1 is Microchip ) 15 iproduct 1 Index of string descriptor describing product (String 2 is x2 PIC16C745/765 USB Mouse ) 16 iserialnumber 1 Index of string descriptor describing the serial number x (none) 17 bnumconfigurations 1 Number of possible configurations x1 CONFIGURATION DESCRIPTOR Offset Field Size Description Value for Mouse blength 1 Size of descriptor in bytes x9 1 bdescriptortype 1 Descriptor type (CONFIGURATION = 2) x2 2 btotallength 2 Total length of data returned for this configuration (For the mouse example this is the combined length of the configuration, interface, HID and endpoint descriptors) x22 4 bnuminterfaces 1 Number of interfaces supported by this configuration x1 5 bconfigurationvalue 1 Value to use as an argument to the Set Configuration() x1 request to select this configuration 6 iconfiguration 1 Index of string descriptor describing this configuration x4 (String 4 is Cfg1 ) 7 bmattributes 1 Configuration characteristics xa Bit 7 Always one Bit 6: Self-powered Bit 5: Remote wake-up Bits 4..: Zero 8 bmaxpower 1 Maximum power consumption expressed in 2 ma units (in this case 5 = 1 ma) x32 24 Microchip Technology Inc. DS9155C-page 5

TABLE 5: TABLE 6: TABLE 7: INTERFACE DESCRIPTOR Offset Field Size Description Value for Mouse blength 1 Size of descriptor in bytes x9 1 bdescriptortype 1 Descriptor type (INTERFACE = 4) x4 2 binterfacenumber 1 Number of this interface (zero based array) x 3 balternatesetting 1 Value used to select this alternate setting for the interface identified in the prior field (there is no alternate setting for this mouse) x 4 bnumendpoints 1 Number of endpoints used by this interface x1 5 binterfaceclass 1 Class code (assigned by the USB-IF) x3 6 binterfacesubclass 1 Subclass code (bootdevice = 1) x1 7 binterfacesubprotocol 1 Protocol code (mouse = 2) x2 8 iinterface 1 Index of string descriptor describing this interface (String 5 is EP1 IN ) x5 HUMAN INTERFACE DEVICE (HID) DESCRIPTOR Offset Field Size Description Value for Mouse blength 1 Size of descriptor in bytes x9 1 bdescriptortype 1 Descriptor type (HID = 21) x21 2 bcdhid 2 HID class specification release (Ver 1. = x1) x1 4 bcountrycode 1 Country code of localized hardware x 5 bnumdescriptors 1 Number of HID class descriptors x1 6 bdescriptortype 1 Type of class descriptor (REPORT = 22) x22 7 bdescriptorlength 2 Total size of report descriptor x32 ENDPOINT DESCRIPTOR Offset Field Size Description Value for Mouse blength 1 Size of descriptor in bytes x7 1 bdescriptortype 1 Descriptor type (ENDPOINT = 5) x5 2 bendpointaddress 1 Endpoint characteristics Bits 3...: Always one Bits 6...4: Self-powered x81 Bit 7: Remote wake-up = OUT endpoint 1 = IN endpoint 3 bmattributes 1 Endpoint s attributes Bits 1...: Transfer Type = Control 1 = Isochronous 1 = Bulk 11 = Interrupt Bits 7...2: Always zero for low speed 4 wmaxpacketsize 2 Maximum packet size Bits 1...: Maximum packet size in bytes Bits 12...11: Number of additional transaction opportunities per microframe = None 1 = 1 additional 1 = 2 additional 11 = 6 binterval 1 Interval for polling endpoint for data transfer (in 1 ms increments for low speed devices) x3 x4 xa DS9155C-page 6 24 Microchip Technology Inc.

FIGURE 4: REPORT DESCRIPTOR x5, x1 usage page (generic desktop Choose the usage page "mouse" is on x9, x2 usage (mouse) Device is a mouse xa1, x1 collection (application) This collection encompasses the report format x9, x1 usage (pointer) Choose the key code usage page xa1, x collection (physical) Physical collection x5, x9 usage page (buttons) Choose the button usage page x19, x1 usage minimum (1) There are three buttons x29, x3 usage maximum (3) x15, x logical minimum () Each button is represented by one bit x25, x1 logical maximum (1) x95, x3 report count (3) Three reports, one bit each x75, x1 report size (1) x81, x2 input (data, variable, absolute) Defined bits above are data bits x95, x1 report count (1) One report, five bits in length x75, x5 report size (5) x81, x1 input (constant) Bit stuff to fill byte x5, x1 usage page (generic desktop) Choose the usage pare X and Y are on x9, x3 usage (X) X direction of pointer x9, x31 usage (Y) Y direction of pointer x15, x81 logical minimum (-127) Range of report data is -127 to 127 x25, x7f logical maximum (127) x75, x8 report size (8) Two reports, eight bits each x95, x3 report count (2) x81, x6 input (data, variable, absolute) Defined bits above are data bits xc end collection End physical collection xc end collection End application collection 24 Microchip Technology Inc. DS9155C-page 7

APPENDIX B: SOURCE CODE Due to the length of the source code for the PS/2 to USB Mouse Translator, the source code is available separately. The complete source code is available as a single WinZip archive file, tb55sc.zip, which may be downloaded from the Microchip corporate web site at: www.microchip.com DS9155C-page 8 24 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 intended through suggestion only and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. No representation or warranty is given and no liability is assumed by Microchip Technology Incorporated with respect to the accuracy or use of such information, or infringement of patents or other intellectual property rights arising from such use or otherwise. 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 intellectual property rights. Trademarks The Microchip name and logo, the Microchip logo, Accuron, dspic, KEELOQ, MPLAB, PIC, PICmicro, PICSTART, PRO MATE, PowerSmart and rfpic are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. AmpLab, FilterLab, microid, MXDEV, MXLAB, PICMASTER, SEEVAL, SmartShunt and The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A. Application Maestro, dspicdem, dspicdem.net, dspicworks, ECAN, ECONOMONITOR, FanSense, FlexROM, fuzzylab, In-Circuit Serial Programming, ICSP, ICEPIC, Migratable Memory, MPASM, MPLIB, MPLINK, MPSIM, PICkit, PICDEM, PICDEM.net, PICtail, PowerCal, PowerInfo, PowerMate, PowerTool, rflab, Select Mode, SmartSensor, 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. 24, Microchip Technology Incorporated, Printed in the U.S.A., All Rights. Printed on recycled paper. Microchip received ISO/TS-16949:22 quality system certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona and Mountain View, California in October 23. 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 91:2 certified. 24 Microchip Technology Inc. DS9155C-page 9

WORLDWIDE SALES AND SERVICE AMERICAS Corporate Office 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 48-792-72 Fax: 48-792-7277 Technical Support: 48-792-7627 Web Address: http://www.microchip.com Atlanta 378 Mansell Road, Suite 13 Alpharetta, GA 322 Tel: 77-64-34 Fax: 77-64-37 Boston 2 Lan Drive, Suite 12 Westford, MA 1886 Tel: 978-692-3848 Fax: 978-692-3821 Chicago 333 Pierce Road, Suite 18 Itasca, IL 6143 Tel: 63-285-71 Fax: 63-285-75 Dallas 457 Westgrove Drive, Suite 16 Addison, TX 751 Tel: 972-818-7423 Fax: 972-818-2924 Detroit Tri-Atria Office Building 32255 Northwestern Highway, Suite 19 Farmington Hills, MI 48334 Tel: 248-538-225 Fax: 248-538-226 Kokomo 2767 S. Albright Road Kokomo, IN 4692 Tel: 765-864-836 Fax: 765-864-8387 Los Angeles 1821 Von Karman, Suite 19 Irvine, CA 92612 Tel: 949-263-1888 Fax: 949-263-1338 San Jose 13 Terra Bella Avenue Mountain View, CA 9443 Tel: 65-215-1444 Fax: 65-961-286 Toronto 6285 Northam Drive, Suite 18 Mississauga, Ontario L4V 1X5, Canada Tel: 95-673-699 Fax: 95-673-659 ASIA/PACIFIC Australia Suite 22, 41 Rawson Street Epping 2121, NSW Australia Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 China - Beijing Unit 76B Wan Tai Bei Hai Bldg. No. 6 Chaoyangmen Bei Str. Beijing, 127, China Tel: 86-1-852821 Fax: 86-1-8528214 China - Chengdu Rm. 241-242, 24th Floor, Ming Xing Financial Tower No. 88 TIDU Street Chengdu 6116, China Tel: 86-28-867662 Fax: 86-28-86766599 China - Fuzhou Unit 28F, World Trade Plaza No. 71 Wusi Road Fuzhou 351, China Tel: 86-591-75356 Fax: 86-591-753521 China - Hong Kong SAR Unit 91-6, Tower 2, Metroplaza 223 Hing Fong Road Kwai Fong, N.T., Hong Kong Tel: 852-241-12 Fax: 852-241-3431 China - Shanghai Room 71, Bldg. B Far East International Plaza No. 317 Xian Xia Road Shanghai, 251 Tel: 86-21-6275-57 Fax: 86-21-6275-56 China - Shenzhen Rm. 1812, 18/F, Building A, United Plaza No. 522 Binhe Road, Futian District Shenzhen 51833, China Tel: 86-755-829138 Fax: 86-755-8295-1393 China - Shunde Room 41, Hongjian Building, No. 2 Fengxiangnan Road, Ronggui Town, Shunde District, Foshan City, Guangdong 52833, China Tel: 86-757-2839557 Fax: 86-757-28395571 China - Qingdao Rm. B55A, Fullhope Plaza, No. 12 Hong Kong Central Rd. Qingdao 26671, China Tel: 86-532-527355 Fax: 86-532-52725 India Divyasree Chambers 1 Floor, Wing A (A3/A4) No. 11, O Shaugnessey Road Bangalore, 56 25, India Tel: 91-8-222961 Fax: 91-8-222962 Japan Benex S-1 6F 3-18-2, Shinyokohama Kohoku-Ku, Yokohama-shi Kanagawa, 222-33, Japan Tel: 81-45-471-6166 Fax: 81-45-471-6122 Korea 168-1, Youngbo Bldg. 3 Floor Samsung-Dong, Kangnam-Ku Seoul, Korea 135-882 Tel: 82-2-554-72 Fax: 82-2-558-5932 or 82-2-558-5934 Singapore 2 Middle Road #7-2 Prime Centre Singapore, 18898 Tel: 65-6334-887 Fax: 65-6334-885 Taiwan Kaohsiung Branch 3F - 1 No. 8 Min Chuan 2nd Road Kaohsiung 86, Taiwan Tel: 886-7-536-4818 Fax: 886-7-536-483 Taiwan Taiwan Branch 11F-3, No. 27 Tung Hua North Road Taipei, 15, Taiwan Tel: 886-2-2717-7175 Fax: 886-2-2545-139 EUROPE Austria Durisolstrasse 2 A-46 Wels Austria Tel: 43-7242-2244-399 Fax: 43-7242-2244-393 Denmark Regus Business Centre Lautrup hoj 1-3 Ballerup DK-275 Denmark Tel: 45-442-9895 Fax: 45-442-991 France Parc d Activite du Moulin de Massy 43 Rue du Saule Trapu Batiment A - ler Etage 913 Massy, France Tel: 33-1-69-53-63-2 Fax: 33-1-69-3-9-79 Germany Steinheilstrasse 1 D-85737 Ismaning, Germany Tel: 49-89-627-144- Fax: 49-89-627-144-44 Italy Via Quasimodo, 12 225 Legnano (MI) Milan, Italy Tel: 39-331-742611 Fax: 39-331-466781 Netherlands P. A. De Biesbosch 14 NL-5152 SC Drunen, Netherlands Tel: 31-416-69399 Fax: 31-416-6934 United Kingdom 55 Eskdale Road Winnersh Triangle Wokingham Berkshire, England RG41 5TU Tel: 44-118-921-5869 Fax: 44-118-921-582 2/17/4 DS9155C-page 1 24 Microchip Technology Inc.