VCMP - Voltage Comparator
Description
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.
| Data Structures | |
| struct | VCMP_Init_TypeDef | 
| VCMP Initialization structure. | |
| Functions | |
| void | VCMP_Init (const VCMP_Init_TypeDef *vcmpInit) | 
| Configure and enable Voltage Comparator. | |
| void | VCMP_LowPowerRefSet (bool enable) | 
| Enable or disable Low Power Reference setting. | |
| void | VCMP_TriggerSet (int level) | 
| Configure the trigger level of the voltage comparator. | |
| void | VCMP_Enable (void) | 
| Enable Voltage Comparator. | |
| void | VCMP_Disable (void) | 
| Disable Voltage Comparator. | |
| uint32_t | VCMP_VoltageToLevel (float v) | 
| Calculate voltage to trigger level. | |
| bool | VCMP_VDDLower (void) | 
| Check if VDD is lower than trigger level. | |
| bool | VCMP_VDDHigher (void) | 
| Check if VDD is higher than trigger level. | |
| bool | VCMP_Ready (void) | 
| Check if VCMP output is ready. | |
| void | VCMP_IntClear (uint32_t flags) | 
| Clear one or more pending VCMP interrupts. | |
| void | VCMP_IntSet (uint32_t flags) | 
| Set one or more pending VCMP interrupts from SW. | |
| void | VCMP_IntDisable (uint32_t flags) | 
| Disable one or more VCMP interrupts. | |
| void | VCMP_IntEnable (uint32_t flags) | 
| Enable one or more VCMP interrupts. | |
| uint32_t | VCMP_IntGet (void) | 
| Get pending VCMP interrupt flags. | |
| uint32_t | VCMP_IntGetEnabled (void) | 
| Get enabled and pending VCMP interrupt flags. | |
| Macros | |
| #define | VCMP_INIT_DEFAULT | 
| Default VCMP initialization structure. | |
| Enumerations | |
| 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 } | 
| Warm-up Time in High Frequency Peripheral Clock cycles. | |
| enum | VCMP_Hysteresis_TypeDef
         
         { vcmpHystNone , vcmpHyst20mV } | 
| Hysteresis configuration. | |
Function Documentation
◆ VCMP_Init()
| void VCMP_Init | ( | const VCMP_Init_TypeDef * | 
            vcmpInit
            | ) | 
Configure and enable Voltage Comparator.
- Parameters
- 
         [in] vcmpInitThe VCMP Initialization structure. 
◆ VCMP_LowPowerRefSet()
| 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. 
◆ VCMP_TriggerSet()
| void VCMP_TriggerSet | ( | int | 
            level
            | ) | 
Configure the trigger level of the voltage comparator.
- Parameters
- 
         [in] levelA trigger value, in range 0-63. 
◆ VCMP_Enable()
| 
 | inline | 
Enable Voltage Comparator.
◆ VCMP_Disable()
| 
 | inline | 
Disable Voltage Comparator.
◆ VCMP_VoltageToLevel()
| 
 | inline | 
Calculate voltage to trigger level.
- Note
- Soft float support is needed for this function to work.
- Parameters
- 
         [in] vVoltage Level for trigger. 
- Returns
- Trigger level.
◆ VCMP_VDDLower()
| 
 | inline | 
Check if VDD is lower than trigger level.
- Returns
- True if Voltage Comparator indicated VDD < trigger level, else returns false.
◆ VCMP_VDDHigher()
| 
 | inline | 
Check if VDD is higher than trigger level.
- Returns
- True if Voltage Comparator indicated VDD > trigger level, else returns false.
◆ VCMP_Ready()
| 
 | inline | 
Check if VCMP output is ready.
- Returns
- True if VCMP output is ready.
◆ VCMP_IntClear()
| 
 | inline | 
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). 
◆ VCMP_IntSet()
| 
 | inline | 
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). 
◆ VCMP_IntDisable()
| 
 | inline | 
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). 
◆ VCMP_IntEnable()
| 
 | inline | 
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). 
◆ VCMP_IntGet()
| 
 | inline | 
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).
◆ VCMP_IntGetEnabled()
| 
 | inline | 
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).
 
Macro Definition Documentation
◆ VCMP_INIT_DEFAULT
| #define VCMP_INIT_DEFAULT | 
Default VCMP initialization structure.
Enumeration Type Documentation
◆ VCMP_WarmTime_TypeDef
Warm-up Time in High Frequency Peripheral Clock cycles.