SDK 2.3.0
We have a custom board with a few GPIO connected to various interrupt sources (Button, sensor interrupts, power connection etc.)
We are experiencing here sleep current 70uA even after turning all the other peripherals and sensors off and leaving 2-3 interrupt sources configured.
What I am looking for help with is the lowest possible power interrupt setup.
Here are some settings in the board file as well as the code snippet:
int8_t configButtonInt(bool enable, bool detectOff)
{
int err = 0;
#ifdef DEBUG_PRINT_SENSOR
printf("Enabling pinButtonPwr Int.\n");
#endif
gpio_pin_configure(gpio_dev, pinButtonPwr, GPIO_INPUT | GPIO_PULL_UP);
// if (detectOff)
err = gpio_pin_interrupt_configure(gpio_dev, pinButtonPwr, GPIO_INT_EDGE_BOTH );
// else
// gpio_pin_interrupt_configure(gpio_dev, pinButtonPwr, GPIO_INT_LEVEL_LOW );
if (err !=0)
{
#ifdef DEBUG_PRINT_SENSOR
printf("FAIL - Button Int setup. error: 0x%08X\n", err);
#endif
return err;
}
gpio_init_callback(&gpio_button_cb, buttonIntCallback, BIT(pinButtonPwr));
err = gpio_add_callback(gpio_dev, &gpio_button_cb);
if (err != 0) {
#ifdef DEBUG_PRINT_SENSOR
printf("Failed - Button Int setup\n");
#endif
return err;
}
#ifdef DEBUG_PRINT_SENSOR
printf("OK - Button Int setup\n");
#endif
return ERROR_SUCCESS;
}
here is the common.dts file:
gpiote: &gpiote {
status = "okay";
/*lte uart wake up*/
//interrupts = <4 2>;
// interrupts = <22 2>,<4 2>,<6 2>,<10 2>;
/*12v detect
interrupts = <6 NRF_DEFAULT_IRQ_PRIORITY>;
/*power Button*/
// interrupts = <4 4>;
/*acc int
interrupts = <10 NRF_DEFAULT_IRQ_PRIORITY>;*/
};
gpio0: &gpio0 {
status = "okay";
sense-edge-mask = < 0xffffffff >;
// sense-edge-mask = < 0xffffffff >;
};