MMA8452Q Accelerometer Breakout Hookup Guide

Contributors: jimblom
Favorited Favorite 6

Hardware Overview

The MMA8452Q Breakout Board breaks out a select few of the most important pins on the accelerometer.

alt text

A little bit about each pin:

Pin LabelPin FunctionInput/OutputNotes
3.3VPower SupplyInputShould be between 1.95 - 3.6V
SDAI2C Data SignalBi-directionalBi-directional data line. Voltage should not exceed power supply (e.g. 3.3V).
SCLI2C Clock SignalInputMaster-controlled clock signal. Voltage should not exceed power supply (e.g. 3.3V).
I2Interrupt 2OutputProgrammable interrupt — can indicate data ready, orientation change, tap, and more.
I1Interrupt 1OutputProgrammable interrupt — can indicate data ready, orientation change, tap, and more.
GNDGroundInput0V/common voltage.

Voltage Supply Requirements

The big alert here is that the MMA8452Q has a maximum voltage of 3.6V -- that range applies to both the power supply and the I2C pins. If you're using the sensor in a 3.3V system you can plug it right in, but if you're using it with a 5V device (like an Arduino Uno), some level-shifting is required between devices.

Fortunately, you don't need a lot of power to make the MMA8452Q work. In normal operating mode it can require anywhere between 7 and 165 µA.

Address Select Jumper

The MMA8452Q features a selectable I2C address -- just in case you're running multiple MMA8452Qs on the same bus (or maybe you have an address conflict). To select the address, a pin on the accelerometer -- "SA0" -- can be tied to either power or ground.

SA0 VoltageMMA8452Q I2C Address
3.3V (VCC)0x1D

The breakout board includes a jumper, on the back side, to help tie this pin high or low.

alt text

By default the jumper is open, which will pull the SA0 pin high (there's a resistor on the top side of the board to help accomplish that task). If you close the jumper, by applying a small solder blob to connect both pads together, SA0 will be pulled to ground.

For most use cases, where you're only using one MMA8452Q, you can leave this jumper untouched. In that case the I2C address will be 0x1D.