DC/DC higher consumption than LDO

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.

Parents
  • Hi

    What SDK version are you using here on your end? Enabling the DCDC register should let the SoC internally switch between using the DCDC and LDO depending on which is more power efficient, but if you're forcing the DCDC regulator to be on somehow, then it will consume more power than the LDO when the voltage is low during some operations (like when asleep). But by default, the nRF52832 should switch between using what's more efficient with the DCDC bit enabled.

    In general, multiple hundred µAs is pretty high in a sleep mode, so is there something else on your board drawing current as well?

    Best regards,

    Simon

  • Yes, but I'm looking at difference between DCDC sleep and LDO. 

    I'm using okd SDK, 17.1.0.

    DCDC is enabled with register write and later(before and after sleep) SD function controls DCDC.

    I'm not sure how I could force DCDC to be on all the time. 

Reply Children
No Data
Related