VCMPEMLIB

Detailed Description

Voltage Comparator (VCMP) Peripheral API.

This module contains functions to control the VCMP peripheral of Silicon Labs 32-bit MCUs and SoCs. The VCMP monitors the input voltage supply and generates interrupts on events using as little as 100 nA.

Data Structures

struct  VCMP_Init_TypeDef
 

Macros

#define VCMP_INIT_DEFAULT
 

Enumerations

enum  VCMP_Hysteresis_TypeDef {
  vcmpHystNone,
  vcmpHyst20mV
}
 
enum  VCMP_WarmTime_TypeDef {
  vcmpWarmTime4Cycles = _VCMP_CTRL_WARMTIME_4CYCLES,
  vcmpWarmTime8Cycles = _VCMP_CTRL_WARMTIME_8CYCLES,
  vcmpWarmTime16Cycles = _VCMP_CTRL_WARMTIME_16CYCLES,
  vcmpWarmTime32Cycles = _VCMP_CTRL_WARMTIME_32CYCLES,
  vcmpWarmTime64Cycles = _VCMP_CTRL_WARMTIME_64CYCLES,
  vcmpWarmTime128Cycles = _VCMP_CTRL_WARMTIME_128CYCLES,
  vcmpWarmTime256Cycles = _VCMP_CTRL_WARMTIME_256CYCLES,
  vcmpWarmTime512Cycles = _VCMP_CTRL_WARMTIME_512CYCLES
}
 

Functions

__STATIC_INLINE void VCMP_Disable (void)
 Disable Voltage Comparator.
 
__STATIC_INLINE void VCMP_Enable (void)
 Enable Voltage Comparator.
 
void VCMP_Init (const VCMP_Init_TypeDef *vcmpInit)
 Configure and enable Voltage Comparator.
 
__STATIC_INLINE void VCMP_IntClear (uint32_t flags)
 Clear one or more pending VCMP interrupts.
 
__STATIC_INLINE void VCMP_IntDisable (uint32_t flags)
 Disable one or more VCMP interrupts.
 
__STATIC_INLINE void VCMP_IntEnable (uint32_t flags)
 Enable one or more VCMP interrupts.
 
__STATIC_INLINE uint32_t VCMP_IntGet (void)
 Get pending VCMP interrupt flags.
 
__STATIC_INLINE uint32_t VCMP_IntGetEnabled (void)
 Get enabled and pending VCMP interrupt flags.
 
__STATIC_INLINE void VCMP_IntSet (uint32_t flags)
 Set one or more pending VCMP interrupts from SW.
 
void VCMP_LowPowerRefSet (bool enable)
 Enable or disable Low Power Reference setting.
 
__STATIC_INLINE bool VCMP_Ready (void)
 VCMP output is ready.
 
void VCMP_TriggerSet (int level)
 Configure the trigger level of the voltage comparator.
 
__STATIC_INLINE bool VCMP_VDDHigher (void)
 Returns true if Voltage Comparator indicated VDD > trigger level, else returns false.
 
__STATIC_INLINE bool VCMP_VDDLower (void)
 Returns true if Voltage Comparator indicated VDD < trigger level, else returns false.
 
__STATIC_INLINE uint32_t VCMP_VoltageToLevel (float v)
 Calculate voltage to trigger level.
 

Macro Definition Documentation

#define VCMP_INIT_DEFAULT
Value:
{ \
true, \
0x7, \
false, \
false, \
vcmpWarmTime4Cycles, \
vcmpHystNone, \
0, \
true, \
39, \
true, \
}

Default VCMP initialization structure.

Definition at line 120 of file em_vcmp.h.

Referenced by VDDCHECK_LowVoltage().

Enumeration Type Documentation

Hysteresis configuration.

Enumerator
vcmpHystNone 

Normal operation, no hysteresis.

vcmpHyst20mV 

Digital output will not toggle until positive edge is at least 20 mV above or below negative input voltage.

