3-Axis MEMS Accelerometer - MMA8452Q

The MMA8452Q is a smart low-power, three-axis, capacitive MEMS accelerometer with 12 bits of resolution. This accelerometer is packed with embedded functions with flexible user programmable options, configurable to two interrupt pins. Embedded interrupt functions allow for overall power savings relieving the host processor from continuously polling data.

The MMA8452Q has user selectable full scales of ±2g/±4g/±8g with high pass filtered data as well as non filtered data available real-time. The device can be configured to generate inertial wakeup interrupt signals from any combination of the configurable embedded functions allowing the MMA8452Q to monitor events and remain in a low power mode during periods of inactivity.

Check out the related items below for our MMA8452Q Breakout Board!

  • 1.95 V to 3.6 V supply voltage
  • 1.6 V to 3.6 V interface voltage
  • ±2g/±4g/±8g dynamically selectable full-scale
  • Output Data Rates (ODR) from 1.56 Hz to 800 Hz
  • 12-bit and 8-bit digital output
  • I2C digital output interface (operates to 2.25 MHz with 4.7 kΩ pullup)
  • Two programmable interrupt pins for six interrupt sources
  • Three embedded channels of motion detection
  • Orientation (Portrait/Landscape) detection with set hysteresis
  • High Pass Filter Data available real-time
  • Current Consumption: 6 μA – 165 μA
  • 3 x 3 x 1 mm (QFN)

3-Axis MEMS Accelerometer - MMA8452Q Product Help and Resources

MMA8452Q Accelerometer Breakout Hookup Guide

June 11, 2014

How to get started using the MMA8452Q 3-axis accelerometer -- a solid, digital, easy-to-use acceleration sensor.

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

3 Soldering

Skill Level: Competent - You will encounter surface mount components and basic SMD soldering techniques are required.
See all skill levels


Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

3 Programming

Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels


Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

3 Electrical Prototyping

Skill Level: Competent - You will be required to reference a datasheet or schematic to know how to use a component. Your knowledge of a datasheet will only require basic features like power requirements, pinouts, or communications type. Also, you may need a power supply that?s greater than 12V or more than 1A worth of current.
See all skill levels


Customer Comments

  • I have a (untested) breakout board for this. Email me for eagle files, etc…

  • A product i suggested has been stocked!

  • Standard Question: Is there a breakout board planned for this part? and will this be replacing the MMA7361 you currently stock?

    • breakout board is in the works. I’m not sure about the MMA7361, I can’t remember if this is a direct replacement, or just another model. If anyone knows if the MMA7361 is EOL’d, let me know.

      • When will the breakout board be available? I made a breakout board by myself (very proud!) but it looks kind of crispy and I’m not sure if it works…

        • No idea really. It depends on how it goes in production and such. You never know until you go through and design it if it will work or not.

  • Why did you choose the MMA8452Q over the MMA8541Q? The only major difference seems to be that the 8452 lacks a FIFO buffer on the output, so the microcontroller it’s connected to has to poll it more frequently to avoid losing data. The 8451 has a 32-sample FIFO with four modes. The 8451 also has slightly more resolution.

    ETA: Adafruit has the 8451 on a breakout board.

  • I’m trying to gather data from four different accelerometers and use them to play back sound. So far works great using the MP3 Player shield and one accelerometer, but no idea how to gather data from all four. I can jump the SA0 pin and do it that way, but that only get me 2 accelerometers and not four. They essentially work in groups of two. 2 for arms, 2 for legs. I just wanted to register when the legs move or arms move(not which one). Is there any way to combine the results from 2 accelerometers with the same address?

    • http://dsscircuits.com/i2c-multiplexer.html split your i2c bus. Either that or use a Microcontroller with two busses like an arduino Due or a beagleboard

  • I adapted the I2C library used in the example code to work with the new Arduino Leonardo which uses an ATMEGA32U4 instead of an ATMEGA328.

    I’ve uploaded the changed i2c.h file to a bitbucket repository in case anyone else is interested in that: https://bitbucket.org/wizard23/arduinoleonardolibraries/src/39d52819baae/i2c.h

    If you just replace the i2c.h from the above Example Code then it should work on the arduino Leonardo (or any other ATMEGA32U4 board)

    The only thing I had to change was the definitions of WRITE_sda and READ_sda because that pin is on a different port on the ATMEGA32U4.

    I used the sensor in my own design (thanks sparkfun for the eagle library (although I had to adapt it because the NC pins are not connected to the package and according to Freescale Application Note AN4077 you should connect dummy traces to the NC pins…)) and now I can already read the sensor values :)…thanks again to sparkfun for this awesome code example!

  • I am trying to increase the output data rate to 800Hz for this sensor but it doesn’t seem to go beyond 10Hz. I have a logic analyzer connected to the interrupt pins to measure the interrupt generation rate. I am using the example code provided above, any ideas as to what could be going wrong or any similar experiences with this device?

  • I should have noticed the picture scaling this against a quarter. My GOD this thing is tiny! Just to get it connected I’m going to have to place it on a board with well under half a mm in accuracy in any given direction. I think I’ll wait on that for a couple years ‘till I think I’m competent enough to hotplate solder surface mount components. I think if you value your sanity you should wait for a breakout board.

  • Can this package be soldered using gel flux, extended pads and drag soldering?

  • Just a note to Arduino users, Freescale’s MMA845x series accelerometers won’t work with the Wire library because these devices require the use of a repeated start.

Customer Reviews

No reviews yet.