0
\$\begingroup\$

I'm trying to understand the notion of transient acceleration threshold. I'm working with the popular MMA8452 and the way I understand transient acceleration is that it represents the dynamic component of acceleration.

The issue is that when I set the transient threshold to 1g or less, I'd get interrupts fired even when the device is stationary. If the transient acceleration is simply the second derivative of velocity, the device shouldn't fire off interrupts when stationary even with a 0g threshold - right?

If it's because of noise, 1g of noise would be terrible.

Am I missing something obvious?

Thanks

EDIT

These are the registers I've set:

writeRegister(TRANSIENT_CFG, 0x1F);
writeRegister(TRANSIENT_THS, 0x0F);
writeRegister(TRANSIENT_COUNT, 0x00);

writeRegister(CTRL_REG4, 0x2B);
\$\endgroup\$
  • \$\begingroup\$ You noticed that the threshold units are 0.063g/LSB, so the register 0x1F (TRANSIENT_THS) is set to 0x0f or 0x10, right? What other registers are you setting? Also, are you sure the interrupt is coming from the transient acceleration detection and not one of the other interrupt sources? \$\endgroup\$ – Justin Sep 28 '15 at 14:33
  • \$\begingroup\$ @Justin Yes, I'm working with the register 0x1F. If the device is stationary (i.e. d(a(t))/dt^2 = 0), shouldn't there be no interrupt even when the threshold value is 0x00? I'm getting interrupts even when the threshold value is 0x0F (= 1g). I've updated my post to include registers that I've set. \$\endgroup\$ – Kar Sep 28 '15 at 14:37
2
\$\begingroup\$

I think the problem is that you're setting the HPF_BYP bit of the TRANSIENT_CFG register. This bypasses the high-pass filter, so it is no longer actually looking at transient acceleration only, but the total acceleration including the 1g due to gravity.

\$\endgroup\$
  • \$\begingroup\$ You're completely right. I saw that in the datasheet, but somehow I forgot to account for that in my code! Thanks. \$\endgroup\$ – Kar Sep 28 '15 at 14:45
  • \$\begingroup\$ Good job Justin. Cheers. \$\endgroup\$ – Tedi Mar 10 '17 at 17:39

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.