VCMP - Voltage Comparator#
Supply 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.
Modules#
Enumerations#
Warm-up Time in High Frequency Peripheral Clock cycles.
Functions#
Configure and enable Voltage Comparator.
Enable or disable Low Power Reference setting.
Configure the trigger level of the voltage comparator.
Enable Voltage Comparator.
Disable Voltage Comparator.
Calculate voltage to trigger level.
Check whether VDD is lower than the trigger level.
Check whether VDD is higher than the trigger level.
Check whether the VCMP output is ready.
Clear one or more pending VCMP interrupts.
Set one or more pending VCMP interrupts from SW.
Disable one or more VCMP interrupts.
Enable one or more VCMP interrupts.
Get pending VCMP interrupt flags.
Get enabled and pending VCMP interrupt flags.
Macros#
Default VCMP initialization structure.
Enumeration Documentation#
VCMP_WarmTime_TypeDef#
VCMP_WarmTime_TypeDef
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 |
VCMP_Hysteresis_TypeDef#
VCMP_Hysteresis_TypeDef
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. |
Function Documentation#
VCMP_Init#
void VCMP_Init (const VCMP_Init_TypeDef * vcmpInit)
Configure and enable Voltage Comparator.
Type | Direction | Argument Name | Description |
---|---|---|---|
const VCMP_Init_TypeDef * | [in] | vcmpInit | The VCMP Initialization structure. |
VCMP_LowPowerRefSet#
void VCMP_LowPowerRefSet (bool enable)
Enable or disable Low Power Reference setting.
Type | Direction | Argument Name | Description |
---|---|---|---|
bool | [in] | enable | If true, enables low power reference. If false, disable low power reference. |
VCMP_TriggerSet#
void VCMP_TriggerSet (int level)
Configure the trigger level of the voltage comparator.
Type | Direction | Argument Name | Description |
---|---|---|---|
int | [in] | level | A trigger value, in range 0-63. |
VCMP_Enable#
void VCMP_Enable (void )
Enable Voltage Comparator.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
VCMP_Disable#
void VCMP_Disable (void )
Disable Voltage Comparator.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
VCMP_VoltageToLevel#
uint32_t VCMP_VoltageToLevel (float v)
Calculate voltage to trigger level.
Type | Direction | Argument Name | Description |
---|---|---|---|
float | [in] | v | Voltage Level for trigger. |
Note
Soft float support is needed for this function to work.
Returns
Trigger level.
VCMP_VDDLower#
bool VCMP_VDDLower (void )
Check whether VDD is lower than the trigger level.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Returns
True if Voltage Comparator indicated VDD < trigger level, else returns false.
VCMP_VDDHigher#
bool VCMP_VDDHigher (void )
Check whether VDD is higher than the trigger level.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Returns
True if Voltage Comparator indicated VDD > trigger level, else returns false.
VCMP_Ready#
bool VCMP_Ready (void )
Check whether the VCMP output is ready.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Returns
True if VCMP output is ready.
VCMP_IntClear#
void VCMP_IntClear (uint32_t flags)
Clear one or more pending VCMP interrupts.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | VCMP 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). |
VCMP_IntSet#
void VCMP_IntSet (uint32_t flags)
Set one or more pending VCMP interrupts from SW.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | VCMP 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). |
VCMP_IntDisable#
void VCMP_IntDisable (uint32_t flags)
Disable one or more VCMP interrupts.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | VCMP 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). |
VCMP_IntEnable#
void VCMP_IntEnable (uint32_t flags)
Enable one or more VCMP interrupts.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | flags | VCMP 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). |
VCMP_IntGet#
uint32_t VCMP_IntGet (void )
Get pending VCMP interrupt flags.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
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).
VCMP_IntGetEnabled#
uint32_t VCMP_IntGetEnabled (void )
Get enabled and pending VCMP interrupt flags.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
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).