Hi Nordic team:
I am configuring a low power application for the nrf52833 board (custom board). This is a very low power application and I want the board to stay on sleep mode the majority of the time. I have configured 2 pins to wake up the device from sleep mode if an interrupt is recognized which is coming from uart rx pin or sensor irq pin. I have set this up as follows:
void gpio_config_irq(void) { ret_code_t err_code; if (!nrf_drv_gpiote_is_init()) { err_code = nrf_drv_gpiote_init(); APP_ERROR_CHECK(err_code); nrf_drv_gpiote_in_config_t in_config = GPIOTE_CONFIG_IN_SENSE_LOTOHI(true); in_config.pull = NRF_GPIO_PIN_PULLDOWN; err_code = nrf_drv_gpiote_in_init(NRF_GPIO_PIN_MAP(0,4), &in_config, deca_irq_handler); APP_ERROR_CHECK(err_code); nrf_drv_gpiote_in_config_t in_config_rx = GPIOTE_CONFIG_IN_SENSE_HITOLO(true); in_config_rx.pull = NRF_GPIO_PIN_PULLUP; err_code = nrf_drv_gpiote_in_init(NRF_GPIO_PIN_MAP(0,3), &in_config_rx, uart_rx_irq); APP_ERROR_CHECK(err_code); nrf_drv_gpiote_in_event_enable(NRF_GPIO_PIN_MAP(0,4), false); //nrf_drv_gpiote_in_event_enable(NRF_GPIO_PIN_MAP(0,3), true); } }
And the current stays at the reasonable value of around 3.00uA,but if call this function to enable pin0.03 irq ,nrf_drv_gpiote_in_event_enable(NRF_GPIO_PIN_MAP(0,3), true); current will be 10uA and it is larger than I expected,and it's unreasonable.My sensor irq pin is NRF_GPIO_PIN_MAP(0,4), Uart rx pin is NRF_GPIO_PIN_MAP(0,3);
We now have 50k orders ready to ship and urgently need to solve this problem.
Thanks!