Hello,
I have an issue related to LIS2DW12 wake up interrupt. When reading the wake interrupt src it is showing that wake up interrupt is being triggered I am getting value in loop from software interrupt. But after enabling interrupt on INT1 pin I am not getting interrupt over INT1 pin. It's being kept at 0.00 volts. Below is my code snippet (controller I am using is NRF52832):
uint32_t app_mpu_init(void) //LIS2DW12 INIT LOGIC
{
uint32_t err_code;
uint8_t data;
// Initate TWI or SPI driver dependent on what is defined from the project
err_code = nrf_drv_mpu_init();
if(err_code != NRF_SUCCESS) return err_code;
data = readRegister(LIS2DW12_WHO_AM_I);
NRF_LOG_INFO("0X%02X ", data); //Getting 0x44 which is correct
err_code = nrf_drv_mpu_write_single_register(LIS2DW12_CTRL2, 0x40);
if(err_code != NRF_SUCCESS) return err_code;
nrf_delay_ms(1);
err_code = nrf_drv_mpu_write_single_register(LIS2DW12_CTRL2, 0x80);
if(err_code != NRF_SUCCESS) return err_code;
nrf_delay_ms(25);
err_code = nrf_drv_mpu_write_single_register(LIS2DW12_CTRL1, 0x30);
if(err_code != NRF_SUCCESS) return err_code;
err_code = nrf_drv_mpu_write_single_register(LIS2DW12_CTRL3, 0x00);
if(err_code != NRF_SUCCESS) return err_code;
err_code = nrf_drv_mpu_write_single_register(LIS2DW12_CTRL6, 0x0C);
if(err_code != NRF_SUCCESS) return err_code;
return NRF_SUCCESS;
}
Below is the interrupt enable logic:
uint32_t app_mpu_int_enable(void) // Enabling interrupt on LIS2DW12 IC
{
uint32_t err_code;
err_code = nrf_drv_mpu_write_single_register(LIS2DW12_CTRL_REG7, 0x00);
if(err_code != NRF_SUCCESS) return err_code;
nrf_delay_ms(1);
err_code = nrf_drv_mpu_write_single_register(LIS2DW12_CTRL4_INT1_PAD_CTRL, 0x20);
if(err_code != NRF_SUCCESS) return err_code;
err_code = nrf_drv_mpu_write_single_register(LIS2DW12_WAKE_UP_DUR, 0x00);
if(err_code != NRF_SUCCESS) return err_code;
err_code = nrf_drv_mpu_write_single_register(LIS2DW12_WAKE_UP_THS, 0x42);
if(err_code != NRF_SUCCESS) return err_code;
err_code = nrf_drv_mpu_write_single_register(LIS2DW12_CTRL_REG7, 0x60);
if(err_code != NRF_SUCCESS) return err_code;
return NRF_SUCCESS;
}
Need help in getting interrupt over INT1 pin checked with oscilloscope not interrupt is being routed to INT1 pin.
Please let me know if any further information you require. Our product is in final stage and we have a huge qty of 10k by this first quarter of 2025.