MM7150 Motion Module PICtailTM Plus Evaluation Board (#AC243007) with Explorer 16 Development Board User’s Guide 2014 - 2015 Microchip Technology Inc. DS50002322D Object of Declaration: MM7150 Motion Module PICtailTM Plus Evaluation Board (#AC243007) with Explorer 16 Development Board 2014 - 2015 Microchip Technology Inc. DS50002322D-page 2 MM7150 MOTION MODULE PICTAILTM PLUS EVALUATION BOARD (#AC243007) WITH EXPLORER 16 DEVELOPMENT BOARD USER’S GUIDE Table of Contents Preface ........................................................................................................................... 6 Introduction............................................................................................................ 6 Document Layout .................................................................................................. 6 Audience ............................................................................................................... 7 Reference Documents........................................................................................... 7 Glossary ................................................................................................................ 7 The Microchip Web Site ........................................................................................ 7 Development Systems Customer Change Notification Service ............................ 8 Customer Support ................................................................................................. 8 Document Revision History ................................................................................... 9 Chapter 1. Hardware Setup 1.1 Hardware Requirements .............................................................................. 10 1.2 Preparing the Explorer 16 Development Board ............................................ 10 1.3 Hardware Connections for MM7150-PICtail to Explorer 16 Board ............... 10 1.3.1 Direct Plug-In ............................................................................................. 10 1.3.2 Using Extension Cable .............................................................................. 11 Chapter 2. Software/Firmware Setup 2.1 Software/Firmware requirements ................................................................. 12 2.2 MPLABX Project: .......................................................................................... 12 Chapter 3. Demo Setup 3.1 Running the Motion demo ............................................................................ 15 3.2 Calibrating Sensors ..................................................................................... 16 3.2.1 Calibration Mode ....................................................................................... 16 3.2.2 One-time Calibration Mode ....................................................................... 17 3.3 Sensor Data Display ..................................................................................... 18 3.4 Sleep/Wake .................................................................................................. 19 3.5 Flash Update ................................................................................................ 20 3.5.1 Flash Update command ............................................................................ 20 3.5.2 Flash Configuration Update Command ..................................................... 22 3.6 FREEFALL Mode ......................................................................................... 27 Chapter 4. Troubleshooting 4.1 Failure to Display Welcome Screen ............................................................. 30 4.2 Error Handling .............................................................................................. 31 4.2.1 General Error Handling for VREG Functions ............................................. 31 4.2.2 I2C Error Handling .................................................................................... 32 4.2.3 Error Definitions (from source/headers/err.h) ............................................ 33 Appendix A. Code Structure 2014 - 2015 Microchip Technology Inc. DS50002322D-page 3 User Guide for MM7150 Motion Module PICtailTM Plus Evaluation Board (#243007) with Explorer 16 Development Board A.1 Directory structure ........................................................................................ 34 A.2 Program Flow ............................................................................................... 36 A.2.1 Main.c ........................................................................................................36 A.2.2 Configuring and Initializing MM7150 Motion Module .................................36 A.2.3 Enabling Sensors and Reading data .........................................................36 Appendix B. Reference Schematic & Bill of Materials B.1 MM7150 Motion Module PICtail TM Plus Evaluation Board .......................... 37 B.1.1 Bill of Materials ..........................................................................................37 B.1.2 Reference Schematic ................................................................................37 Appendix C. Extension Cable for Explorer 16 C.1 Signals Connection ...................................................................................... 39 Worldwide Sales and Service .....................................................................................40 DS50002322D-page 4 2014 - 2015 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 unless otherwise stated. Trademarks The Microchip name and logo, the Microchip logo, dsPIC, FlashFlex, flexPWR, JukeBlox, KEELOQ, KEELOQ logo, Kleer, LANCheck, MediaLB, MOST, MOST logo, MPLAB, OptoLyzer, PIC, PICSTART, PIC32 logo, RightTouch, SpyNIC, SST, SST Logo, SuperFlash and UNI/O are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. The Embedded Control Solutions Company and mTouch are registered trademarks of Microchip Technology Incorporated in the U.S.A. Analog-for-the-Digital Age, BodyCom, chipKIT, chipKIT logo, CodeGuard, dsPICDEM, dsPICDEM.net, ECAN, In-Circuit Serial Programming, ICSP, Inter-Chip Connectivity, KleerNet, KleerNet logo, MiWi, motorBench, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, MultiTRAK, NetDetach, Omniscient Code Generation, PICDEM, PICDEM.net, PICkit, PICtail, RightTouch logo, REAL ICE, SQI, Serial Quad I/O, Total Endurance, TSHARC, USBCheck, VariSense, ViewSpan, WiperLock, Wireless DNA, 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. Silicon Storage Technology is a registered trademark of Microchip Technology Inc. in other countries. GestIC is a registered trademark 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. © 2014 - 2015, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. ISBN: 9781632778789 QUALITYMANAGEMENTSYSTEM CERTIFIEDBYDNV == ISO/TS16949== 2014 - 2015 Microchip Technology Inc. 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. DS50002322D-page 5 MM7150 MOTION MODULE PICTAILTM PLUS EVALUATION BOARD (#AC243007) WITH EXPLORER 16 DEVELOPMENT BOARD USER’S GUIDE Preface NOTICE TO CUSTOMERS All documentation becomes dated, and this manual is no exception. Microchip tools and documentation are constantly evolving to meet customer needs, so some actual dialogs and/or tool descriptions may differ from those in this document. Please refer to our web site (www.microchip.com) to obtain the latest documentation available. Documents are identified with a “DS” number. This number is located on the bottom of each page, in front of the page number. The numbering convention for the DS number is “DSXXXXXA”, where “XXXXX” is the document number and “A” is the revision level of the document. For the most up-to-date information on development tools, see the MPLAB® IDE online help. Select the Help menu, and then Topics to open a list of available online help files. INTRODUCTION This chapter contains general information that will be useful to know before using the MM7150 Motion Module PICtailTM Plus Evaluation Board (#AC243007) with the Explorer 16 development board (#DM240001) to run the demo and sample code. Items discussed in this chapter include: • • • • • • • • Document Layout Audience Reference Documents Glossary The Microchip Web Site Development Systems Customer Change Notification Service Customer Support Document Revision History DOCUMENT LAYOUT This document describes how to use the MM7150-PICtail with Explorer 16 Development Board to perform the demo and modify sample code. The manual layout is as follows: • Chapter 1. “Hardware Setup” – Provides hardware setting information. • Chapter 2. “Software/Firmware Setup” – Provides software and firmware setting and build information. • Chapter 3. “Demo Setup” – Includes demonstration procedures. • Chapter 4. “Troubleshooting” – Provides troubleshooting information. • Appendix A. “Code Structure” – Provides sample code structure information. 2014 - 2015 Microchip Technology Inc. DS50002322D-page 6 Preface • Appendix B. “Reference Schematic & Bill of Materials” – Provides MM7150-PICtail adapter reference schematic & bill of materials information. • Appendix C. “Extension Cable for Explorer 16” – Provides signals connection information for building a custom extension cable to use with MM7150-PICtail. AUDIENCE This document is written for developers who are familiar with 9-axis motion sensor applications. The purpose of this document is to describe the functions and use of the MM7150-PICtail with Explorer 16 Development Board to perform the demos and modify sample code functions as described in the Host API Design for MM7150 Application Note. REFERENCE DOCUMENTS • DS00001885A - MM7150 Motion Coprocessor Data Sheet • DS00001888A - MM7150 Motion Module Data Sheet • DS00001873A - Host API Design for MM7150 Motion Module Application Note Note: Please contact your Microchip representative for the above documents and availability. GLOSSARY This section describes glossary terms and acronyms used in this document. TERM DEFINITION EVB Evaluation Board HID Human Interface Device I2C Inter-Integrated Circuit USB Universal Serial Bus EC Embedded Controller SF Sensor Fusion THE MICROCHIP WEB SITE Microchip provides online support via our web site at www.microchip.com. This web site is used as a means to make files and information easily available to customers. Accessible by using your favorite Internet browser, the web site contains the following information: • Product Support – Data sheets and errata, application notes and sample programs, design resources, user’s guides and hardware support documents, latest software releases and archived software • General Technical Support – Frequently Asked Questions (FAQs), technical support requests, online discussion groups, Microchip consultant program member listing • Business of Microchip – Product selector and ordering guides, latest Microchip press releases, listing of seminars and events, listings of Microchip sales offices, distributors and factory representatives 2014 - 2015 Microchip Technology Inc. DS50002322D-page 7 MM7150 Motion Module PICtailTM Plus Evaluation Board (#AC243007) with Explorer 16 Development Board User’s Guide DEVELOPMENT SYSTEMS CUSTOMER CHANGE NOTIFICATION SERVICE Microchip’s customer notification service helps keep customers current on Microchip products. Subscribers will receive e-mail notification whenever there are changes, updates, revisions or errata related to a specified product family or development tool of interest. To register, access the Microchip web site at www.microchip.com, click on Customer Change Notification and follow the registration instructions. The Development Systems product group categories are: • Compilers – The latest information on Microchip C compilers, assemblers, linkers and other language tools. These include all MPLAB C compilers; all MPLAB assemblers (including MPASM assembler); all MPLAB linkers (including MPLINK object linker); and all MPLAB librarians (including MPLIB object librarian). • Emulators – The latest information on Microchip in-circuit emulators.This includes the MPLAB REAL ICE and MPLAB ICE 2000 in-circuit emulators. • In-Circuit Debuggers – The latest information on the Microchip in-circuit debuggers. This includes MPLAB ICD 3 in-circuit debuggers and PICkit 3 debug express. • MPLAB IDE – The latest information on Microchip MPLAB IDE, the Windows Integrated Development Environment for development systems tools. This list is focused on the MPLAB IDE, MPLAB IDE Project Manager, MPLAB Editor and MPLAB SIM simulator, as well as general editing and debugging features. • Programmers – The latest information on Microchip programmers. These include production programmers such as MPLAB REAL ICE in-circuit emulator, MPLAB ICD 3 in-circuit debugger and MPLAB PM3 device programmers. Also included are nonproduction development programmers such as PICSTART Plus and PIC-kit 2 and 3. CUSTOMER SUPPORT Users of Microchip products can receive assistance through several channels: • • • • Distributor or Representative Local Sales Office Field Application Engineer (FAE) Technical Support Customers should contact their distributor, representative or field application engineer (FAE) for support. Local sales offices are also available to help customers. A listing of sales offices and locations is included in the back of this document. Technical support is available through the web site at: http://www.microchip.com/support DS50002322D-page 8 2014 - 2015 Microchip Technology Inc. Preface DOCUMENT REVISION HISTORY Revision Correction DS500002322D (10-29-15) • Updated information for sample code version 1.3.4 • Added section 3.6 “Free Fall Mode” • Updated section 4.2.3 error code DS500002322C (07-02-15) • • • • • DS50002322B (02-18-15) • Added section 3.4 for Sleep/Wake feature • Added section 3.5 for Flash Update feature, updated corresponding sections • Changed UART baud rate from custom 125000 to standard 19200 • Updated all the figures to show the v1.3.2 sample code • Updated the correct Document Numbers in the Reference Section • Added section 1.1 for hardware requirements • Added section 2.1 for software/firmware requirements • Section 3.2 “Calibrating Sensors” removed DS50002322A (11-07-14) Initial Release 2014 - 2015 Microchip Technology Inc. Added section 3.2 “Calibrating Sensors” Added section 3.5.2 “Flash Configuration Update” feature Added Appendix C “Extension Cable” info Updated all pictures with latest production MM7150-PICtail Updated all figures for sample code v1.3.3 DS50002322D-page 9 MM7150 MOTION MODULE PICTAILTM PLUS EVALUATION BOARD (#AC243007) WITH EXPLORER 16 DEVELOPMENT BOARD USER’S GUIDE Chapter 1. Hardware Setup 1.1 HARDWARE REQUIREMENTS • • • • • 1.2 Microchip Explorer 16 Development Board Microchip MM7150-PICtail Motion Module PICtail Board Microchip PICKit3 or ICD3 or RealICE debugger Null-Modem Serial Cable USB-to-Serial Adapter PREPARING THE EXPLORER 16 DEVELOPMENT BOARD • • • • Insert PIM PIC24FJ128GA010 at Explorer 16 U1A socket Insert strap J7 for PIC24 S2 switch selected for PIM Connect MPLAB ICD3 (or REAL ICE) In-Circuit Debugger module from HOST PC to JP1 • Connect USB-to-Serial Adapter capable of 19200 baud rate from HOST USB Port to Explorer 16 P1 - USB-to-Serial Adapter such as Microchip MCP2200 USB to RS232 Demo Board (Microchip part#: MCP2200EV-VCP) Note: Configure Terminal Emulation Software (ex. Tera Term) for 19200 baud, 8 bits, No Parity, 1 Stop Bit, No Flow Control. • Power Supply (+9V) at J12 1.3 HARDWARE CONNECTIONS FOR MM7150-PICTAIL TO EXPLORER 16 BOARD Note: 1.3.1 Before attempting to connect the MM7150-PICtail with PICtail™ Plus Edge connector module to the Explorer 16 board, it is crucial that the power supply to the Explorer 16 be disconnected. Failure to do so may damage the MM7150 Motion Module. Direct Plug-In The MM7150-PICtail can be installed directly into the Explorer 16 Board. Insert the MM7150-PICtail into the PICtail™ header J5 with pin 1 of the module lining up with pin 1 of the header, as seen in Figure 1-1. 2014 - 2015 Microchip Technology Inc. DS50002322D-page 10 Hardware Setup FIGURE 1-1: DIRECT CONNECTION OF MM7150-PICTAIL TO THE EXPLORER 16 PICTAIL™ HEADER. 1.3.2 Using Extension Cable The MM7150-PICtail motion module can be connected to the Explorer 16 development board via a custom extension cable. Using an extension cable will allow freedom of movement compared with directly inserting the MM7150-PICtail board into the PICtail header on the Explorer 16 board. Please see Appendix C. “Extension Cable for Explorer 16” for more information. 2014 - 2015 Microchip Technology Inc. DS50002322D-page 11 MM7150 MOTION MODULE PICTAILTM PLUS EVALUATION BOARD (#AC243007) WITH EXPLORER 16 DEVELOPMENT BOARD USER’S GUIDE Chapter 2. Software/Firmware Setup 2.1 SOFTWARE/FIRMWARE REQUIREMENTS • Microchip MPLABX IDE v2.06 or later • Microchip XC16 Compiler v1.24 or later • MM7150_Exp16_Sample_Code_v1.3.4 Note: The latest sample code is available at www.microchip.com/motion or please contact your Microchip representative for more information. • SSC7150 Motion Coprocessor Firmware Binary - The firmware can be updated using the flash update feature as described in Section 3.5.1 “Flash Update command”. - The firmware binary object code is encrypted and the update process is secured. Note: The latest firmware binary file is available at www.microchip.com/motion or please contact your Microchip representative for more information. • MM7150 Module Configuration Firmware Binary - The configuration data can be updated using the update feature as described in Section 3.5.2 “Flash Configuration Update Command”. 2.2 MPLABX PROJECT: • Start MPLABX IDE as shown in Figure 2-1. FIGURE 2-1: MPLABX IDE STARTUP SCREEN • File->Open Project Navigate to project directory and select Open Project as shown in Figure 2-2. 2014 - 2015 Microchip Technology Inc. DS50002322D-page 12 Software/Firmware Setup FIGURE 2-2: OPEN PROJECT • Motion Demo Project Loaded as shown in Figure 2-3: FIGURE 2-3: 2014 - 2015 Microchip Technology Inc. PROJECT IS OPENED DS50002322D-page 13 MM7150 Motion Module PICtailTM Plus Evaluation Board (#AC243007) with Explorer 16 Development Board User’s Guide • With Explorer 16 power applied, make the project and download to Explorer 16 flash as shown in Figure 2-4: FIGURE 2-4: SELECT DOWNLOAD OPTION • Output screen during build process as shown in Figure 2-5: FIGURE 2-5: DS50002322D-page 14 BUILD PROCESS OUTPUT 2014 - 2015 Microchip Technology Inc. MM7150 MOTION MODULE PICTAIL(TM) PLUS EVALUATION BOARD (#AC243007) WITH EXPLORER 16 DEVELOPMENT BOARD USER’S GUIDE Chapter 3. Demo Setup 3.1 RUNNING THE MOTION DEMO Note: Using a debugger will necessitate cycling power to the connected MM7150-PICtail to reset its onboard EC (embedded controller). The easiest way to accomplish this while debugging code is to remove/install power to the Explorer 16 Development board with the MM7150-PICtail installed in J5 header. DO NOT attempt to unplug the MM7150-PICtail while power is applied to it through its connection to the Explorer 16 Development board. This can cause a power spike to the MM7150-PICtail and cause it to become inoperative. Once the program has been built and downloaded/programmed successfully to Explorer 16 Flash, the user should observe a sequence of LED flashes on the Explorer 16 board’s LED panel. The user should then observe the following message on the Explorer 16 board’s LCD screen: MM7150 Demo v134 Select mode: Additionally the following message will appear in the serial terminal window on the connected computer: Note: Beginning with revision 1.3.4 of the sample code, the build number of the firmware currently loaded on the SSC7150 device is displayed (as shown). FIGURE 3-1: FIRMWARE REVISION DISPLAYED Once this message has been displayed, the user can begin navigating the user menu using the Explorer 16 push buttons (S3/S6/S5/S4). The buttons are coded as follows: 2014 - 2015 Microchip Technology Inc. DS50002322D-page 15 MM7150 Motion Module PICtail(TM) Plus Evaluation Board (#AC243007) with Explorer 16 Development Board User’s Guide FIGURE 3-2: MM7150-PICTAIL ON EXP16 OVERVIEW As the UP/DOWN buttons are pressed, the Explorer 16 LCD screen will refresh and change the position of the selection cursor (“>") to a list of available sensor types. The output to the serial monitor will also change to indicate the current sensor type which can be selected by pressing the (S5) SELECT button. Once the user selects a sensor from the menu, the sensor data output will be displayed and updated on both the LCD and serial monitor. 3.2 CALIBRATING SENSORS 3.2.1 Calibration Mode In order for the sensors to function properly and indicate accurate data the user will need to calibrate the MM7150 each time power has been removed. This calibration is done by selecting the “Calibration” mode as shown in Figure 3-3, holding the MM7150-PICtail which is attached via an extension cable (see Appendix C. “Extension Cable for Explorer 16” for more information), or if not using an extension cable, by holding the entire Explorer 16 board with MM7150-PICtail installed, and moving it through space a few times (~ 5 seconds) to make an “infinity” symbol or a “figure 8”. DS50002322D-page 16 2014 - 2015 Microchip Technology Inc. Demo Setup FIGURE 3-3: 3.2.2 CALIBRATION MODE One-time Calibration Mode Calibration of sensors is based on magnetic fields and magnetic flux present at the time of calibration. In the event that the MM7150-PICtail was factory calibrated in a part of the world where the magnetic flux differs significantly from its present location, the one-time calibration may be useful. One-time calibration is similar to normal calibration with one distinct difference, the final calibration will be save to NVM (Non-Volatile-Memory) upon completion. CAUTION: Although one-time calibration appears to be a viable solution to the normal “quick” calibration each time power is removed from the MM7150-PICtail, extreme caution must be exercised in the use of the one-time calibration. The MM7150-PICtail, like all devices containing flash memory, has a limited life-cycle for updating flash memory. It is strongly recommended that the one-time calibration is only used for cases where the MM7150-PICtail’s calibration is drastically inaccurate due to magnetic field conditions that are vastly different in new locations. Even in such cases, the one-time calibration and update to NVM should be used “sparingly”. Note: One-time calibration requires sleep/wake cycle in order to affect the changes to NVM. The HOST_TO_SH_WAKE signal MUST be provided if using an Exp16 to MM7150-PICtail extension cable. The one-time calibration can only be completed if the NVM (Non-Volatile Memory) update flag has not been set for the current power cycle. If the NVM update flag is already set the only recourse is to Power-On Reset (POR) the Explorer16 with connected MM7150-PICtail. FIGURE 3-4: 2014 - 2015 Microchip Technology Inc. ONE-TIME CALIBRATION - NVM UPDATE FLAG IS SET DS50002322D-page 17 MM7150 Motion Module PICtail(TM) Plus Evaluation Board (#AC243007) with Explorer 16 Development Board User’s Guide One-time calibration selected from main menu: FIGURE 3-5: ENTER ONE-TIME CALIBRATION Press push-button S4 to start calibration. Similar to the “normal” calibration the MM7150-PICtail is moved through space in a figure-8 to facilitate calibration. For this mode the program will collect calibration data for at least 5 seconds and then check that the “high accuracy” flag has been set. Once this state has been achieved, the MM7150-PICtail is put to sleep and wakes in order to save the calibration settings to NVM FIGURE 3-6: 3.3 ONE-TIME CALIBRATION COMPLETED SENSOR DATA DISPLAY Once calibrated the active sensors on the MM7150 motion module will send updates to the PIC24 on the Explorer 16 board running the application program via I2C in the form of HID packets including all relevant dimensions of data to be retrieved from the device. These sensor readings will be displayed on the LCD (as well as the COM port in a ‘linear’ formatting): 1D data: 3D data: 4D data: DS50002322D-page 18 79.0 X: 50.3 X: 1.021 Y: 75.6 Y:-.642 Z: -32.9 Z:-.458 W: .348 2014 - 2015 Microchip Technology Inc. Demo Setup Note: Significant digits will vary based on resolution of specific sensor. This resolution can be determined by the unit exponent scaling factor. Serial data will always be displayed to 3 significant digits. Sample output to COM port running Tera Term serial emulator: FIGURE 3-7: DISPLAY INCLINOMETER DATA The sensor data is updated to the display every time a data register has changed since the previous update. 3.4 SLEEP/WAKE The MM7150 motion module can be set to enter deep sleep to achieve its lowest power consumption. In the Explorer 16 sample code this can be accomplished by selecting the SLEEP command from the main menu. The Explorer 16 host will send a POWER_OFF command through the I2C interface. As a result of this SLEEP command the MM7150 motion coprocessor is halted and the I2C interface is stopped. Select the WAKE command from the Explorer 16 main menu to wake the MM7150 motion module. This command will toggle the HOST_TO_SH_WAKE signal to alert the MM7150 to wake, send the POWER_ON command via I2C interface, and wait the required time to allow the MM7150 to fully wake and allow sensor activity to resume. 2014 - 2015 Microchip Technology Inc. DS50002322D-page 19 MM7150 Motion Module PICtail(TM) Plus Evaluation Board (#AC243007) with Explorer 16 Development Board User’s Guide The sleep/wake process requires that certain timing constraints must be observed (shown below in Figure 3-1). TABLE 3-1: SLEEP / WAKE TIMING CONSTRAINTS Delay period Reason 1 Required delay between sending the SLEEP command & toggling WAKE 70ms This is required for the coefficient write in flash during D3 plus other housekeeping activities to go into D3 state 2 Required delay between toggling (3 µs min) the wake signal and sending power ON command 11ms This is required for clock source switching after coming out of D3 state 3 Required delay between D3 wake and enumeration sequence start 30ms This is required for sensor initialization after D3 state 3.5 FLASH UPDATE The MM7150 motion module firmware can be updated with the appropriate binary image (please refer to Section 2.1 “Software/Firmware requirements” for more information) by selecting Flash Update from the Explorer 16 main menu. The Explorer 16 sample code will reset the MM7150 module into a state able to accept the new binary image, download and CRC-check a valid binary image, program new MM7150 firmware binary via I2C interface, and finally perform image verification. Note: 3.5.1 The Explorer 16’s UART connection will be used to download the flash update binary and, as such, must be connected to a HOST PC running a terminal emulator (such as Tera Term as described in Section 1.2 “Preparing the Explorer 16 Development Board”). Flash Update command Figure 3-8 shows the Flash Update Command from the Exp 16 sample code select menu. FIGURE 3-8: FLASH UPDATE COMMAND Select “File->Send file…” from Tera Term utility (NOTE: Select Binary Option). DS50002322D-page 20 2014 - 2015 Microchip Technology Inc. Demo Setup FIGURE 3-9: SELECT BINARY FILE FIGURE 3-10: DOWNLOADING BINARY IMAGE 2014 - 2015 Microchip Technology Inc. DS50002322D-page 21 MM7150 Motion Module PICtail(TM) Plus Evaluation Board (#AC243007) with Explorer 16 Development Board User’s Guide FIGURE 3-11: FLASH UPDATE SUCCESSFUL COMPLETION Selection of the Flash Update mode will require cycling power to the Explorer 16 (and attached MM7150-PICtail) regardless if the flash update procedure is successful, aborted, or an error is encountered. Initial setup for this flash update sequence requires the MM7150 to enter "BootLoader" mode from which normal operation is not possible, therefore a POR to the MM7150-PICtail is required. 3.5.2 Flash Configuration Update Command The X/Y/Z orientation of the MM7150 module on the customer’s design can be modified and saved to the MM7150’s flash. The default orientation of the A/M/G sensors of MM7150 (placed horizontally) is: DS50002322D-page 22 2014 - 2015 Microchip Technology Inc. Demo Setup For this case, the inputs to the motion algorithm (running in MM7150 firmware) can be represented by the following 3x3 matrix (Accelerometer for example): Matrix[3, 3] = [A00, A01, A02; A10, A11, A12; A20, A21, A22]; where Axx could be 0, 1, or -1. So, for the horizontal orientation shown above and assuming that X/Y/Z are data read from the hardware sensor and X’/Y’/Z’ are data input to the motion algorithm: X’ = A00*x + A01*y + A02*z Y’ = A10*x + A11*y + A12*z Z’ = A20*x + A21*y + A22*z Since the input matrix corresponds one to one in X/Y/Z to the output matrix, we obtain the following: X’ = 1*x + 0*y + 0*z Y’ = 0*x + 1*y + 0*z Z’ = 0*x + 0*y + 1*z i.e. Resulting matrix[3, 3] = [1,0,0; 0,1,0; 0,0,1;] This orientation configuration data must be sent to the appropriate sector in the MM7150 firmware in the following format: TABLE 3-2: CONFIGURATION DATA FORMAT FOR HORIZONTAL Name Values Header A5A5A5A5 Serial_num 00000000 ACC_matrix 010000000100000001 MAG_matrix 010000000100000001 GYR_matrix 010000000100000001 Reserved 00 ACC_config 01010110 MAG_config 02010112 GYR_config 03010168 Reserved 04010144 Reserved 05010177 Reserved 06000000 Reserved 07000000 Reserved 08000000 Reserved 09000000 Reserved 0A000000 Chk_sum 23040000 (see Note 1) Padded FF’s for 128 byte packet Note 1: Check sum will be calculated by the sample code flash configuration update command, as a result this field will be ignored and can be: 00000000. 2014 - 2015 Microchip Technology Inc. DS50002322D-page 23 MM7150 Motion Module PICtail(TM) Plus Evaluation Board (#AC243007) with Explorer 16 Development Board User’s Guide For example, the XYZ matrix result for the accelerometer (acc_matrix) takes the form of: ACC_matrix = 01 00 00 (X=1,0,0) 00 01 00 (Y=0,1,0) 00 00 01 (Z=0,0,1) For MM7150_Exp16_Sample_Code_v1.3.4, the flash configuration data needs to be in the following binary file format (derived from the above text file): FIGURE 3-12: CONFIGURATION DATA BINARY FOR HORIZONTAL Similarly, for the A/M/G sensors of the MM7150 placed vertically (such as when plugged into the Explorer 16 card): For the vertical orientation shown above and assuming that X/Y/Z are data read from the hardware sensor and X’/Y’/Z’ are data input to the motion algorithm with respect to the default X/Y/Z settings: X’ = A00*x + A01*y + A02*z Y’ = A10*x + A11*y + A12*z Z’ = A20*x + A21*y + A22*z Since, for this case, the input matrix does not correspond one to one in X/Y/Z to the output matrix, we obtain the following translations: X’ = 1*x + 0*y + 0*z DS50002322D-page 24 2014 - 2015 Microchip Technology Inc. Demo Setup Y’ = 0*x + 0*y - 1*z Z’ = 0*x + 1*y + 0*z i.e. Resulting matrix[3, 3] = [1,0,0; 0,0,-1; 0,1,0;] This vertical configuration data can be sent to the appropriate sector in the MM7150 firmware in the following format: TABLE 3-3: CONFIGURATION DATA FORMAT FOR VERTICAL Name Values Header A5A5A5A5 Serial_num 00000000 ACC_matrix 0100000000FF000100 MAG_matrix 0100000000FF000100 GYR_matrix 0100000000FF000100 Reserved 00 ACC_config 01010110 MAG_config 02010112 GYR_config 03010168 Reserved 04010144 Reserved 05010177 Reserved 06000000 Reserved 07000000 Reserved 08000000 Reserved 09000000 Reserved 0A000000 Chk_sum 1D070000 (see Note 1) Padded FF’s for 128 byte package For MM7150_Exp16_Sample_Code_v1.3.4 the flash configuration data must adhere to the following binary file format: FIGURE 3-13: CONFIGURATION DATA BINARY FOR VERTICAL 2014 - 2015 Microchip Technology Inc. DS50002322D-page 25 MM7150 Motion Module PICtail(TM) Plus Evaluation Board (#AC243007) with Explorer 16 Development Board User’s Guide Using the sample code’s Flash Configuration Update mode: FIGURE 3-14: FLASH CONFIGURATION DATA MODE Select “File->Send file...” from TeraTerm utility: (NOTE: Select Binary Option). FIGURE 3-15: SELECT BINARY FILE DS50002322D-page 26 2014 - 2015 Microchip Technology Inc. Demo Setup Select “Open” to download binary file to flash. Following successful completion of the flash configuration update procedure (or if any error is encountered), the Explorer 16 must be power cycled (POR). Note: FIGURE 3-16: Should an issue arise due to incorrect formatting of binary data, the MM7150 Flash can be restored using the Flash Update command in Section 3.5.1 “Flash Update command”. FLASH CONFIGURATION UPDATE SUCCESSFUL 3.6 FREEFALL MODE Free-fall detection by the MM7150 at the present time is not supported in the MM7150 firmware. Included in the Explorer16 with MM7150 sample code version 1.3.4 is a software solution to demonstrate free-fall detection of the MM7150. Free-fall is the acceleration of a device due to the effects of gravity. The simplest type of free-fall is “linear” free-fall wherein the orientation of the device remains constant along its three axes as it moves or falls. Output from the accelerometer is based on the effects (or acceleration) of gravity. The accelerometer is used to detect when a device is free-falling. Starting from a stationary or static orientation, a device will have X=0g, Y=0g, and Z =-1g accelerometer readings. The X and Y 0g readings occur because these vectors are perpendicular to gravity and thus gravity has no effect on them. How- 2014 - 2015 Microchip Technology Inc. DS50002322D-page 27 MM7150 Motion Module PICtail(TM) Plus Evaluation Board (#AC243007) with Explorer 16 Development Board User’s Guide ever, for the Z = -1g reading, the 1g is due to the Z axis or vector being parallel to the gravity component acting on the device in the downward direction and “-“ refers to the direction opposite the effect of gravity. For example, a MM7150-PICtail with a horizontal configuration (stored in flash, see Section 3.5.2 “Flash Configuration Update Command”) is held in a static horizontal position then the X,Y, and Z components (of acceleration) are found to be: X=0, Y=0, Z=-1. (Refer to Figure 3-17 below, X = 0g because this vector is perpendicular to gravity, so also for Y = 0g. Z = -1g because its axis is parallel and opposite the direction of gravity.) When the MM7150-PICtail device is dropped, and considering linear free-fall only, all three axes will converge to ideally 0g. FIGURE 3-17: MM7150 IN HORIZONTAL POSITION (GRAVITY IN NEGATIVE Z-AXIS) For the sample code demonstration, the accelerometer is configured for maximum sensitivity (= 0) and data rate (=10 ms). In order to achieve a data rate = 10 ms per sample, the output to the UART and LCD screens, which cause a viable delay during output display, are disabled temporarily while the accelerometer data is collected. An extension cable must be used (see Appendix C. “Extension Cable for Explorer 16”) for the Explorer 16 to MM7150-PICtail in order to drop the device onto a soft landing surface. It is virtually impossible to preserve the orientation of the MM7150-PICtail (i.e. prevent it from tilting, rotating, or spinning) during the fall without a specialized test setup so the sample code factors-in an offset for the X,Y, and Z readings during the collection of the accelerometer data. When the X, Y, and Z readings are within the expected range, all approaching zero, and continue for successive readings, free-fall is determined to be occurring. Free-fall can be detected at heights above ~1” from the soft landing pad. Impact with the landing pad will also be determined by observing accelerometer readings in excess of 1g. DS50002322D-page 28 2014 - 2015 Microchip Technology Inc. Demo Setup FIGURE 3-18: FREE FALL DETECTION MODE The data logging begins when the first X,Y,Z readings are below the expected threshold and all approaching zero. The “free-falling” determination is made if two successive readings are within the predetermined range. Any discrepancies in the data logging are due to changes in orientation of the MM7150-PICtail device as it falls. Finally, as seen in Figure 3-19, “impact” with the “ground” or landing pad is also determined. FIGURE 3-19: FREE FALL DETECTION LOGGING 2014 - 2015 Microchip Technology Inc. DS50002322D-page 29 MM7150 MOTION MODULE PICTAILTM PLUS EVALUATION BOARD (#AC243007) WITH EXPLORER 16 DEVELOPMENT BOARD USER’S GUIDE Chapter 4. Troubleshooting This chapter describes troubleshooting potential issues and fixes. 4.1 FAILURE TO DISPLAY WELCOME SCREEN If the welcome message fails to display on the Explorer 16 LCD screen and error messages depicted below appear in the debugger’s output (using Microchip ICD3 or REAL ICE debugger for instance), the most likely cause is a failure to disconnect and reconnect power to the MM7150-PICtail. This is accomplished by disconnecting and reconnecting power to the Explorer 16 board before restarting the demo. This process serves as a ‘hard reset’ for the SSC7150 on the MM7150-PICtail, allowing I2C communication to reinitialize and restart. FIGURE 4-1: ERROR MESSAGE IN DEBUGGER’S TAB Note: FIGURE 4-2: If user is running on a different debugger (eg: ICD3, Real ICE etc.) the message would appear in that debugger’s output tab. ERROR MESSAGE IN DEBUGGER CONSOLE TAB. 2014 - 2015 Microchip Technology Inc. DS50002322D-page 30 Troubleshooting 4.2 ERROR HANDLING 4.2.1 Note: General Error Handling for VREG Functions Please refer to “DS00001873A - Host API Design for MM7150-PICtail Motion Module Application Note” for more information regarding virtual registers (VREG) defined and used in the sample code. VREG functions which fail to complete due to certain hardware events may display error information via error handling output on the Explorer 16 board’s LCD screen and on the serial terminal window on the connected computer. For example, in the case of a VREG Read operation of register 16h which encounters a problem while reading data in response to receiving a HIDI2C_HOST_INT (which indicates that a MM7150 sensor has data available) the following will be displayed on the Explorer 16 board’s LCD: VRRd:16 err=0x31 Push S5 to cont where: VRRd:16 - Attempting a VREG Read operation on register 16h (VREG ACXD register) err=0x31 – Error code generated (see error code definitions in Section 4.2.3) Push S5 to cont - Press button S5 to attempt to recover from the reported error The same error is displayed on the serial terminal window on the connected computer: FIGURE 4-3: SERIAL TERMINAL GENERAL ERROR HANDLING DISPLAY TABLE 4-1: GENERAL ERROR HANDLER FUNCTION ABBREVIATION Function Error Handler Output Abbreviation VREG_init( ) Vini HOST_SF_LIB_VREG_read( ) VRRd HOST_SF_LIB_VREG_write ( ) VRWr I2cIO( ) i2c 2014 - 2015 Microchip Technology Inc. DS50002322D-page 31 MM7150 Motion Module PICtailTM Plus Evaluation Board (#AC243007) with Explorer 16 Development Board User’s Guide 4.2.2 I2C Error Handling Upper level functions which employ I2C function calls for the Explorer 16 board’s PIC24 to MM7150 interface that fail to complete will display error information. The I2C error handling display is output on the Explorer 16 board’s LCD screen and on the serial terminal window on the connected computer. Note: Most, if not all, I2C errors are hardware dependent. As this sample code is specific to the PIC24 on the Explorer 16 board, I2C errors are simply flagged as an error to illustrate where the issue was encountered. For this demo, in the rare event that a fully functional I2C interface encounters an error, the error “recovery” method will require resetting the Explorer 16 board and, hence, the connected MM7150-PICtail. For example, in the case of an i2cIO operation which encounters an issue, wherein the MM7150 fails to ACK properly, the following will be displayed on the Explorer 16 board’s LCD: i2c error=0x29 POR Exp16 Board where: i2c - error occurred in i2cIO() function error=0x29 – error code generated (see error code definitions in Section 4.2.3) POR Exp16 Board - Power On Reset Explorer 16 board (and connected MM7150-PICtail) The same error is displayed on the serial terminal window on the connected computer: FIGURE 4-4: DS50002322D-page 32 SERIAL TERMINAL I2C ERROR HANDLING DISPLAY 2014 - 2015 Microchip Technology Inc. Troubleshooting 4.2.3 Error Definitions (from source/headers/err.h) Error Value Definition Module/Type 0 SUCCESS 10h ID_FAIL sf.c 11h HID_DESC_FAIL sf.c 12h RPT_DESC_FAIL sf.c 14h REP_PARS_FAIL sf.c 15h NO_EOC_FAIL sf.c 16h RESET_FAIL sf.c 17h POWER_ON_FAIL sf.c 18h GET_FEAT_FAIL sf.c 19h SET_FEAT_FAIL sf.c 1Ah SET_RPT_FAIL sf.c 1Bh SLEEP_CMD_FAIL sf.c 1Ch HID_GET_RPT_INPT_FAIL sf.c 1Dh HID_GET_RPT_FEAT_FAIL sf.c 1Eh WAKE_CMD_FAIL sf.c 21h I2C_ERROR i2cIO.c 22h I2C_BUF_OVERFLO i2cIO.c 23h WRITE_COLL i2cIO.c 24h NOT_ACK i2cIO.c 25h BUS_COLL i2cIO.c 26h RX_OVRFLO i2cIO.c 27h HID_DESC_RET i2CIO.c 28h REP_DESC_RET i2cIO.c 29h I2C_TIMEOUT_ERR i2cio.c 31h HID_INT_FAIL vregs.c 32h VREG_ACCESS_ERR vregs.c 33h VREG_OFFSET_ERR vregs.c 41h FLSH_INFO_ERR flash_update.c 42h FLSH_WRITE_ERR flash_update.c 43h FLSH_VERIFY_ERR flash_update.c 44h FLSH_CRC_ERR flash_update.c 2014 - 2015 Microchip Technology Inc. DS50002322D-page 33 MM7150 MOTION MODULE PICTAILTM PLUS EVALUATION BOARD (#AC243007) WITH EXPLORER 16 DEVELOPMENT BOARD USER’S GUIDE Appendix A. Code Structure A.1 DIRECTORY STRUCTURE 2014 - 2015 Microchip Technology Inc. DS50002322D-page 34 Code Structure TABLE A-1: DIRECTORY STRUCTURE OF THE SENSOR FUSION SAMPLE CODE Files \source\headers\app.h Description Include for all other underlying h files and typedefs \source\headers\err.h Functions and parameters for error handling \source\headers\flash_update.h Functions for flash update \source\headers\i2cIO.h Functions and parameters specific to I2C communication with MM7150 module \source\headers\interrupts.h Interrupt functions \source\headers\lcd.h Functions relevant to LCD operation \source\headers\sf.h Functions relevant to decoding and encoding HID commands and packets \source\headers\system.h Functions relevant to running the demo Functions relevant to the creation of the virtual register layer of the MM7150 API library Error handling functions for I2C and VREG operations \source\headers\vregs.h \source\src\err.c \source\src\flash_update.c Functions for flash update. \source\src\i2cIO.c Functions to communicate with MM7150 Module via I2C Interrupt initialization and handler for INT1 (from EC-Host-interrupt), T2 (timer2 interrupt), and CN (change notification interrupt from buttons) LCD support for Explorer 16 board \source\src\interrupts.c \source\src\lcd.c \source\src\main.c \source\src\sf.c \source\src\system.c \source\src\utils.c \source\src\vregs.c 2014 - 2015 Microchip Technology Inc. Functions to setup Explorer 16 board environment, COM port UART2, interrupts, timers, I2C, HID_initialization, start HID handshaking with EC via I2C commands Functions to get HID tables from MM7150 Module, send power and reset HID commands, get HID report descriptors, parse descriptors, get input from sensor devices Initiates the motion demo by configuring LED’s, LCD, Serial, and buttons Assorted functions Mediator between HID-I2C communication and user Commands (interactive layer of API) DS50002322D-page 35 MM7150 Motion Module PICtailTM Plus Evaluation Board (#AC243007) with Explorer 16 Development Board User’s Guide A.2 PROGRAM FLOW A.2.1 FIGURE A-1: Main.c PROGRAM FLOW CHART sys_init( ): Initialize interrupts, LED’s, LCD screen, buttons, and serial communication (19200 baud) features VREG_init(): Initialize VREGS; Retrieve HID & report descriptors, and all device features display_menu(): Display menu to user and begin handling button presses until a selection is made features A.2.2 Note: Enable user’s selected sensor; set its sensitivity and data reporting rate; retrieve the unit exponent factor for the data Retrieve and display sensor data until the user presses reset button to exit, and disable user’s selected sensor Configuring and Initializing MM7150 Motion Module For a more comprehensive explanation of the API library functions, see the Host API Design for MM7150 Application Note. VREG_init (VREGS.c) – procedure for preparing motion module for data reporting 1. hid_i2c_descriptor_handler(GET_HID_DESC) - Retrieve and parse the HID descriptor table 2. hid_i2c_cmd_process (POWER_ON) - Wake the EC 3. hid_i2c_cmd_process (RESET) - Reset the EC 4. hid_i2c_descriptor_handler(GET_REPT_DESC) - Retrieve and parse report descriptor table 5. hid_i2c_cmd_process (HID_GET_RPT_FEAT, rept_ID) - Get feature reports for sensors A.2.3 Enabling Sensors and Reading data 1. HOST_SF_LIB_write(0, 0bXXXXXXXXXX0101) - Enable one or multiple sensors 2. HOST_SF_LIB_write regX, sensitivity value - Optional - edit sensitivity per sensor 3. HOST_SF_LIB_write regX, data rate value - Optional - edit data rate per sensor 4. HOST_SF_LIB_write(DATA_REG) - Read input data from the enabled sensors DS50002322D-page 36 2014 - 2015 Microchip Technology Inc. MM7150 MOTION MODULE PICTAILTM PLUS EVALUATION BOARD (#AC243007) WITH EXPLORER 16 DEVELOPMENT BOARD USER’S GUIDE Appendix B. Reference Schematic & Bill of Materials B.1 MM7150 MOTION MODULE PICTAIL TM PLUS EVALUATION BOARD B.1.1 Designator Bill of Materials Quantity Description Value J1 1 CON HDR-2.54 Male 1x4 Gold 5.84MH TH VERT HDR-2.54 Male 1x4 J2 1 CON HDR-2.54 Male 1x6 Tin 5.84MH TH VERT HDR-2.54 Male 1x6 J3 1 CON HDR-2.54 Female 1x6 Gold TH R/A HDR-2.54 Female 1x6 JP1, JP2, JP3 3 CON HDR-2.54 Male 1x2 HDR-2.54 Male 1x2 LED1, LED2 2 DIO LED YELLOW 2.1V 30mA 6mcd Clear SMD 0805 YELLOW LED3 1 LED 3MM RT ANG HI EFF GRN PC MNT - Dialight 551-0209F GREEN R1, R2, R4 3 RES TKF 301R 1% 1/10W SMD 0603 301R R3, R5 2 RES TKF 10k 1% 1/16W SMD 0603, RES TKF 0R 1/10W SMD 0603 10k, DNP R6 1 RES TKF 0R 1/10W SMD 0603 0R R7, R8 2 RES TKF 2.21k 1% 1/10W SMD 0603 2.21k R9 1 RES TKF 2.21k 1% 1/10W SMD 0603 DNP U1 1 MM7150 Motion Module B.1.2 Reference Schematic The MM7150 Motion Module PICtail TM Plus Evaluation Board (#AC243007) reference schematic is shown in the next page. 2014 - 2015 Microchip Technology Inc. DS50002322D-page 37 2014 - 2015 Microchip Technology Inc. MM7150 Motion Module PICtailTM Plus Evaluation Board (#AC243007) with Explorer 16 Development Board User’s Guide DS50002322D-page 38 MM7150 MOTION MODULE PICTAILTM PLUS EVALUATION BOARD (#AC243007) WITH EXPLORER 16 DEVELOPMENT BOARD USER’S GUIDE Appendix C. Extension Cable for Explorer 16 Please refer to MM7150-PICTail Reference Schematic (B.1.2 “Reference Schematic”) and create an extension cable of up to 20” (with proper shielding) for ease of motion during calibration. Note: C.1 Per industry data, I2C bus at 400KHz without buffer can have length up to 2 meters with limiting factor of wiring capacitance. Designers should take this into consideration if planning to build longer extension cable which is out of scope of this user’s guide. SIGNALS CONNECTION TABLE C-1: CONNECTION SUMMARY BETWEEN MM7150 TO EXP16 BOARD Signal Name SSC7150 Module Pin SSC7150 J3 Header MM7150 Module Z1 PICtail Connector Exp16 J6 Header Name Exp16 J6 Header Pin +3.3V 7 1 21 +3.3V 21 GND 8 2 15 GND 9 HIDI2C_HOST_INT 4 3 18 RE8/INT1 18 HIDI2C_HOST_DAT 16 5 8 RG3/SDA1 8 HIDI2C_HOST_CLK 15 6 6 RG2/SCL1 6 HOST_TO_SH_WAKE 1 NC 17 RE9 17 2014 - 2015 Microchip Technology Inc. DS50002322D-page 39 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://www.microchip.com/ support Web Address: www.microchip.com Asia Pacific Office Suites 3707-14, 37th Floor Tower 6, The Gateway Harbour City, Kowloon China - Xiamen Tel: 86-592-2388138 Fax: 86-592-2388130 Austria - Wels Tel: 43-7242-2244-39 Fax: 43-7242-2244-393 China - Zhuhai Tel: 86-756-3210040 Fax: 86-756-3210049 Denmark - Copenhagen Tel: 45-4450-2828 Fax: 45-4485-2829 India - Bangalore Tel: 91-80-3090-4444 Fax: 91-80-3090-4123 France - Paris Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 India - New Delhi Tel: 91-11-4160-8631 Fax: 91-11-4160-8632 Germany - Dusseldorf Tel: 49-2129-3766400 Atlanta Duluth, GA Tel: 678-957-9614 Fax: 678-957-1455 Hong Kong Tel: 852-2943-5100 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 Austin, TX Tel: 512-257-3370 China - Chengdu Tel: 86-28-8665-5511 Fax: 86-28-8665-7889 Boston Westborough, MA Tel: 774-760-0087 Fax: 774-760-0088 China - Chongqing Tel: 86-23-8980-9588 Fax: 86-23-8980-9500 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 Novi, MI Tel: 248-848-4000 Houston, TX Tel: 281-894-5983 Indianapolis Noblesville, IN Tel: 317-773-8323 Fax: 317-773-5453 Los Angeles Mission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608 New York, NY Tel: 631-435-6000 San Jose, CA Tel: 408-735-9110 Canada - Toronto Tel: 905-673-0699 Fax: 905-673-6509 China - Dongguan Tel: 86-769-8702-9880 China - Hangzhou Tel: 86-571-8792-8115 Fax: 86-571-8792-8116 Germany - Karlsruhe Tel: 49-721-625370 India - Pune Tel: 91-20-3019-1500 Germany - Munich Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Japan - Osaka Tel: 81-6-6152-7160 Fax: 81-6-6152-9310 Italy - Milan Tel: 39-0331-742611 Fax: 39-0331-466781 Japan - Tokyo Tel: 81-3-6880- 3770 Fax: 81-3-6880-3771 Italy - Venice Tel: 39-049-7625286 Korea - Daegu Tel: 82-53-744-4301 Fax: 82-53-744-4302 China - Hong Kong SAR Tel: 852-2943-5100 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-8864-2200 Fax: 86-755-8203-1760 Taiwan - Hsin Chu Tel: 886-3-5778-366 Fax: 886-3-5770-955 China - Wuhan Tel: 86-27-5980-5300 Fax: 86-27-5980-5118 Taiwan - Kaohsiung Tel: 886-7-213-7828 China - Xian Tel: 86-29-8833-7252 Fax: 86-29-8833-7256 Netherlands - Drunen Tel: 31-416-690399 Fax: 31-416-690340 Poland - Warsaw Tel: 48-22-3325737 Spain - Madrid Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 Sweden - Stockholm Tel: 46-8-5090-4654 UK - Wokingham Tel: 44-118-921-5800 Fax: 44-118-921-5820 Taiwan - Taipei Tel: 886-2-2508-8600 Fax: 886-2-2508-0102 Thailand - Bangkok Tel: 66-2-694-1351 Fax: 66-2-694-1350 07/14/15 DS50002322D-page 40 2014 - 2015 Microchip Technology Inc.