I am trying to detect free fall detection as per AN4070 application note, below are the register settings i have configured
MMA8452_CTRL1_REG = 0x20; //Set the device in 50 Hz ODR, Standby
MMA8452_FF_MT_CFG= 0xA0; //Configuration Register set for Freefall Detection enabling “AND” condition, OAE = 0, Enabling X, Y, Z and the Latch
MMA8452_FF_MT_THS = 0x03; //0.2g/0.063g = 3.17 counts //Round to 3 counts
MMA8452_FF_MT_COUNT = 0x06; //120 ms/20 ms (steps) = 6 counts
MMA8452_CTRL4_REG = 0x00; //Enable Motion/Freefall Interrupt Function in the System
MMA8452_CTRL5_REG= 0x00; //Route the Motion/Freefall Interrupt Function to INT2 hardware pin
IMMA8452_CTRL1_REG = MMA8452_CTRL1_REG | 0x01; //Put the device in Active Mode, 50 Hz
This configuration is followed by reading MMA8452_INT_SOURCE register, and the result is 0xFF;
and followed by reading MMA8452_FF_MT_SRC register, and the result of this register is also 0xFF;
Reading of register MMA8452_FF_MT_SRC should have cleared the freefall interuupt, and interrupt is always active and not clearing at all. Is there anything i am missing out? (I am not using hardware pin INT2 now, as there is hardware limitation)