Reduce LIS2DW12 power consumption at idle
Hello, this project uses the LIS2DW12 to get interrupts from INT1 when activity is detected.
Vdd is 3.3V.
My goal is to minimize the power consumption when the accelerometer is idle. According to the datasheet.
The following commands are run at init.
if(lis2dw12_full_scale_set(&dev_ctx, LIS2DW12_2g))
return 1;
if(lis2dw12_power_mode_set(&dev_ctx, LIS2DW12_CONT_LOW_PWR_LOW_NOISE_12bit))
return 1;
if(lis2dw12_data_rate_set(&dev_ctx, LIS2DW12_XL_ODR_12Hz5))
return 1;
if(lis2dw12_filter_path_set(&dev_ctx, LIS2DW12_HIGH_PASS_ON_OUT))
return 1;
if(lis2dw12_wkup_dur_set(&dev_ctx, 0))
return 1;
After the application is done, the system is put to sleep along with the peripherals.
Without the LIS2DW12, the current is <10uA, however when the accelerometer is put to sleep, the current rises to 140uA. The code used to put the accelerometer to sleep is:
if(lis2dw12_data_rate_set(&dev_ctx, LIS2DW12_XL_ODR_OFF))
return 1;
This is quite high compared to the 2uA stated in the datasheet for the low power continuous mode, at 1.8V.
What am I required to do in order to reduce the current consumption to <10uA ?
