1
\$\begingroup\$

I'm using the MMA8453Q for tilt detection of 45 degree in any axis. I'm a newbie to embedded devices. I have a few questions.

1) Should I be using Transient detection or Motion detection for my use case? I referred the Application note AN4071. But, I'm unable to understand the use case scenario for both transient detection & motion detection with respect to tilt detection.

2) I'm currently using Transient detection. But, it is detecting only abrupt shakes. When I turn it slowly, it doesn't detect the tilt even if the board is in 90 degree. Is there any specific reason for that?

Register configurations are:

CTRL_REG1 - 0x1A  (100 Hz ODR & F_READ)
XYZ_DATA_CFG - 0x00 (2g)
HP_FILTER_CUTOFF - 0x01 (2 Hz)
TRANSIENT_CFG - 0x1E (Enabling all axes & latch)
TRANSIENT_THS - 0x0B (For approx 45 degree tilt)
TRANSIENT_COUNT - 0x05 (50 ms debounce count for 100 Hz ODR)

Kindly suggest me which registers I should change to detect if I move the board really slowly. Any kind of related suggestions or explanations are much appreciated.

EDIT:

I tried reducing the cut-off frequency. But, I couldn't reduce it below 2 Hz, as it started detecting interrupts even when it is stationary.

\$\endgroup\$
1
\$\begingroup\$

It can't be much clearer than this...

The transient function (with HPF enabled) is different from the motion detection embedded function in MMA8451, 2, 3Q.

Refer to Freescale application note AN4070 for details on the motion detection. The intended use of these functions is different.

A. The embedded motion function triggers an interrupt when an y of the enabled axes has exceeded a set acceleration threshold.

• Motion detection is useful when the device may be tilted in an orientation and the interest is to know if the acceleration in one axis has crossed a specified threshold amount measured from 0g. The motion detection analyzes change in threshold considering both static and dynamic acceleration.

B. The transient detection embedded function compares whether any of the enabled axes has exceeded a set change in acceleration disregarding the static acceleration. The data that is compared to the threshold to be exceeded is high-pass filtered data.

• Transient detection is useful when the device may be tilted in an orientation (i.e., there is some non-zero reading on one or more of X, Y and Z) and the interest is more on the dynamic acceleration crossing a specified threshold amount in a short amount of time (frequency being the reciprocal of time) regardless of what the current value is.

\$\endgroup\$
  • \$\begingroup\$ Yes. I went through this in that application note. So, does that mean that transient detection threshold is how fast the tilt should happen to get detected? \$\endgroup\$ – Gomu Aug 9 '16 at 9:23
  • 1
    \$\begingroup\$ It says that for the application you describe you should be using motion detection. \$\endgroup\$ – Daniel Aug 9 '16 at 9:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.