Give away medical masks when you place an order. learn more

MMA766OFC Accelerometer for Mobile Handsets

Accelerometers are proliferating rapidly in the mobile phone market, enabling clever innovations that continue to help developers differentiate their products from the competition.

According to iSuppli, accelerometers are rapidly penetrating the mobile handset market, and there seems to be no letup in the near future. As they predicted, approximately one-third of all mobile phones shipped in 2010 included MEMS accelerometers. That was up from one in five shipped in 2009 and one out of 11 in 2008. Accelerometers allow users to employ finger tapping and three dimensional motion to execute specific commands, often replacing the need for multiple keystrokes.

Cell phone users, for instance, are demanding sophisticated user interfaces that allow fast, precise communications without complicated data entry. They also want these capabilities in budget-priced phones as well as in the high-end models. Freescale's MMA7660FC low-g, three-axis digital accelerometer is the company's first to be designed specifically for mobile phones and other small, hand-held appliances. Low-cost, low-power intelligent sensing in a compact package can add tremendous functionality to portable battery-powered devices with no room to spare.

Essentially, MEMS combine silicon-based microelectronics with micromachining technology. A three-axis accelerometer can detect motion on three different planes, or axes. This allows developers to implement a single accelerometer to incorporate tap, shake, and orientation detection in a mobile device. For instance, a back-and-forth shake and an up-and-down shake can be used to execute two different commands. Although accelerometers can be used in a number of hand-held applications, mobile phones have dominated the market. Accelerometers not only enable developers to incorporate clever innovations that differentiate their products from the competition, but also to extend revenue opportunities to ISVs (independent software vendors), interface providers, and wireless service carriers.

The MMA7660FC accelerometer can be employed to detect natural user interactions, including:

  • Orientation detection that goes beyond automatically adjusting to a portrait or landscape configuration
  • Single-tap detection, which can be configured at user-selectable thresholds and time duration on the X, Y, and Z-axes
  • Shake, which can be used to represent specific keystrokes or a series of keystrokes
  • Gesturing and gaming moves, such as three-dimensional tilt, turn, and twist
However, portable devices such as mobile phones demand more than improved functionality alone if they want to carve out a profitable piece of the market. The inherent limitations of size and battery life, among others, must also be addressed.

Four good reasons to use MMA7660FC accelerometers

As more applications require motion detection, the MMA7660FC features four key requirements: digital output, small package, low power consumption, and embedded intelligence.

Digital output

The MMA7660FC accelerometer has I²C output for communicating directly with the processor, eliminating the need for an ADC. With 6-bit output values of X, Y, or Z, you can configure an interrupt for one or multiple options of motion detection such as orientation, tap, shake, or data ready. Once an interrupt occurs, the processor can then interrogate the accelerometer via the I²C to understand exactly which interrupt has been triggered.

Small footprint

The MMA7660FC is contained in a 3 x 3 x 0.9 mm dual, flat, no-lead (DFN) package with 0.5 mm pitch. This is critical for portable, handheld devices, such as mobile phones, because it enables designers to add all the useful functionalities of a three-axis accelerometer without straining the limits of a space-constrained PCB.

To help ensure proper mounting, Freescale offers an application note, "AN3839: MMA7660FC Board Mounting Guidelines," available as a PDF download from It discusses the minimum recommended footprint for surface mount applications that can significantly affect the soldering connection interface between the board and the package. The application note also provides soldering and mounting guidelines that will minimize the stress on the package after board mount. Following these guidelines and considerations for board mounting will result in optimal performance from the MMA7660FC sensor.

Low-power consumption in end applications

Freescale is a recognized leader in the design of high-performance, energy-efficient semiconductor products. Underscoring this, Freescale has introduced the Energy-Efficient Solutions mark. This mark highlights selected products that excel in the effective implementation of energy-efficiency technologies, and that deliver market-leading performance in the application spaces they are designed to address. Visit the latest list of these products at