Definition at line 81 of file em_vcmp.h.

Warm-up Time in High Frequency Peripheral Clock cycles.

Enumerator
vcmpWarmTime4Cycles 

4 cycles

vcmpWarmTime8Cycles 

8 cycles

vcmpWarmTime16Cycles 

16 cycles

vcmpWarmTime32Cycles 

32 cycles

vcmpWarmTime64Cycles 

64 cycles

vcmpWarmTime128Cycles 

128 cycles

vcmpWarmTime256Cycles 

256 cycles

vcmpWarmTime512Cycles 

512 cycles

Definition at line 61 of file em_vcmp.h.

Function Documentation

__STATIC_INLINE void VCMP_IntClear ( uint32_t  flags)

Clear one or more pending VCMP interrupts.

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

Definition at line 225 of file em_vcmp.h.

References VCMP.

Referenced by VCMP_Init().

__STATIC_INLINE void VCMP_IntDisable ( uint32_t  flags)

Disable one or more VCMP interrupts.

Parameters
[in]flagsVCMP interrupt sources to enable. Use a set of interrupt flags OR-ed together to set multiple interrupt sources for the VCMP module (VCMP_IFS_nnn).

Definition at line 253 of file em_vcmp.h.

References VCMP.

__STATIC_INLINE void VCMP_IntEnable ( uint32_t  flags)

Enable one or more VCMP interrupts.

Parameters
[in]flagsVCMP interrupt sources to enable. Use a set of interrupt flags OR-ed together to set multiple interrupt sources for the VCMP module (VCMP_IFS_nnn).

Definition at line 267 of file em_vcmp.h.

References VCMP.

__STATIC_INLINE uint32_t VCMP_IntGet ( void  )

Get pending VCMP interrupt flags.

Note
The event bits are not cleared by the use of this function.
Returns
Pending VCMP interrupt sources. Returns a set of interrupt flags OR-ed together for multiple interrupt sources in the VCMP module (VCMP_IFS_nnn).

Definition at line 283 of file em_vcmp.h.

References VCMP.

__STATIC_INLINE uint32_t VCMP_IntGetEnabled ( void  )

Get enabled and pending VCMP interrupt flags.

Useful for handling more interrupt sources in the same interrupt handler.

Note
The event bits are not cleared by the use of this function.
Returns
Pending and enabled VCMP interrupt sources. The return value is the bitwise AND combination of
  • the OR combination of enabled interrupt sources in VCMP_IEN_nnn register (VCMP_IEN_nnn) and
  • the OR combination of valid interrupt flags of the VCMP module (VCMP_IF_nnn).

Definition at line 306 of file em_vcmp.h.

References VCMP.

__STATIC_INLINE void VCMP_IntSet ( uint32_t  flags)

Set one or more pending VCMP interrupts from SW.

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

Definition at line 239 of file em_vcmp.h.

References VCMP.

void VCMP_LowPowerRefSet ( bool  enable)

Enable or disable Low Power Reference setting.

Parameters
[in]enableIf true, enables low power reference. If false, disable low power reference.

Definition at line 140 of file em_vcmp.c.

References VCMP, and VCMP_INPUTSEL_LPREF.

Referenced by VCMP_Init().

void VCMP_TriggerSet ( int  level)

Configure the trigger level of the voltage comparator.

Parameters
[in]levelA trigger value, in range 0-63.

Definition at line 156 of file em_vcmp.c.

References _VCMP_INPUTSEL_TRIGLEVEL_MASK, _VCMP_INPUTSEL_TRIGLEVEL_SHIFT, and VCMP.

Referenced by VCMP_Init().

__STATIC_INLINE uint32_t VCMP_VoltageToLevel ( float  v)

Calculate voltage to trigger level.

Note
Soft float support is needed for this function to work.
Parameters
[in]vVoltage Level for trigger.

Definition at line 170 of file em_vcmp.h.

Referenced by VDDCHECK_LowVoltage().