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.