I am working on a project where the intent is to use an MMA8452 to sense 2 separate conditions. In short, it's a PCB to be mounted in a cell phone case, and LEDs will go on 1: if the phone vibrates and 2: if you physically pick the phone up.
I already have the PCB made and reflowed, and it's sending the interrupt to the micro when you pick it up. All the hardware works just dandy.
My problem is that I have the threshold set up around 1.3 G's (on all axes) so it doesn't trigger with every little movement of the phone - only when you physically pick it up. With that threshold, it's not enough to trigger on the vibration of the phone. .
Does anyone have any advice on how I could interrupt on a tiny movement (like vibration), and a larger threshold movement (like picking it up) at the same time? It's going to be driven on coin cells, so power consumption is critical - I don't want to be constantly switching back and forth with different settings and checking status every few ms.
I know, it's asking for 1 device to do 2 things at once, but thanks in advance for your thoughts.
Joe
Hello Joe,
Just as you noticed, you would need to configure the device to sense those two conditions. There is no way you can trigger an interrupt with small and big movements without configuring the device with different settings.
However, you could use the Motion detection to sense when the phone is vibrating AND _maybe_ use the Transient detection to sense when the device is being picked up. But that would only work when the phone is sitting in a table and not in the persons pocket, since any small movement will trigger the Motion detection interrupt. So again, you would need to constantly configure the sensor for the different scenarios present in your application.
The following document might be useful for you:
http://cache.freescale.com/files/sensors/doc/app_note/AN4070.pdf
Hope it helps.
-Josh
Josh,
Thanks for your response! I think I've got it narrowed down. I actually ended up configuring it to interrupt on tap detection, then the micro analyzes if it was a single tap (i.e. jolt from picking it up), or a series of small "taps" from the vibration. If it doesn't sense any further vibration in a set time window, it switches to transient to see if it's being picked up. If neither is the case, it just disregards it as a random jolt and goes back to sleep.
Joe