This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

GPIOTE current consumption in nrf52832

Hi everyone,

I am working on nrf52832 using sdk15.0.0 using ble_app_beacon

I getting 3mA current when falling edge detected, i want to set my device as low low power consume.

which setting need to required when nrf_drv_gpiote.c file used on custom board nrf52.

plese check this below configuration for gpiote ,

static void gpiote_setup()
{
ret_code_t err_code;
// nrf_drv_gpiote_in_config_t i_config = GPIOTE_CONFIG_IN_SENSE_TOGGLE(true);
nrf_drv_gpiote_in_config_t i_config = GPIOTE_CONFIG_IN_SENSE_HITOLO(true);
i_config.pull =NRF_GPIO_PIN_NOPULL;
// i_config.pull =NRF_GPIO_PIN_PULLUP;

err_code = nrf_drv_gpiote_in_init(INPUT_pin, &i_config, GPIOTE_handler); //Configure the second pin. Event handler assigned to store value.
APP_ERROR_CHECK(err_code);
nrf_drv_gpiote_in_event_enable(INPUT_pin, true);
}

I am also try by changing bool paramter in this function nrf_drv_gpiote_in_config_t i_config = GPIOTE_CONFIG_IN_SENSE_HITOLO(false);

still getting current is in between 3mA to 2.85mA.

please someone help me for setting this configuration in low power consumption mode.

Parents
  • Hi.

     Is the current static at 3mA, or is it only a short period? Most of the power should be used by the radio, so you should see a current consumption that varies accordingly to the radio activity. Adding a GPIOTE IN channel should only increase the current of about 0.1 µA. How much current do you measure if you do the same on the development kit? And how do you measure the current?

    regards

    Jared 

  • thanks for reply,

    I am using DCDCE for low current consumption.

    NRF_POWER->DCDCEN = 1;
    //disabling all interupts from peripherals
    NRF_CLOCK->INTENCLR=0xFFFFFFFF;
    NRF_UART0->INTENCLR=0xFFFFFFFF;
    NRF_TWI0->INTENCLR=0xFFFFFFFF;
    NRF_TWI1->INTENCLR=0xFFFFFFFF;
    NRF_SPI0->INTENCLR=0xFFFFFFFF;
    //log_init();
    //timers_init();
    ret_code_t err_code;
    err_code = nrf_drv_gpiote_init();
    APP_ERROR_CHECK(err_code);
    gpiote_setup(); //interrupt defination for pulse pin
    //sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE);
    NRF_POWER->DCDCEN = 1;

    after calling gpiote_setup(), NRF_POWER->DCDCEN register disabled.

    Due to this my device consume more current.

    please help me to solve this problem.

Reply
  • thanks for reply,

    I am using DCDCE for low current consumption.

    NRF_POWER->DCDCEN = 1;
    //disabling all interupts from peripherals
    NRF_CLOCK->INTENCLR=0xFFFFFFFF;
    NRF_UART0->INTENCLR=0xFFFFFFFF;
    NRF_TWI0->INTENCLR=0xFFFFFFFF;
    NRF_TWI1->INTENCLR=0xFFFFFFFF;
    NRF_SPI0->INTENCLR=0xFFFFFFFF;
    //log_init();
    //timers_init();
    ret_code_t err_code;
    err_code = nrf_drv_gpiote_init();
    APP_ERROR_CHECK(err_code);
    gpiote_setup(); //interrupt defination for pulse pin
    //sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE);
    NRF_POWER->DCDCEN = 1;

    after calling gpiote_setup(), NRF_POWER->DCDCEN register disabled.

    Due to this my device consume more current.

    please help me to solve this problem.

Children
No Data
Related