@FAE_CA1 wrote: The intenral interrupt engine in BMA253 is the same as the one in BMA250E. This means that your interrupt handler that works for BMA250E should also work for BMA253. That's what I would expect, right. @FAE_CA1 wrote: Please share with us how you map all interrupts to INT1 pin and how your interrupt handler takes care of the status register 0x09. We will then try to see if we can duplicate this issue or not. Sure. Basic config: retval += bma2x2_set_latch_intr(BMA2x2_LATCH_DURN_50MS);
retval += bma2x2_set_source(BMA2x2_SOURCE_DATA, INTR_DISABLE);
retval += bma2x2_set_source(BMA2x2_SOURCE_SLOW_NO_MOTION, INTR_ENABLE);
retval += bma2x2_set_source(BMA2x2_SOURCE_TAP, INTR_DISABLE);
retval += bma2x2_set_source(BMA2x2_SOURCE_SLOPE, INTR_ENABLE);
retval += bma2x2_set_source(BMA2x2_SOURCE_HIGH_G, INTR_ENABLE);
retval += bma2x2_set_source(BMA2x2_SOURCE_LOW_G, INTR_ENABLE);
// Set interrupt outputs, active high level, 1msec pulse, push pull.
retval += bma2x2_set_intr_output_type(BMA2x2_INTR1_OUTPUT, PUSH_PULL);
retval += bma2x2_set_intr_output_type(BMA2x2_INTR2_OUTPUT, PUSH_PULL);
// INT1/INT2 outputs active high.
retval += bma2x2_set_intr_level(BMA2x2_INTR1_LEVEL,ACTIVE_HIGH);
retval += bma2x2_set_intr_level(BMA2x2_INTR2_LEVEL,ACTIVE_HIGH);
// Set interrupt mapping to INT1 output pin.
retval += bma2x2_set_intr_slow_no_motion(BMA2x2_INTR1_SLOW_NO_MOTION, INTR_ENABLE);
retval += bma2x2_set_intr_slope(BMA2x2_INTR1_SLOPE, INTR_ENABLE);
retval += bma2x2_set_intr_high_g(BMA2x2_INTR1_HIGH_G, INTR_ENABLE);
retval += bma2x2_set_intr_low_g(BMA2x2_INTR1_LOW_G, INTR_ENABLE);
// Disable non used interruptions.
retval += bma2x2_set_intr_enable(BMA2x2_DATA_ENABLE, INTR_DISABLE);
retval += bma2x2_set_intr_enable(BMA2x2_DOUBLE_TAP_INTR, INTR_DISABLE);
retval += bma2x2_set_intr_enable(BMA2x2_SINGLE_TAP_INTR, INTR_DISABLE); And then in the interrupt handler: uint8_t status;
uint32_t retval;
retval= bma2x2_get_intr_stat(&status); Which for the BMA250e status has the right insterruptions bits in 1 and for the BMA253 we get status = 0. I'll ask the technicians to provide me with another board just in case something is wrong with mine...
... View more