The MMA7660FC accelerometer has earned the Freescale Energy-Efficient Solutions mark through a distinctive combination of advanced architectural and circuit techniques with the latest design methodology and process technology, which deliver energy-efficient performance to provide the highest possible performance levels within a restricted energy budget. This is the result of Freescale working closely with customers in a targeted market to define their specific performance and energy requirements, and developing optimized solutions that yield exceptionally energy-efficient performance for the life of the application. The MMA7660FC accelerometer has very low current consumption: an off mode of 0.4 µA, a standby mode of 2 µA, and an active mode down to 47 µA (1 sample/second).

In addition, the MMA7660FC accelerometer offers extremely flexible performance/power consumption options through user-configurable sample rates. The rates can be adjusted to provide only the performance needed for specific functions, and each configuration corresponds with different current consumption (see Table 1).

Samples Minimum Typical Maximum
1 38 µA 47 µA 62 µA
2 37 µA 49 µA 60 µA
4 48 µA 54 µA 83 µA
8 59 µA 66 µA 86 µA
16 70 µA 89 µA 100 µA
32 85 µA 133 µA 171 µA
64 170 µA 221 µA 262 µA
120 224 µA 294 µA 350 µA

Table 1: MMA7660FC user-configurable sample rates.

For instance, at 120 samples/second the consumption rate is about 294 µA. However, if you drop down to one sample/second, the corresponding rate is just 47 µA. This flexibility allows you to fine tune your sample rates for specific functions, making sure the power consumption is as low as possible. For example:
  • One sample/second is perfectly adequate for auto-wake-up motion detection. When the accelerometer senses any motion, it essentially tells the processor, "I'm sensing motion. You may want to start sampling more for whatever type of application you want to run."
  • After extensive testing with key customers in the mobile world, four samples/second has been determined to be a sufficient rate for portrait/landscape orientation and shake. Typical power consumption is 54 µA.
  • The sweet spot for covering most shaking and gesturing requirements, such as those required for many of the games that can be loaded onto today's mobile phones, is 32 samples/second with a typical operating current of 133 µA.
  • Tapping (using your finger to tap once or twice on the mobile device) is the only function for which sampling at 120 samples/second is recommended. The higher rate, running at 294 µA, is needed for the system to recognize the difference between a tap and a typical shake.
Once the output data rate is configured, the MMA7660FC updates the data for all three axes in the register at a resolution of six bits per axis.

The MMA7660FC accelerometer also incorporates advanced, automatic, low-power modes with auto-wake and auto-sleep. Three modes, off, standby, and active, offer different capabilities for power conservative applications (see Figure 1).

Figure 1: MMA7660FC measurement and power modes.

  • Off mode — digital line is on but analog line is off. MMA7660FC does not load the I²C bus and all I²C activities are ignored.
  • Standby mode — both digital and analog lines are on, and the MMA7660FC responds to I²C activity. Registers can be accessed to set the device to active mode when desired, and the sensor measurement system is idle.
  • Active mode — both digital and analog lines are on, and the MMA7660FC responds to I²C activity. The sensor measurement system runs at the programmable output data rate, and the digital analysis functions run. A low-power (lower user selected sample rate) sleep mode is entered if the following are true:
    • The Auto-Sleep function is enabled AND
    • The Sleep Counter has elapsed, indicating that no change in orientation, no shake, and no tap or pulse have occurred within the duration of the programmable Sleep Counter.
Sleep mode saves power by using a reduced sampling rate (tap mode is disabled). Detection of a shake, a change in tilt angle, or a change in orientation initiates auto-wake to bring the MMA7660FC back to full active mode.

The MMA7660FC accelerometer has an auto-wake/sleep feature that can be enabled to save power. In sleep state, the device is put into a user-specified, low-sample rate (1, 8, 16, or 32 samples/second) in order to minimize power consumption. When auto-wake is enabled and activity is detected, such as a change in orientation, a change in acceleration or a shake event, the device wakes up.

In a wake state, the MMA7660FC accelerometer is put into a user-specified sample rate (from one sample/second to 120 samples/second) according to power and response considerations. With auto-sleep mode enabled, if there is no change in the enabled motion detections before the sleep counter has elapsed, the device will go into a sleep state with auto-wake mode enabled. The MMA7660FC accelerometer can thus be programmed to continually cycle between auto-wake/sleep.


