MM7150 Motion Module PICtailTM
Plus Evaluation Board (#AC243007)
with Explorer 16 Development Board
User’s Guide
2014 - 2016 Microchip Technology Inc.
DS50002322E
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, AnyRate, AVR, AVR logo, AVR Freaks, BeaconThings, BitCloud, CryptoMemory, CryptoRF,
dsPIC, FlashFlex, flexPWR, Heldo, JukeBlox, KEELOQ, KEELOQ logo, Kleer, LANCheck, LINK MD, maXStylus, maXTouch, MediaLB, megaAVR,
MOST, MOST logo, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, PIC32 logo, Prochip Designer, QTouch, RightTouch, SAM-BA, SpyNIC,
SST, SST Logo, SuperFlash, tinyAVR, UNI/O, and XMEGA are registered trademarks of Microchip Technology Incorporated in the U.S.A. and
other countries.
ClockWorks, The Embedded Control Solutions Company, EtherSynch, Hyper Speed Control, HyperLight Load, IntelliMOS, mTouch, Precision
Edge, and Quiet-Wire are registered trademarks of Microchip Technology Incorporated in the U.S.A.
Adjacent Key Suppression, AKS, Analog-for-the-Digital Age, Any Capacitor, AnyIn, AnyOut, BodyCom, chipKIT, chipKIT logo, CodeGuard,
CryptoAuthentication, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, Dynamic Average Matching, DAM, ECAN,
EtherGREEN, In-Circuit Serial Programming, ICSP, Inter-Chip Connectivity, JitterBlocker, KleerNet, KleerNet logo, Mindi, MiWi, motorBench,
MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, MultiTRAK, NetDetach, Omniscient Code Generation, PICDEM, PICDEM.net, PICkit,
PICtail, PureSilicon, QMatrix, RightTouch logo, REAL ICE, Ripple Blocker, SAM-ICE, Serial Quad I/O, SMART-I.S., SQI, SuperSwitcher,
SuperSwitcher II, 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 - 2016, Microchip Technology Incorporated, All Rights Reserved.
ISBN: 9781522410980
QUALITY MANAGEMENT SYSTEM
CERTIFIED BY DNV
== ISO/TS 16949 ==
DS50002322E-page 2
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.
2014 - 2016 Microchip Technology Inc.
Object of Declaration: MM7150 Motion Module PICtailTM Plus Evaluation Board (#AC243007) with
Explorer 16 Development Board
2014 - 2016 Microchip Technology Inc.
DS50002322E-page 3
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 ..................................................................................... 19
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.5.3 Flash Corruption Recovery ........................................................................ 28
3.6 FREEFALL Mode ......................................................................................... 29
Chapter 4. Troubleshooting
4.1 Failure to Display Welcome Screen ............................................................. 32
4.2 Error Handling .............................................................................................. 33
4.2.1 General Error Handling for VREG Functions ............................................. 33
4.2.2 I2C Error Handling .................................................................................... 34
4.2.3 Error Definitions (from source/headers/err.h) ............................................ 35
2014 - 2016 Microchip Technology Inc.
DS50002322E-page 4
Appendix A. Code Structure
A.1 Directory structure ........................................................................................ 36
A.2 Program Flow ............................................................................................... 38
A.2.1 Main.c ....................................................................................................... 38
A.2.2 Configuring and Initializing MM7150 Motion Module ................................ 38
A.2.3 Enabling Sensors and Reading data ........................................................ 39
Appendix B. Reference Schematic & Bill of Materials
B.1 MM7150 Motion Module PICtail TM Plus Evaluation Board .......................... 40
B.1.1 Bill of Materials .......................................................................................... 40
B.1.2 Reference Schematic ................................................................................ 40
Appendix C. Extension Cable for Explorer 16
C.1 Signals Connection ...................................................................................... 42
Worldwide Sales and Service .................................................................................... 43
2014 - 2016 Microchip Technology Inc.
DS50002322E-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 - 2016 Microchip Technology Inc.
DS50002322E-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 - SSC7150 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 - 2016 Microchip Technology Inc.
DS50002322E-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
DS50002322E-page 8
2014 - 2016 Microchip Technology Inc.
Preface
DOCUMENT REVISION HISTORY
Revision
Correction
DS500002322E (11-18-16)
•
•
•
•
DS500002322D (08-18-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, update 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 - 2016 Microchip Technology Inc.
Updated information for sample code version 1.4.0
Removed PIC24 Legacy PLib and replace with MCC
Added section 3.5.3 for Flash Corruption Recovery
Added Acc Range 4G/8G/16G configuration in section 3.5.2
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
DS50002322E-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 - 2016 Microchip Technology Inc.
DS50002322E-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 - 2016 Microchip Technology Inc.
DS50002322E-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 v3.26 or later
Microchip XC16 Compiler v1.26 or later
Microchip MPLAB Code Configurator Plugin v3.16 or later
MM7150_Exp16_Sample_Code_v1.4.0
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:
2014 - 2016 Microchip Technology Inc.
MPLABX IDE STARTUP SCREEN
DS50002322E-page 12
Software/Firmware Setup
• File->Open Project Navigate to project directory and select Open Project as
shown in Figure 2-2.
FIGURE 2-2:
OPEN PROJECT
• Motion Demo Project Loaded as shown in Figure 2-3:
FIGURE 2-3:
2014 - 2016 Microchip Technology Inc.
PROJECT IS OPENED
DS50002322E-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:
DS50002322E-page 14
BUILD PROCESS OUTPUT
2014 - 2016 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 v140
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
2014 - 2016 Microchip Technology Inc.
DS50002322E-page 15
MM7150 Motion Module PICtail(TM) Plus Evaluation Board (#AC243007)
with Explorer 16 Development Board User’s Guide
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:
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”.
DS50002322E-page 16
2014 - 2016 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 - 2016 Microchip Technology Inc.
ONE-TIME CALIBRATION - NVM UPDATE FLAG IS SET
DS50002322E-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:
DS50002322E-page 18
ONE-TIME CALIBRATION COMPLETED
2014 - 2016 Microchip Technology Inc.
Demo Setup
3.3
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:
Note:
79.0
X: 50.3
X: 1.021
Y: 75.6
Y:-.642
Z: -32.9
Z:-.458
W: .348
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 - 2016 Microchip Technology Inc.
DS50002322E-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:
DS50002322E-page 20
FLASH UPDATE COMMAND
2014 - 2016 Microchip Technology Inc.
Demo Setup
Select “File->Send file…” from Tera Term utility (NOTE: Select Binary Option).
FIGURE 3-9:
SELECT BINARY FILE
FIGURE 3-10:
DOWNLOADING BINARY IMAGE
2014 - 2016 Microchip Technology Inc.
DS50002322E-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:
DS50002322E-page 22
2014 - 2016 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
ACC_range
00030000 (see Note 1)
Chk_sum
1C040000 (see Note 2)
Padded
FF’s for 128 byte packet
2014 - 2016 Microchip Technology Inc.
DS50002322E-page 23
MM7150 Motion Module PICtail(TM) Plus Evaluation Board (#AC243007)
with Explorer 16 Development Board User’s Guide
Note 1:
SSC7150 Firmware Build 0A00 supports the accelerometer range option
as shown below:
ACC_range = 00030000: +/- 2G
ACC_range = 00050000: +/- 4G
ACC_range = 00080000: +/- 8G
ACC_range = 000C0000: +/- 16G
2:
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.
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.4.0, 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):
DS50002322E-page 24
2014 - 2016 Microchip Technology Inc.
Demo Setup
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
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
Header
Values
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
ACC_range
00030000 (see Note 1)
Chk_sum
16070000 (see Note 2)
Padded
FF’s for 128 byte package
For MM7150_Exp16_Sample_Code_v1.4.0, the flash configuration data must adhere
to the following binary file format:
2014 - 2016 Microchip Technology Inc.
DS50002322E-page 25
MM7150 Motion Module PICtail(TM) Plus Evaluation Board (#AC243007)
with Explorer 16 Development Board User’s Guide
FIGURE 3-13:
CONFIGURATION DATA BINARY FOR VERTICAL
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).
DS50002322E-page 26
2014 - 2016 Microchip Technology Inc.
Demo Setup
FIGURE 3-15:
SELECT BINARY FILE
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:
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”.
2014 - 2016 Microchip Technology Inc.
DS50002322E-page 27
MM7150 Motion Module PICtail(TM) Plus Evaluation Board (#AC243007)
with Explorer 16 Development Board User’s Guide
FIGURE 3-16:
FLASH CONFIGURATION UPDATE SUCCESSFUL
3.5.3
Flash Corruption Recovery
If flash update was not completed in an orderly manner, the flash ROM in SSC7150
may be corrupted. For example, when the power is down while the flash update is in
progress. In such case, the SSC7150 will power up into a boot loader mode when the
flash ROM is corrupted. The sample code has a capability to detect the boot loader
mode and re-flash the firmware binary to recovery the device.
At boot, if the boot loader mode is detected, then the flash update function runs automatically. The user can select and download the firmware binary file as described in
Section 3.5.1 “Flash Update command” to recover from the flash corruption state.
DS50002322E-page 28
2014 - 2016 Microchip Technology Inc.
Demo Setup
FIGURE 3-17:
3.6
BOOTLOADER MODE
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. However, 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-18 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.
2014 - 2016 Microchip Technology Inc.
DS50002322E-page 29
MM7150 Motion Module PICtail(TM) Plus Evaluation Board (#AC243007)
with Explorer 16 Development Board User’s Guide
FIGURE 3-18:
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.
DS50002322E-page 30
2014 - 2016 Microchip Technology Inc.
Demo Setup
FIGURE 3-19:
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-20, “impact” with the “ground” or landing pad is also determined.
FIGURE 3-20:
FREE FALL DETECTION LOGGING
2014 - 2016 Microchip Technology Inc.
DS50002322E-page 31
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 - 2016 Microchip Technology Inc.
DS50002322E-page 32
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 - 2016 Microchip Technology Inc.
DS50002322E-page 33
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:
DS50002322E-page 34
SERIAL TERMINAL I2C ERROR HANDLING DISPLAY
2014 - 2016 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 - 2016 Microchip Technology Inc.
DS50002322E-page 35
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 - 2016 Microchip Technology Inc.
DS50002322E-page 36
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\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
LCD support for Explorer 16 board
\source\src\lcd.c
\source\src\mmain.c
\source\src\sf.c
\source\src\system.c
\source\src\utils.c
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
\source\src\vregs.c
Mediator between HID-I2C communication and user
Commands (interactive layer of API)
mcc_generated_files\ext_int.h
Functions for external interrupt
mcc_generated_files\i2c1.h
Functions and data definitions for I2C1 driver
mcc_generated_files\interrupt_manager.h
Functions for interrupt initialization
mcc_generated_files\mcc.h
Include for all other MCC generated header files
mcc_generated_files\pin_manager.h
Macro functions for GPIOs
mcc_generated_files\tmr1.h
Functions for Timer 1
mcc_generated_files\tmr2.h
Functions for Timer 2
mcc_generated_files\traps.h
Functions for traps
mcc_generated_files\uart2.h
Functions for UART 2
mcc_generated_files\ext_int.c
External interrupt handler
mcc_generated_files\i2c1.c
I2C1 driver functions and interrupt handler
mcc_generated_files\interrupt_manager.c
Interrupt initialization and management
mcc_generated_files\mcc.c
System initialization
mcc_generated_files\pin_manager.c
GPIO configuration
mcc_generated_files\tmr1.c
Timer 1 driver functions and interrupt handler
mcc_generated_files\tmr2.c
Timer 2 driver functions and interrupt handler
2014 - 2016 Microchip Technology Inc.
DS50002322E-page 37
MM7150 Motion Module PICtailTM Plus Evaluation Board (#AC243007)
with Explorer 16 Development Board User’s Guide
TABLE A-1:
DIRECTORY STRUCTURE OF THE SENSOR FUSION SAMPLE CODE (CONTINUED)
Files
Description
mcc_generated_files\traps.c
Traps functions and handler
mcc_generated_files\uart2.c
UART 2 driver functions and interrupt handler
main.c
main function
MM7150_PIC24F_Config.mc3
MCC Configuration File
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
DS50002322E-page 38
2014 - 2016 Microchip Technology Inc.
Code Structure
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
2014 - 2016 Microchip Technology Inc.
DS50002322E-page 39
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 - 2016 Microchip Technology Inc.
DS50002322E-page 40
2014 - 2016 Microchip Technology Inc.
MM7150 Motion Module PICtailTM Plus Evaluation Board (#AC243007)
with Explorer 16 Development Board User’s Guide
DS50002322E-page 41
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 - 2016 Microchip Technology Inc.
DS50002322E-page 42
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
Finland - Espoo
Tel: 358-9-4520-820
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
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
Tel: 317-536-2380
Los Angeles
Mission Viejo, CA
Tel: 949-462-9523
Fax: 949-462-9608
Tel: 951-273-7800
Raleigh, NC
Tel: 919-844-7510
New York, NY
Tel: 631-435-6000
San Jose, CA
Tel: 408-735-9110
Tel: 408-436-4270
Canada - Toronto
Tel: 905-695-1980
Fax: 905-695-2078
DS50002322E-page 43
China - Dongguan
Tel: 86-769-8702-9880
China - Guangzhou
Tel: 86-20-8755-8029
China - Hangzhou
Tel: 86-571-8792-8115
Fax: 86-571-8792-8116
China - Hong Kong SAR
Tel: 852-2943-5100
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-3326-8000
Fax: 86-21-3326-8021
China - Shenyang
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
China - Shenzhen
Tel: 86-755-8864-2200
Fax: 86-755-8203-1760
India - New Delhi
Tel: 91-11-4160-8631
Fax: 91-11-4160-8632
France - Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
France - Saint Cloud
Tel: 33-1-30-60-70-00
India - Pune
Tel: 91-20-3019-1500
Germany - Garching
Tel: 49-8931-9700
Germany - Haan
Tel: 49-2129-3766400
Japan - Osaka
Tel: 81-6-6152-7160
Fax: 81-6-6152-9310
Japan - Tokyo
Tel: 81-3-6880- 3770
Fax: 81-3-6880-3771
Germany - Heilbronn
Tel: 49-7131-67-3636
Germany - Karlsruhe
Tel: 49-721-625370
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
Germany - Munich
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
Germany - Rosenheim
Tel: 49-8031-354-560
Israel - Ra’anana
Tel: 972-9-744-7705
Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
Italy - Padova
Tel: 39-049-7625286
Philippines - Manila
Tel: 63-2-634-9065
Fax: 63-2-634-9069
Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
Norway - Trondheim
Tel: 47-7289-7561
Poland - Warsaw
Tel: 48-22-3325737
Taiwan - Hsin Chu
Tel: 886-3-5778-366
Fax: 886-3-5770-955
Romania - Bucharest
Tel: 40-21-407-87-50
Taiwan - Kaohsiung
Tel: 886-7-213-7830
China - Wuhan
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118
Taiwan - Taipei
Tel: 886-2-2508-8600
Fax: 886-2-2508-0102
China - Xian
Tel: 86-29-8833-7252
Fax: 86-29-8833-7256
Thailand - Bangkok
Tel: 66-2-694-1351
Fax: 66-2-694-1350
Spain - Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
Sweden - Gothenberg
Tel: 46-31-704-60-40
Sweden - Stockholm
Tel: 46-8-5090-4654
UK - Wokingham
Tel: 44-118-921-5800
Fax: 44-118-921-5820
2014 - 2016 Microchip Technology Inc.
11/07/16