How to enable interrupt pin for motion detect of MMA8452

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to enable interrupt pin for motion detect of MMA8452

578 Views
ryanwen
Contributor I

How to enable interrupt pin for motion detect of MMA8452?

my (initial interrupt) code for mma8452 following ,

it doesn't work .....

WriteByte(MMA8451, 0x15 , 0x78);// MT Configure , 78 or f8
WriteByte(MMA8451, 0x17 , 0x30);// Moction Threshold , 0x30
WriteByte(MMA8451, 0x18 , 0x30);// Debounce Count
WriteByte(MMA8451, 0x2a , 0x18);// Ctrl_reg1
WriteByte(MMA8451, 0x2b , 0x00);// Ctrl_reg2 ,ALPE
WriteByte(MMA8451, 0x2d , 0x04);// Enable Int function FF_MT , 04
WriteByte(MMA8451, 0x2e , 0x04);// Int enable : MT by int1:1 or int2:0
WriteByte(MMA8451, 0x2C , 0x0A);// Sleep bypass , int active low , pushpull

0 Kudos
1 Reply

310 Views
TomasVaverka
NXP TechSupport
NXP TechSupport

Hi Ryan,

A couple of suggestions that might help:

 

1. Since IPOL = 1 (active high), make sure that your MCU interrupt pin is configured as GPIO input with an interrupt on rising edge.

2. Try to decrease the threshold value to ~1.5g (0x18) for example.

3. In your ISR you need to acknowledge an IRQ and read the FF_MT_SRC register to clear the SRC_FF_MT bit in the INT_SOURCE register (0x0C) and deassert the INT pin.

You might find useful my simple example code that is available here.

Hope it helps.

 

Regards,

Tomas

0 Kudos