The MMA7660FC can be programmed to incorporate any of the motion detections through configurable interrupts (see Figure 2). Each detected motion, such as orientation, tap, or shake, is recorded in dedicated bits of a read-only status register (TILT). To determine what kind of motion has occurred, an interrupt will occur indicating one of the configured motion events have triggered. An I²C read command must occur to the TILT register to decode the motion that occurred to cause the interrupt.

Figure 2: MMA7660FC multiple detection algorithms.

Enabling interrupts

The user can choose to enable or disable any of the following interrupts in the INTSU (0x06) register: Front/Back Interrupt, Up/Down/Left/ Right Interrupt, Tap Detection Interrupt, GINT (real-time motion tracking), Shake on X-axis, Shake on Y-axis, and Shake on Z-axis Interrupts. If the GINT is enabled, real-time motion tracking can be configured to trigger an interrupt after every sensor data update, from one sample/second to 120 samples/second. If any of the shake axis interrupts are enabled, excessive agitation, greater than 1.3 g, will trigger an interrupt. If either the Up/Down/Left/Right Interrupt or the Front/Back Interrupt is enabled, changes in those orientations will generate an interrupt. When the auto-sleep feature is enabled and none of the enabled motion detections occur for the auto sleep counter elapsed time, an interrupt will occur. When the device is in sleep state, if a shake interrupt, change in tilt angle (notified via the tap interrupt), or orientation detection interrupt occurs, the device will leave sleep state and enter wake state.

Table 2 lists the registers that will be used and/or configured for orientation, shake, auto-wake/sleep, and tap detection.

Register Overview
Address Name Function Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0x00 XOUT 6 bits output value X - Alert XOUT[5] XOUT[4] XOUT[3] XOUT[2] XOUT[1] XOUT[0]
0x01 YOUT 6 bits output value Y - Alert YOUT[5] YOUT[4] YOUT[3] YOUT[2] YOUT[1] YOUT[0]
0x02 ZOUT 6 bits output value Z - Alert ZOUT[5] ZOUT[4] ZOUT[3] ZOUT[2] ZOUT[1] ZOUT[0]
0x03 TILT Tilt Status Shake Alert Tap PoLa[2] PoLa[1] PoLa[0] BaFro[1] BaFro[0]
0x04 SRST Sampling Rate Status 0 0 0 0 0 0 AWSRS AMSRS
0x05 SPCN Sleep Count SC[7] SC[6] SC[5] SC[4] SC[3] SC[2] SC[1] SC[0]
0x08 SR Auto-Sleep and Active Mode Portrait/Landscape Sample Rates and Debounce Filter FILT[2] FILT[1] FILT[0] AWSR[1] AMSR[0] AMSR[2] AMSR[1] AMSR[0]
0x09 PDET Tap Detection ZDA YDA XDA PDTH[4] PDTH[3] PDTH[2] PDTH[1] PDTH[0]
0x0A PD Tap Debounce Count PD[7] PD[6] PD[5] PD[4] PD[3] PD[2] PD[1] PD[0]
0x0B to 0x1F Factory Reserved - - - - - - - -

Table 2: User register overview.

Orientation detection in an application

Orientation detection is typically the portrait/landscape function common in today's mobile phones. However, this particular motion detection process can add functionality. It can detect six transitions from any position, including back, front, left, right, up, and down. Any of these motion detections can be programmed to a particular response. For instance, if the phone is lying face down, it obviously isn't being used, so it may go into a low-power mode. If the phone is ringing and the user places it face down, it hangs up the call, or when placed face up it activates the speakerphone.

Figure 3: Flow chart of orientation detection.

Orientation detection enabled in the MMA7660FC

The tilt orientation is in three dimensions and is identified in its last known static position. Tilt orientation can be measured from six different positions: left, right, up, down, back and front. The trip points for up/down/left/right occur at approximately 45 degrees from horizontal while the back/front interrupts occur at approximately 15 degrees from horizontal. This allows a product to set its display orientation appropriately to either portrait or landscape mode, or to turn off the display when the device is placed upside down.

Using the built-in orientation detection with the interrupt capability will save significant system resources and power consumption when compared to the polling method. The polling method requires the main processor to start a timer to read the accelerometer output (XYZ) and then use a software algorithm to judge the sensor orientation. This means the system has to repeatedly read and calculate the new orientation position.

