EMU - Energy Management Unit

Description

Energy Management Unit (EMU) Peripheral API.

This module contains functions to control the EMU peripheral of Silicon Labs 32-bit MCUs and SoCs. The EMU handles the different low energy modes in Silicon Labs microcontrollers.

Data Structures

struct EMU_EM23Init_TypeDef
EM2 and 3 initialization structure.
struct EMU_EM4Init_TypeDef
EM4 initialization structure.

Functions

void EMU_EM23Init (const EMU_EM23Init_TypeDef *em23Init)
Update the EMU module with Energy Mode 2 and 3 configuration.
void EMU_EM23PresleepHook (void)
Energy mode 2/3 pre-sleep hook function.
void EMU_EM23PostsleepHook (void)
Energy mode 2/3 post-sleep hook function.
void EMU_EM4Init (const EMU_EM4Init_TypeDef *em4Init)
Update the EMU module with Energy Mode 4 configuration.
void EMU_EnterEM2 (bool restore)
Enter energy mode 2 (EM2).
void EMU_EnterEM3 (bool restore)
Enter energy mode 3 (EM3).
void EMU_Save (void)
Save the CMU HF clock select state, oscillator enable, and voltage scaling (if available) before EMU_EnterEM2() or EMU_EnterEM3() are called with the restore parameter set to false.
void EMU_Restore (void)
Restore CMU HF clock select state, oscillator enable, and voltage scaling (if available) after EMU_EnterEM2() or EMU_EnterEM3() are called with the restore parameter set to false.
void EMU_EM4PresleepHook (void)
Energy mode 4 pre-sleep hook function.
void EMU_EnterEM4 (void)
Enter energy mode 4 (EM4).
void EMU_EnterEM4H (void)
Enter energy mode 4 hibernate (EM4H).
void EMU_EnterEM4S (void)
Enter energy mode 4 shutoff (EM4S).
void EMU_MemPwrDown (uint32_t blocks)
Power down memory block.
void EMU_RamPowerDown (uint32_t start, uint32_t end)
Power down RAM memory blocks.
void EMU_RamPowerUp (void)
Power up all available RAM memory blocks.
void EMU_UpdateOscConfig (void)
Update EMU module with CMU oscillator selection/enable status.
void EMU_EFPEM23PresleepHook (void)
EFP's Energy mode 2/3 pre-sleep hook function.
void EMU_EFPEM23PostsleepHook (void)
EFP's Energy mode 2/3 post-sleep hook function.
void EMU_EFPEM4PresleepHook (void)
EFP's Energy mode 4 pre-sleep hook function.
float EMU_TemperatureGet (void)
Get temperature in degrees Celcius.
void EMU_EnterEM1 (void)
Enter energy mode 1 (EM1).
void EMU_IntClear (uint32_t flags)
Clear one or more pending EMU interrupts.
void EMU_IntDisable (uint32_t flags)
Disable one or more EMU interrupts.
void EMU_IntEnable (uint32_t flags)
Enable one or more EMU interrupts.
uint32_t EMU_IntGet (void)
Get pending EMU interrupt flags.
uint32_t EMU_IntGetEnabled (void)
Get enabled and pending EMU interrupt flags.
void EMU_IntSet (uint32_t flags)
Set one or more pending EMU interrupts.
void EMU_Lock (void)
Lock EMU registers in order to protect them against unintended modification.
void EMU_Unlock (void)
Unlock the EMU so that writing to locked registers again is possible.
void EMU_UnlatchPinRetention (void)
When EM4 pin retention is set to emuPinRetentionLatch, then pins are retained through EM4 entry and wakeup.
bool EMU_TemperatureReady (void)
Temperature measurement ready status.

Macros

#define EMU_EM23INIT_DEFAULT
Default initialization of EM2 and 3 configuration.
#define EMU_EM4INIT_DEFAULT
Default initialization of EM4 configuration (Series 1 without VSCALE).
#define EMU_TEMP_ZERO_C_IN_KELVIN (273.15f)
Zero degrees Celcius in Kelvin.
#define EMU_TEMPCO_CONST (0.273f)
As we do not know what energy mode a temperature measurement was taken at, we choose a constant for the TEMPCO calculation that is midway between the EM0/EM1 constant and the EM2/EM3/EM4 constant.

Enumerations

enum EMU_BODMode_TypeDef {
emuBODMode_Active ,
emuBODMode_Inactive
}
BOD threshold setting selector, active or inactive mode.
enum EMU_EM4State_TypeDef {
emuEM4Shutoff = 0,
emuEM4Hibernate = 1
}
EM4 modes.
enum EMU_EM4PinRetention_TypeDef {
emuPinRetentionDisable = EMU_EM4CTRL_EM4IORETMODE_DISABLE,
emuPinRetentionEm4Exit = EMU_EM4CTRL_EM4IORETMODE_EM4EXIT,
emuPinRetentionLatch = EMU_EM4CTRL_EM4IORETMODE_SWUNLATCH
}
EM4 Pin Retention Type.
enum EMU_PowerConfig_TypeDef { emuPowerConfig_DcdcToDvdd }
Power configurations.

Function Documentation

EMU_EM23Init()

void EMU_EM23Init ( const EMU_EM23Init_TypeDef * em23Init )

Update the EMU module with Energy Mode 2 and 3 configuration.

Parameters