We at my company, has a very strange issue regarding til MMA8451. We are experincing that our accelerometers data can be suddenly wrong over time.
We have approximately 250 devices out, running in the field, and we have about 10 devices which got this problem. What happens is that the sensor data:
- Suddenly has a completely wrong offset (out of the min/max values, that the MMA should even be capable of).
- Or has it's z-axis locked in a "fixed" value or fluctuating.
We see that a mechanical bump of the PCB/sensor can make it suddenly work again. That makes us think that the MMA chip has been damaged.
If we take a brand new MMA and solder onto a PCB which had the problem ealier, no problems exists. So it's happening over time. And when it has happend, it can recover or come back to normal again.
We do of course have a lot of software, checking that all communication is alright on the I2C etc. We interface with a STM32 microcontroller. When the problem occurs, all power offs, resetting the chip etc, has no influence of the wrong data.
Here I have some visualizations of how the data looks. First an all normal functioning MMA measurement: (x-axis = red, y-axis = green and z-axis = blue). All measurement are done with the device fixed horizontal in the z direction, and then turned around the z-axis.
The x axis of this graph is samples (100 hz sample rate). The y axis is the raw sensor value.
The following pictures shows malfunctioning MMA measurements:
As you see, the sensor works in some sense, as the x and y axis changes. But has an unrealistic offset. If we hit the device mechanically, the axis happens to be normal afterwards.
The z-axis can act like this, just fluctuating, or it can be locked in either 8192 (max) or -8191 (min).
We have done various ESD tests to debunk that hypothesis. But we are very confused.
We hope that NXP or other people, have some knowledge about this issue, or have heard about this before?
Thanks in advance, people.