BURTC - Backup RTC

Description

Backup Real Time Counter (BURTC) Peripheral API.

This module contains functions to control the BURTC peripheral of Silicon Labs 32-bit MCUs. The Backup Real Time Counter allows timekeeping in all energy modes. The Backup RTC is also available when the system is in backup mode.

Data Structures

struct BURTC_Init_TypeDef
BURTC initialization structure for Series 0 devices.

Functions

void BURTC_Init (const BURTC_Init_TypeDef *burtcInit)
Initialize BURTC.
void BURTC_Enable (bool enable)
Enable or Disable BURTC peripheral reset and start counter.
void BURTC_CompareSet (unsigned int comp, uint32_t value)
Set BURTC compare channel.
uint32_t BURTC_CompareGet (unsigned int comp)
Get the BURTC compare value.
void BURTC_CounterReset (void)
Reset counter.
void BURTC_Reset (void)
Restore BURTC to reset state.
uint32_t BURTC_ClockFreqGet (void)
Get the clock frequency of the BURTC.
void BURTC_IntClear (uint32_t flags)
Clear one or more pending BURTC interrupts.
void BURTC_IntDisable (uint32_t flags)
Disable one or more BURTC interrupts.
void BURTC_IntEnable (uint32_t flags)
Enable one or more BURTC interrupts.
uint32_t BURTC_IntGet (void)
Get pending BURTC interrupt flags.
uint32_t BURTC_IntGetEnabled (void)
Get enabled and pending BURTC interrupt flags.
void BURTC_IntSet (uint32_t flags)
Set one or more pending BURTC interrupts from SW.
uint32_t BURTC_Status (void)
Status of BURTC RAM, timestamp and LP Mode.
void BURTC_StatusClear (void)
Clear and reset BURTC status register.
void BURTC_SyncWait (void)
Wait for the BURTC to complete all synchronization of register changes and commands.
uint32_t BURTC_CounterGet (void)
Get BURTC counter.
uint32_t BURTC_TimestampGet (void)
Get BURTC timestamp for entering BU.
void BURTC_FreezeEnable (bool enable)
Freeze register updates until enabled.
void BURTC_Powerdown (bool enable)
Shut down power to rentention register bank.
void BURTC_RetRegSet (uint32_t num, uint32_t data)
Set a value in one of the retention registers.
uint32_t BURTC_RetRegGet (uint32_t num)
Read a value from one of the retention registers.
void BURTC_Lock (void)
Lock BURTC registers, will protect from writing new config settings.
void BURTC_Unlock (void)
Unlock BURTC registers, enable write access to change configuration.

Macros

#define burtcClkDiv_1 1
BURTC clock divisors.
#define burtcClkDiv_2 2
Divide clock by 2.
#define burtcClkDiv_4 4
Divide clock by 4.
#define burtcClkDiv_8 8
Divide clock by 8.
#define burtcClkDiv_16 16
Divide clock by 16.
#define burtcClkDiv_32 32
Divide clock by 32.
#define burtcClkDiv_64 64
Divide clock by 64.
#define burtcClkDiv_128 128
Divide clock by 128.
#define BURTC_INIT_DEFAULT
Default configuration for BURTC initialization structure.

Enumerations

enum BURTC_ClkSel_TypeDef {
burtcClkSelULFRCO = BURTC_CTRL_CLKSEL_ULFRCO,
burtcClkSelLFRCO = BURTC_CTRL_CLKSEL_LFRCO,
burtcClkSelLFXO = BURTC_CTRL_CLKSEL_LFXO
}
BURTC clock selection.
enum BURTC_Mode_TypeDef {
burtcModeDisable = BURTC_CTRL_MODE_DISABLE,
burtcModeEM2 = BURTC_CTRL_MODE_EM2EN,
burtcModeEM3 = BURTC_CTRL_MODE_EM3EN,
burtcModeEM4 = BURTC_CTRL_MODE_EM4EN
}
BURTC mode of operation.
enum BURTC_LP_TypeDef {
burtcLPDisable = BURTC_LPMODE_LPMODE_DISABLE,
burtcLPEnable = BURTC_LPMODE_LPMODE_ENABLE,
burtcLPBU = BURTC_LPMODE_LPMODE_BUEN
}
BURTC low power mode.

