AnsweredAssumed Answered

MMA8652 and MMA8451 change interrupt routing.

Question asked by Artem Kostin on Dec 20, 2017

Hello, I use MMA8652 and MMA8451 in my project. Due to requirements I need very low power consumption and I decided change interrupt configuration during different operation modes.
To INT1 routed Auto-Wake interrupt.
To INT2 can be routed: 

  • Noting;
  • FIFO;
  • Transient;

When I change configuration from FIFO to Transient there is some unexpected behavior, INT2 pulled down for ~7seconds. 

 

Changing mode performed by following sequence (when from FIFO to TRANSIENT):

  • Receive last FIFO interrupt
  • Read FIFO's data.
  • Read current mode (register 0x2A)
  • Switch mode to "stand by" (Reset active bit, write back)
  • Change Routing configuration (write register 0x2D)
  • Switch mode to "Active" (register 0x2A)

Changing mode performed by following sequence (when from TRANSIENT to FIFO):

  • Receive last TRANSIENT interrupt
  • Read current mode (register 0x2A)
  • Switch mode to "stand by" (Reset active bit, write back)
  • Change Routing configuration (write register 0x2D)
  • Switch mode to "Active" (register 0x2A)

 

I tried to read INT_SOURCE_REGISTER (0x0C), TRANSIEN_SRC (0x1E) and F_STATUS (0x00) but INT2 pin stay in active level. What accelerometer doing during this time? What the reason and how this behavior can be resolved? ##

Outcomes