Reply
<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Genius</font></font> </a> tj
Posts: 25
Registered: ‎07-04-2016
Accepted Solution

EFR32MG - power comsumption in EM4S mode

I'm testing power consumption on SLWSTK6000A + BRD4151A board.
I have 1.76mA current consumption in EM4S mode, it should be only 5uA.
Energy Profiler shows working BUS_RegBitRead function. Why this function is active in EM4S mode ?

What can be wrong in my configuration ?

 

static void disableHFClocks(void)
{
  // Disable High Frequency Peripheral Clocks
  CMU_ClockEnable(cmuClock_HFPER, false);
  CMU_ClockEnable(cmuClock_USART0, false);
  CMU_ClockEnable(cmuClock_USART1, false);
  CMU_ClockEnable(cmuClock_TIMER0, false);
  CMU_ClockEnable(cmuClock_TIMER1, false);
  CMU_ClockEnable(cmuClock_CRYOTIMER, false);
  CMU_ClockEnable(cmuClock_ACMP0, false);
  CMU_ClockEnable(cmuClock_ACMP1, false);
  CMU_ClockEnable(cmuClock_IDAC0, false);
  CMU_ClockEnable(cmuClock_ADC0, false);
  CMU_ClockEnable(cmuClock_I2C0, false);

  // Disable High Frequency Bus Clocks
  CMU_ClockEnable(cmuClock_CRYPTO, false);
  CMU_ClockEnable(cmuClock_LDMA, false);
  CMU_ClockEnable(cmuClock_GPCRC, false);
  CMU_ClockEnable(cmuClock_GPIO, false);
  CMU_ClockEnable(cmuClock_HFLE, false);
  CMU_ClockEnable(cmuClock_PRS, false);
}

/**************************************************************************//**
 * @brief   Disable low frequency clocks
 *****************************************************************************/
static void disableLFClocks(void)
{
  // Enable LFXO for Low Frequency Clock Disables
  CMU_OscillatorEnable(cmuOsc_LFXO, true, true);

  // Disable Low Frequency A Peripheral Clocks
  // Note: LFA clock must be sourced before modifying peripheral clock enables
  CMU_ClockSelectSet(cmuClock_LFA, cmuSelect_LFXO);
  CMU_ClockEnable(cmuClock_LETIMER0, false);
  CMU_ClockEnable(cmuClock_PCNT0, false);
  CMU_ClockSelectSet(cmuClock_LFA, cmuSelect_Disabled);

  // Disable Low Frequency B Peripheral Clocks
  // Note: LFB clock must be sourced before modifying peripheral clock enables
  CMU_ClockSelectSet(cmuClock_LFB, cmuSelect_LFXO);
  CMU_ClockEnable(cmuClock_LEUART0, false);
  CMU_ClockSelectSet(cmuClock_LFB, cmuSelect_Disabled);

  // Disable Low Frequency E Peripheral Clocks
  // Note: LFE clock must be sourced before modifying peripheral clock enables
  CMU_ClockSelectSet(cmuClock_LFE, cmuSelect_LFXO);
  CMU_ClockEnable(cmuClock_RTCC, false);
  CMU_ClockSelectSet(cmuClock_LFE, cmuSelect_Disabled);

  // Disable Low Frequency Oscillator
  CMU_OscillatorEnable(cmuOsc_LFXO, false, true);
}

/**************************************************************************//**
 * @brief   Disable all clocks to achieve lowest current consumption numbers.
 *****************************************************************************/
static void disableClocks(void)
{
  // Disable High Frequency Clocks
  disableHFClocks();

  // Disable Low Frequency Clocks
  disableLFClocks();
}



int main(void)
{
	int i;

	CHIP_Init();

	BSP_TraceProfilerSetup();
	CMU_ClockSelectSet(cmuClock_HF, cmuSelect_HFXO);

	disableClocks();

	EMU_EM4Init_TypeDef em4Init = EMU_EM4INIT_DEFAULT;
	em4Init.em4State = emuEM4Shutoff;
	EMU_EM4Init(&em4Init);
	EMU_EnterEM4S();

	ledOn(LED0);

	while(1)
	{}
}

energy.png

Posts: 1,476
Registered: ‎10-14-2014

Re: EFR32MG - power comsumption in EM4S mode

As far as I remembered other report similar issue. According the investigation this is board related. Maybe there is a pin (PA4) that control SPI flash has effect on the power consumption under EM4S.

Could you have a quick test to configure the PA4 as push-pull and latch to high to see if there is some change on your side?

My views are my own and do not necessarily represent the views of Silicon Labs

<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Genius</font></font> </a> tj
Posts: 25
Registered: ‎07-04-2016

Re: EFR32MG - power comsumption in EM4S mode

It's better, with PA4 in push-pull mode I have 900μA on BRD4151A board.

 

I have checked current consumption on my own board with EFR32MG1 in QFN32 package. There is only

EFR32MG1P132F256GM32 device with HFXO and LFXO rezonators. I have 7μA in EM4H, but in data sheet max is 1.3 μA with no RTCC in this mode. 

What else can cause this power consumption ?

 

Posts: 229
Registered: ‎09-18-2015

Re: EFR32MG - power comsumption in EM4S mode

Hi tj,

 

Any chance you have a pull-up/down enabled on a GPIO pin?  There can be current leaked through these pins in any low-energy mode if you have a connected device that hasn't placed it's I/Os in Hi-Z and might be driving the pin.  You could try disabling the GPIOs of anything connected to see if this solves the problem.

 

John

Highlighted
<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Genius</font></font> </a> tj
Posts: 25
Registered: ‎07-04-2016

Re: EFR32MG - power comsumption in EM4S mode

In EM4H mode with RTC on board with MCU only I have 450-480nA.

On board with other components I have 600-800nA.

I have wrote function to set mode on connected pins.

void gpioDisablePins(uint32_t mode,uint32_t level)
{
	GPIO_PinModeSet(gpioPortB, 13,  mode, level);

	GPIO_PinModeSet(gpioPortC, 10,  mode, level);
	GPIO_PinModeSet(gpioPortC, 11,  mode, level);

	GPIO_PinModeSet(gpioPortD, 14,  mode, level);
}

Here is my test results:

	gpioDisablePins(gpioModeInputPull, 1); //770nA
	gpioDisablePins(gpioModeInputPull, 0); //800nA
	gpioDisablePins(gpioModeDisabled, 0); //790nA
	gpioDisablePins(gpioModeDisabled, 1); //650nA
	gpioDisablePins(gpioModeInput, 0); //650nA
	gpioDisablePins(gpioModeInput, 1); //630nA  -  507nA after 10min
	gpioDisablePins(gpioModeWiredOr, 0); //480nA

Can you explain why there are these differences ?

What is best setting for low consumption in EM4H ?