ICM-20690
5.1 WAKE-ON-MOTION INTERRUPT
The ICM-20690 provides motion detection capability. A qualifying motion sample is one where the high passed sample from any axis
has an absolute value exceeding a user-programmable threshold. The following steps explain how to configure the Wake-on-Motion
Interrupt.
Step 1: Ensure that Accelerometer is running
In PWR_MGMT_1 register (0x6B) set CYCLE = 0, SLEEP = 0, and GYRO_STANDBY = 0
In PWR_MGMT_2 register (0x6C) set STBY_XA = STBY_YA = STBY_ZA = 0, and STBY_XG = STBY_YG = STBY_ZG = 1
Step 2: Accelerometer Configuration
In ACCEL_CONFIG2 register (0x1D) set ACCEL_FCHOICE_B = 1 and A_DLPF_CFG[2:0] = 1 (b001)
Step 3: Enable Motion Interrupt
In INT_ENABLE register (0x38) set WOM_X_INT_EN = WOM_Y_INT_EN = WOM_Z_INT_EN = 1 to enable motion interrupt for
X, Y, and Z axis
Step 4: Set Motion Threshold
Set the motion threshold for X-axis in ACCEL_WOM_X_THR register (0x20)
Set the motion threshold for Y-axis in ACCEL_WOM_Y_THR register (0x21)
Set the motion threshold for Z-axis in ACCEL_WOM_Z_THR register (0x22)
Step 5: Set Interrupt Mode
In ACCEL_INTEL_CTRL register (0x69) clear bit 0 (WOM_TH_MODE) to select the motion interrupt as an OR of the enabled
interrupts for X, Y, Z-axes and set bit 0 to make the interrupt an AND of the enabled interrupts for X, Y, Z axes)
Step 6: Enable Accelerometer Hardware Intelligence
In ACCEL_INTEL_CTRL register (0x69) set ACCEL_INTEL_EN = ACCEL_INTEL_MODE = 1; Ensure that bit 0 is set to 0.
Step 7: Set Frequency of Wake-Up
In register (0x19) set SMPLRT_DIV for a sample rate as indicated in the register map
Step 8: Enable Cycle Mode (Accelerometer Low-Power Mode)
In PWR_MGMT_1 register (0x6B) set CYCLE = 1
Page 26 of 76
Document Number: DS-000178
Revision: 1.0