NRF52840 module power consumption changes with different vref values

Hi,

I am using EVB of RAYTAC MDBT50Q-DB (nrf52840 module) for power consumption testing,

I'm running a zephyr application on it, to debug power consumption issues, using nrf52840dk device tree...

I noticed that once I set REGOUT with different values of V reference - the power consumption changes.

This is a function from "board.c" file that runs during system initialization (PRE_KERNEL_1)

if ((nrf_power_mainregstatus_get(NRF_POWER) ==
         NRF_POWER_MAINREGSTATUS_HIGH) &&
        ((NRF_UICR->REGOUT0 & UICR_REGOUT0_VOUT_Msk) !=
         (UICR_REGOUT0_VOUT_3V3 << UICR_REGOUT0_VOUT_Pos)))
{

    NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos;
    while (NRF_NVMC->READY == NVMC_READY_READY_Busy)
    {
        ;
    }

    NRF_UICR->REGOUT0 =
        (NRF_UICR->REGOUT0 & ~((uint32_t)UICR_REGOUT0_VOUT_Msk)) |
        (UICR_REGOUT0_VOUT_3V3 << UICR_REGOUT0_VOUT_Pos);

    NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos;
    while (NRF_NVMC->READY == NVMC_READY_READY_Busy)
    {
        ;
    }

    /* a reset is required for changes to take effect */
    NVIC_SystemReset();
}

When I don't run this code, I measure ~4uA (vref is 1.8V by default), and when I run it (vref is set to 3.3V) I measure ~50uA.

Please help me understand the reason for this?

Thank you

Related