With the MMA7660FC accelerometer, however, once the device is configured for orientation detection, a change in device orientation is signaled by an interrupt, so the application simply has to respond by reading the TILT register to update the new orientation.

The user configures the device for orientation detection by selecting a specific sample rate based on the targeted power consumption or the desired response rate of the orientation detection. By selecting the TILT debounce count, the auto wake/sleep prerequisites and the choice of orientation interrupts enabled.

The portrait to landscape trip point in the MMA7660FC accelerometer is 45 degrees, as defined by the internal logic. However, using software enhancements and an external microcontroller, the trip point can be changed. For a detailed discussion read Freescale's application note, "How to Use the MMA7660FC with a Microcontroller to Do Software Enhancements to Change Orientation Detection Trip Points," available as a PDF download from

Shake detection in an application

Shake motion can be detected in any orientation and can be used to perform many different commands. For example, if a user is typing a number into the mobile phone and makes a mistake, instead of hitting the clear button the user can just shake the device to clear the mistake. It also works in gaming applications, providing quick short-cuts for particular on-screen actions. The shake feature can be used as a button replacement to perform functions, such as scrolling through images or Web pages on a mobile phone.

Shake detection enabled in the MMA7660FC

The user can enable the shake interrupt on the MMA7660FC for any of the three axes by enabling the SHINTX, SHINTY, and/or SHINTZ in the INTSU (0x06) register. The sample rate must be selected based on the target power consumption level and/or desired response rate for the shake detection application.

The MMA7660FC accelerometer detects shake by examining the current 6-bit measurement for each axis in XOUT, YOUT and ZOUT. The axes that are tested for shake detection are the ones enabled by SHINTX, SHINTY, and/or SHINTZ. If a selected axis measures greater than 1.3 g or less than -1.3 g, then a shake is detected for that axis and an interrupt occurs. All three axes are checked independently, but a common shake bit in the TILT register is set when shake is detected in any one of the selected axes. Therefore, when all three axes (SHINTX, SHINTY, and/or SHINTZ) are selected it is not possible to determine on which axis the shake occurred. When the TILT register is read, the shake bit is cleared and shake-detection monitoring starts again (See Figure 4).

Figure 4: Shake detection algorithm flow chart.

Tap detection in an application

Tap detection simply records a finger tapping the device. This function can replace a number of key and button commands, not only on a mobile phone, but also on any product that needs a user interface and has a main button for selection. For example, when sitting in an important meeting, if a user's mobile phone begins to ring, a simple tap on the outside of the phone can send the call directly to voicemail.

Tap detection enabled in the MMA7660FC

Tap detection using the MMA7660FC works by detecting a fast transition that exceeds a user-defined threshold (PDET register) for a set duration of time (PD register). Detection for enabled axes is decided on an OR basis: If the PDINT bit is set in the INTSU register, the device reports the first axis for which it detects a tap by the Tap bit in the TILT register. When the Tap bit in the TILT register is set, tap detection ceases. Tap detection will resume when the TILT register is read (See Figure 5).

Figure 5: Tap detection algorithm flow chart.


Accelerometers are proliferating rapidly in mobile handsets as consumers demand sophisticated, intuitive user interfaces that allow fast, precise communications without complicated data entry. Clever mobile phone innovations continue to help developers differentiate their products from the competition. Designing portable electronic applications that use the intelligent sensing offered by the MMA7660FC include a number of advantages to the manufacturer and consumer alike, including:

  • Low-power device with configurable power-saving modes
  • Power-select helps achieve optimal current consumption by choosing one of eight sample rates
  • Intelligent device with configurable orientation, shake, and tap detection
  • Digital accelerometer with direct I²C interface for communication flexibility
  • Compact package enables intelligent motion features in handheld products
Freescale's accelerometer portfolio will continue to expand to provide manufacturers with more opportunities to incorporate accelerometers in their new product designs. Freescale's motion sensing technology has brought new levels of accuracy, usability, and reliability in handheld product design and will continue to help customers create new applications in emerging markets worldwide.