I'm using the BMA-400 to wake up the uC when the PCB moves its place. For this purpose, the auto wake up int with the auto low power seems the greatest combo, or also the auto wake up int with the gen1 inactivity. Being the main purpose using the auto wake up int, and configured and I set a big threshold and the sensor is still and stills triggers interrupts.
I did the following configuration:
Into the ACCEL_CONFIG0 (0x19):
Set the low power mode, the low power OSR to 0x03, and activate the FILT1_BW_1.
Into the ACCEL_CONFIG1(0x1A):
Set the 4G, the ODR of 12.5Hz, and the OSR of 0x03.
Into the ACCEL_CONFIG2(0x1B):
Set the filter to variable ODR.
Into the WAKEUP_INT_CONF_0(0x2F):
Enabled the 3 axes (X, Y, Z), the number of samples of 8 and wkup_refu in every time.
In the same burst, I set the int_wkup_thres and the int_wkup_refx/y/z (but the references are not needed because is set the update always).
For the int_wkup_thres I'm using 15, through the formulas and the example, it should do a threshold of 15/32 = 468mg, I already test with 3 (96mg), and 32 (1g), and 128 (4g).
For the reference for the x,y, and z, I set 0,0,32, but they are not being used because is set to update always.
In the INT1_MAP(0x21):
I set the first bit, the wkup_int1.
In the INT_12_IO_CTRL(0x24):
I clear it because want the interrupt to activate low.
In the INT_CONF_1(0x20):
I clear to set the non-latch mode.
Finally, I enable the auto_wakeup to interrupt by in the register AUTOWAKEUP_1(0x2D):
Setting the wkup_int.
That is my configuration, I'm using the OSR the highest possible to reduce noise to see if I can have an interrupt with no false positives. But in the last version want to reduce it to 0 in order to get the lowest current (800nA).
I think what could be wrong is the calculation of the threshold, I followed the examples and the datasheet.
It was with auto wake up, auto low power in the first sample, with a threshold of 32 (1g) with 4G range, updating the reference every time. It is still in a table and still triggers interrupts.
Thanks for the attention,
In your configuration, there is no auto low-power mode setting.
Typically there are 3 ways to make auto low power, 1) timeout 2) GEN1 trigger 3) Data ready interrupt
Chatper 4.3 in datasheet, there is information in details.