Function Documentation

BURTC_Init()

void BURTC_Init ( const BURTC_Init_TypeDef * burtcInit )

Initialize BURTC.

Configures the BURTC peripheral.

Note
Before initialization, BURTC module must first be enabled by clearing the reset bit in the RMU, i.e.,
*   RMU_ResetControl(rmuResetBU, rmuResetModeClear);
* 
Compare channel 0 must be configured outside this function, before initialization if enable is set to true. The counter will always be reset.
Parameters
[in] burtcInit A pointer to the BURTC initialization structure.

BURTC_Enable()

void BURTC_Enable ( bool enable )

Enable or Disable BURTC peripheral reset and start counter.

Parameters
[in] enable If true; asserts reset to BURTC, halts counter, if false; deassert reset

BURTC_CompareSet()

void BURTC_CompareSet ( unsigned int comp,
uint32_t value
)

Set BURTC compare channel.

Parameters
[in] comp Compare the channel index, must be 0 for current devices.
[in] value New compare value.

BURTC_CompareGet()

uint32_t BURTC_CompareGet ( unsigned int comp )

Get the BURTC compare value.

Parameters
[in] comp Compare the channel index value, must be 0 for Giant/Leopard Gecko.
Returns
The currently configured value for this compare channel.

BURTC_CounterReset()

void BURTC_CounterReset ( void )

Reset counter.

BURTC_Reset()

void BURTC_Reset ( void )

Restore BURTC to reset state.

Note
Before accessing the BURTC, BURSTEN in RMU->CTRL must be cleared. LOCK will not be reset to default value, as this will disable access to core BURTC registers.

BURTC_ClockFreqGet()

uint32_t BURTC_ClockFreqGet ( void )

Get the clock frequency of the BURTC.

Returns
The current frequency in Hz.

Ultra-low frequency (1 kHz) clock.

Low-frequency RC oscillator.

Low-frequency crystal oscillator.

BURTC_IntClear()

void BURTC_IntClear ( uint32_t flags )
inline

Clear one or more pending BURTC interrupts.

Parameters
[in] flags BURTC interrupt sources to clear. Use a set of interrupt flags OR-ed together to clear multiple interrupt sources for the BURTC module (BURTC_IFS_nnn).

BURTC_IntDisable()

void BURTC_IntDisable ( uint32_t flags )
inline

Disable one or more BURTC interrupts.

Parameters
[in] flags BURTC interrupt sources to disable. Use a set of interrupt flags OR-ed together to disable multiple interrupt sources for the BURTC module (BURTC_IFS_nnn).

BURTC_IntEnable()

void BURTC_IntEnable ( uint32_t flags )
inline

Enable one or more BURTC interrupts.

Note
Depending on use, a pending interrupt may already be set prior to enabling the interrupt. Consider using BURTC_IntClear() prior to enabling if a pending interrupt should be ignored.
Parameters
[in] flags BURTC interrupt sources to enable. Use a set of interrupt flags OR-ed together to set multiple interrupt sources for the BURTC module (BURTC_IFS_nnn).

BURTC_IntGet()

uint32_t BURTC_IntGet ( void )
inline

Get pending BURTC interrupt flags.

Note
This function does not clear the event bits.
Returns
Pending BURTC interrupt sources. Returns a set of interrupt flags OR-ed together for multiple interrupt sources in the BURTC module (BURTC_IFS_nnn).

BURTC_IntGetEnabled()

uint32_t BURTC_IntGetEnabled ( void )
inline

Get enabled and pending BURTC interrupt flags.

Note
The event bits are not cleared by the use of this function.
Returns
Pending BURTC interrupt sources that is also enabled. Returns a set of interrupt flags OR-ed together for multiple interrupt sources in the BURTC module (BURTC_IFS_nnn).

BURTC_IntSet()

void BURTC_IntSet ( uint32_t flags )
inline

Set one or more pending BURTC interrupts from SW.

