Hi,
when DC/DC is enabled, current consumption in sleep is higher than when using LDO.
This is consumtion with DCDC = 0

This is power consumtion when DCDC = 1

System init
Return_t init(void)
{
// Test crystals only in debug build
#ifdef DEBUG
_PRINT("Wait for HFXO\n");
NRF_CLOCK->EVENTS_HFCLKSTARTED = 0;
NRF_CLOCK->TASKS_HFCLKSTART = 1;
while (NRF_CLOCK->EVENTS_HFCLKSTARTED == 0);
NRF_CLOCK->EVENTS_HFCLKSTARTED = 0;
_PRINT("HFXO started\n");
_PRINT("Wait for LFXO\n");
NRF_CLOCK->EVENTS_LFCLKSTARTED = 0;
NRF_CLOCK->TASKS_LFCLKSTART = 1;
while (NRF_CLOCK->EVENTS_LFCLKSTARTED == 0);
NRF_CLOCK->EVENTS_LFCLKSTARTED = 0;
_PRINT("LFXO started\n");
#endif // DEBUG
// Configure power
NRF_POWER->POFCON = 0;
NRF_POWER->DCDCEN = 1;
// Init watchdog
NRF_WDT->CRV = (AppConfig::wdtTimeout * 32768) - 1;
#ifdef DEBUG
NRF_WDT->CONFIG = 1;
#else
NRF_WDT->CONFIG = 9;
#endif // DEBUG
NRF_WDT->TASKS_START = 1;
// Enable RTC interrupt
ret_code_t ret = sd_nvic_SetPriority(RTC2_IRQn, 2);
if (ret != NRF_SUCCESS)
{
APP_ERROR_CHECK(ret);
return Return_t::NOK;
}
ret = sd_nvic_EnableIRQ(RTC2_IRQn);
if (ret != NRF_SUCCESS)
{
APP_ERROR_CHECK(ret);
return Return_t::NOK;
}
// Enable compare0 interrupt
NRF_RTC2->INTENSET = (1 << 16);
// Set counter resolution of 125ms
NRF_RTC2->PRESCALER = 4095;
startWakeupTimer();
return Return_t::OK;
}
void startWakeupTimer(void)
{
NRF_RTC2->TASKS_CLEAR = 1;
NRF_RTC2->CC[0] = (AppConfig::measurePeriod * 1000) / 125;
NRF_RTC2->TASKS_START = 1;
_PRINT_INFO("Wakeup timer started\n");
}
I expected to get better power consumption when using DC/DC. Is there reason why consumption is higher?
nRF52832 with Softdevice S132. HFXO is later requested by calling SD function.
VDD is 3V from PPK2.
EDIT:
This is consumption when MCU is running(just feeding the watchdog).
LDO

DC/DC

Is that expected?
This is HW design

Seems like DC/DC is really inefficient when in sleep.
How much DC/DC startup takes time and power? Seems like good idea to switch off DC/DC before sleep.
