NRF52833 GPIOTE PORT EVENT power consume

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!

Related