Parameters
[in] flags BURTC interrupt sources to set to pending. Use a set of interrupt flags OR-ed together to set multiple interrupt sources for the BURTC module (BURTC_IFS_nnn).

BURTC_Status()

uint32_t BURTC_Status ( void )
inline

Status of BURTC RAM, timestamp and LP Mode.

Returns
A mask logially OR-ed status bits

BURTC_StatusClear()

void BURTC_StatusClear ( void )
inline

Clear and reset BURTC status register.

BURTC_SyncWait()

void BURTC_SyncWait ( void )
inline

Wait for the BURTC to complete all synchronization of register changes and commands.

BURTC_CounterGet()

uint32_t BURTC_CounterGet ( void )
inline

Get BURTC counter.

Returns
BURTC counter value

BURTC_TimestampGet()

uint32_t BURTC_TimestampGet ( void )
inline

Get BURTC timestamp for entering BU.

Returns
BURTC Time Stamp value

BURTC_FreezeEnable()

void BURTC_FreezeEnable ( bool enable )
inline

Freeze register updates until enabled.

Parameters
[in] enable If true, registers are not updated until enabled again.

BURTC_Powerdown()

void BURTC_Powerdown ( bool enable )
inline

Shut down power to rentention register bank.

Parameters
[in] enable If true, shuts off power to retention registers.
Note
When power rentention is disabled, it cannot be enabled again (until reset).

BURTC_RetRegSet()

void BURTC_RetRegSet ( uint32_t num,
uint32_t data
)
inline

Set a value in one of the retention registers.

Parameters
[in] num Register to set
[in] data Value to put into register

BURTC_RetRegGet()

uint32_t BURTC_RetRegGet ( uint32_t num )
inline

Read a value from one of the retention registers.

Parameters
[in] num Retention Register to read
Returns
Value of the retention register

BURTC_Lock()

void BURTC_Lock ( void )
inline

Lock BURTC registers, will protect from writing new config settings.

BURTC_Unlock()

void BURTC_Unlock ( void )
inline

Unlock BURTC registers, enable write access to change configuration.

Macro Definition Documentation

burtcClkDiv_1

#define burtcClkDiv_1   1

BURTC clock divisors.

These values are valid for the BURTC prescaler. Divide clock by 1.

burtcClkDiv_2

#define burtcClkDiv_2   2

Divide clock by 2.

burtcClkDiv_4

#define burtcClkDiv_4   4

Divide clock by 4.

burtcClkDiv_8

#define burtcClkDiv_8   8

Divide clock by 8.

burtcClkDiv_16

#define burtcClkDiv_16   16

Divide clock by 16.

burtcClkDiv_32

#define burtcClkDiv_32   32

Divide clock by 32.

burtcClkDiv_64

#define burtcClkDiv_64   64

Divide clock by 64.

burtcClkDiv_128

#define burtcClkDiv_128   128

Divide clock by 128.

BURTC_INIT_DEFAULT

#define BURTC_INIT_DEFAULT
Value:
{ \
true, \
burtcModeEM2, \
false, \
burtcClkSelULFRCO, \
burtcClkDiv_1, \
0, \
true, \
false, \
burtcLPDisable, \
}

Default configuration for BURTC initialization structure.

Enumeration Type Documentation

BURTC_ClkSel_TypeDef

BURTC clock selection.

Enumerator
burtcClkSelULFRCO

Ultra low frequency (1 kHz) clock.

burtcClkSelLFRCO

Low frequency RC oscillator.

burtcClkSelLFXO

Low frequency crystal osciallator.

BURTC_Mode_TypeDef

BURTC mode of operation.

Enumerator
burtcModeDisable

Disable BURTC.

burtcModeEM2

Enable and start BURTC counter in EM0 to EM2.

burtcModeEM3

Enable and start BURTC counter in EM0 to EM3.

burtcModeEM4

Enable and start BURTC counter in EM0 to EM4.

BURTC_LP_TypeDef

BURTC low power mode.

Enumerator
burtcLPDisable

Low Power Mode is disabled.

burtcLPEnable

Low Power Mode is always enabled.

burtcLPBU

Low Power Mode when system enters backup mode.