Experiments‎ > ‎

Accelerometer MMA7260Q

Objective: To characterize the inherent noise in the sensor outputs and what kind of performance can be achieved by directly connecting the sensor output to ADC input of microcontroller without any anti-alaising low pass filters.

MMA7260Q is a tri-axis accelerometer from Freescale Semiconductors. Sparkfun offers a easy to use breakout board for this sensor. The main objective of this experiments was to determing the noise levels on the output signal and determine what kind of precision can be achieved with this sensor. The sparkfun break out board has single RC filter on the sensor outputs. The cutoff frequency of the RC filter is 1.591 KHz. In our experiments we are sampling the signal at the output of this RC filter.

Measure Peak-to-Peak noise on Oscilloscope: The sensor X-axis output signal was probed with oscilloscope. The scope was set at 10mV/division voltage settings and 10mS/division time scale settings.The scopes built in measurement features was used.

Measured Peak To Peak noise : 35mV

Atmel ATMEGA644p microcontroller has 10 bit ADC. The refrence voltage on the board is 3V. So with 3V refrence and 10bit ADC the resolution of the system is
3/(2^10) = 3/1024 = 2.9296 mV or 3mV. With 35mV of noise on the signal the noise ends up toggling 3-4 LSB bits. So the noise free resoultion ends up being just about 6-7 bits rather than 10 bits.

The signal was sampled without any anti-alaising filters and plotted. The system characteristics were

Board                           : Pushpak Quadrotor board.
Processor                     : Atmega644p 

Processor clock            : 20MHz
ADC clock prescalar      : 128
ADC Vref                      : 3V
Final ADC sampling rate : 1.848 KHz (limited by serial port transmission speed)

From the figure above one can see that even at rest, with no vibration or movements the sensor output is pretty noisy and it toggles quite a few bits. A better way to visualize this phenomina is to plot the data as histogram. The histogram plot below shows the number of occurances of particular ADC value. The graph plots 1000 samples of the sensor output. In an ideal situation with the sensor at rest all the samples would be in a single column.    

From the histogram plot we can see that sampled data has variations of about about +/- 10 LSB units. Which means 4 LSB bits are lost to noise and one can achieve a 6bit noise free system only. On reading the data sheet we find the following

Sensor Bandwidth: 350 Hz on X and Yaxis, 150 Hz on Z axis.
Suggested RC low pass filter cutoff of 1.591KHz: Is primarily to suppress the internal switched capacitor clock frequency. It cannot be relied on to perform the job of low pass Anti-Aliasing filter as required by the ADC.


  • Connecting sensor directly to ADC without further low pass filtering, we will get 6 bit noise free resolution.(with ADC vref at 3V).
  • To achieve greater resolution one needs to have proper low pass filter that matches with the required bandwidth and sampling rate.

Things to do:

  • Change the cutoff frequency of RC low pass filter on the breakout board to 350Hz or to Nyquist frequency and check to see if that helps in terms of noise.
  • Any other suggestion from the readers??

For further readings on anti-aliasing filter requirements: