CMUEMLIB
Detailed Description
Clock management unit (CMU) Peripheral API.
This module contains functions to control the CMU peripheral of Silicon Labs 32-bit MCUs and SoCs. The CMU controls oscillators and clocks.
Data Structures |
|
struct | CMU_DPLLInit_TypeDef |
struct | CMU_HFXOInit_TypeDef |
struct | CMU_LFXOInit_TypeDef |
Macros |
|
#define | CMU_AUXHFRCO_MAX cmuAUXHFRCOFreq_48M0Hz |
#define | CMU_AUXHFRCO_MIN cmuAUXHFRCOFreq_1M0Hz |
#define | CMU_DPLL_LFXO_TO_40MHZ |
#define | CMU_HFRCO_MAX cmuHFRCOFreq_48M0Hz |
#define | CMU_HFRCO_MIN cmuHFRCOFreq_1M0Hz |
#define | CMU_HFXOINIT_DEFAULT |
#define | CMU_HFXOINIT_EXTERNAL_CLOCK |
#define | CMU_LFXOINIT_DEFAULT |
#define | CMU_LFXOINIT_EXTERNAL_CLOCK |
#define | cmuClkDiv_1 1 |
#define | cmuClkDiv_1024 1024 |
#define | cmuClkDiv_128 128 |
#define | cmuClkDiv_16 16 |
#define | cmuClkDiv_16384 16384 |
#define | cmuClkDiv_2 2 |
#define | cmuClkDiv_2048 2048 |
#define | cmuClkDiv_256 256 |
#define | cmuClkDiv_32 32 |
#define | cmuClkDiv_32768 32768 |
#define | cmuClkDiv_4 4 |
#define | cmuClkDiv_4096 4096 |
#define | cmuClkDiv_512 512 |
#define | cmuClkDiv_64 64 |
#define | cmuClkDiv_8 8 |
#define | cmuClkDiv_8192 8192 |
Typedefs |
|
typedef uint32_t | CMU_ClkDiv_TypeDef |
typedef uint32_t | CMU_ClkPresc_TypeDef |
Functions |
|
CMU_AUXHFRCOFreq_TypeDef | CMU_AUXHFRCOBandGet (void) |
Get the current AUXHFRCO frequency.
|
|
void | CMU_AUXHFRCOBandSet ( CMU_AUXHFRCOFreq_TypeDef setFreq) |
Set AUXHFRCO calibration for the selected target frequency.
|
|
static uint32_t | CMU_AUXHFRCODevinfoGet ( CMU_AUXHFRCOFreq_TypeDef freq) |
Get the AUXHFRCO frequency calibration word in DEVINFO.
|
|
__STATIC_INLINE CMU_AUXHFRCOFreq_TypeDef | CMU_AUXHFRCOFreqGet (void) |
Get the current AUXHFRCO frequency.
|
|
__STATIC_INLINE void | CMU_AUXHFRCOFreqSet ( CMU_AUXHFRCOFreq_TypeDef setFreq) |
Set AUXHFRCO calibration for the selected target frequency.
|
|
uint32_t | CMU_Calibrate (uint32_t HFCycles, CMU_Osc_TypeDef reference) |
Calibrate the clock.
|
|
void | CMU_CalibrateConfig (uint32_t downCycles, CMU_Osc_TypeDef downSel, CMU_Osc_TypeDef upSel) |
Configure the clock calibration.
|
|
__STATIC_INLINE void | CMU_CalibrateCont (bool enable) |
Configure continuous calibration mode.
|
|
uint32_t | CMU_CalibrateCountGet (void) |
Get the calibration count register.
|
|
__STATIC_INLINE void | CMU_CalibrateStart (void) |
Start calibration.
|
|
__STATIC_INLINE void | CMU_CalibrateStop (void) |
Stop the calibration counters.
|
|
CMU_ClkDiv_TypeDef | CMU_ClockDivGet ( CMU_Clock_TypeDef clock) |
Get the clock divisor/prescaler.
|
|
void | CMU_ClockDivSet ( CMU_Clock_TypeDef clock, CMU_ClkDiv_TypeDef div) |
Set the clock divisor/prescaler.
|
|
void | CMU_ClockEnable ( CMU_Clock_TypeDef clock, bool enable) |
Enable/disable a clock.
|
|
uint32_t | CMU_ClockFreqGet ( CMU_Clock_TypeDef clock) |
Get the clock frequency for a clock point.
|
|
uint32_t | CMU_ClockPrescGet ( CMU_Clock_TypeDef clock) |
Get the clock prescaler.
|
|
void | CMU_ClockPrescSet ( CMU_Clock_TypeDef clock, CMU_ClkPresc_TypeDef presc) |
Set the clock prescaler.
|
|
CMU_Select_TypeDef | CMU_ClockSelectGet ( CMU_Clock_TypeDef clock) |
Get the currently selected reference clock used for a clock branch.
|
|
void | CMU_ClockSelectSet ( CMU_Clock_TypeDef clock, CMU_Select_TypeDef ref) |
Select the reference clock/oscillator used for a clock branch.
|
|
__STATIC_INLINE uint32_t | CMU_DivToLog2 ( CMU_ClkDiv_TypeDef div) |
Convert dividend to logarithmic value. It only works for even numbers equal to 2^n.
|
|
bool | CMU_DPLLLock (const CMU_DPLLInit_TypeDef *init) |
Lock the DPLL to a given frequency.
|
|
__STATIC_INLINE void | CMU_DPLLUnlock (void) |
Unlock DPLL.
|
|
void | CMU_FreezeEnable (bool enable) |
CMU low frequency register synchronization freeze control.
|
|
CMU_HFRCOFreq_TypeDef | CMU_HFRCOBandGet (void) |
Get the current HFRCO frequency.
|
|
void | CMU_HFRCOBandSet ( CMU_HFRCOFreq_TypeDef setFreq) |
Set the HFRCO calibration for the selected target frequency.
|
|
static uint32_t | CMU_HFRCODevinfoGet ( CMU_HFRCOFreq_TypeDef freq) |
Get the HFRCO frequency calibration word in DEVINFO.
|
|
__STATIC_INLINE CMU_HFRCOFreq_TypeDef | CMU_HFRCOFreqGet (void) |
Get the current HFRCO frequency.
|
|
__STATIC_INLINE void | CMU_HFRCOFreqSet ( CMU_HFRCOFreq_TypeDef setFreq) |
Set HFRCO calibration for the selected target frequency.
|
|
void | CMU_HFXOAutostartEnable (uint32_t userSel, bool enEM0EM1Start, bool enEM0EM1StartSel) |
Enable or disable HFXO autostart.
|
|
void | CMU_HFXOInit (const CMU_HFXOInit_TypeDef *hfxoInit) |
Set HFXO control registers.
|
|
__STATIC_INLINE void | CMU_IntClear (uint32_t flags) |
Clear one or more pending CMU interrupts.
|
|
__STATIC_INLINE void | CMU_IntDisable (uint32_t flags) |
Disable one or more CMU interrupts.
|
|
__STATIC_INLINE void | CMU_IntEnable (uint32_t flags) |
Enable one or more CMU interrupts.
|
|
__STATIC_INLINE uint32_t | CMU_IntGet (void) |
Get pending CMU interrupts.
|
|
__STATIC_INLINE uint32_t | CMU_IntGetEnabled (void) |
Get enabled and pending CMU interrupt flags.
|
|
__STATIC_INLINE void | CMU_IntSet (uint32_t flags) |
Set one or more pending CMU interrupts.
|
|
uint32_t | CMU_LCDClkFDIVGet (void) |
Get the LCD framerate divisor (FDIV) setting.
|
|
void | CMU_LCDClkFDIVSet (uint32_t div) |
Set the LCD framerate divisor (FDIV) setting.
|
|
void | CMU_LFXOInit (const CMU_LFXOInit_TypeDef *lfxoInit) |
Set LFXO control registers.
|
|
__STATIC_INLINE void | CMU_Lock (void) |
Lock the CMU to protect some of its registers against unintended modification.
|
|
__STATIC_INLINE uint32_t | CMU_Log2ToDiv (uint32_t log2) |
Convert logarithm of 2 prescaler to division factor.
|
|
void | CMU_OscillatorEnable ( CMU_Osc_TypeDef osc, bool enable, bool wait) |
Enable/disable oscillator.
|
|
uint32_t | CMU_OscillatorTuningGet ( CMU_Osc_TypeDef osc) |
Get the oscillator frequency tuning setting.
|
|
bool | CMU_OscillatorTuningOptimize ( CMU_Osc_TypeDef osc, CMU_HFXOTuningMode_TypeDef mode, bool wait) |
Start and optionally wait for the oscillator tuning optimization.
|
|
void | CMU_OscillatorTuningSet ( CMU_Osc_TypeDef osc, uint32_t val) |
Set the oscillator frequency tuning control.
|
|
bool | CMU_OscillatorTuningWait ( CMU_Osc_TypeDef osc, CMU_HFXOTuningMode_TypeDef mode) |
Wait for the oscillator tuning optimization.
|
|
bool | CMU_PCNTClockExternalGet (unsigned int instance) |
Determine if the currently selected PCNTn clock used is external or LFBCLK.
|
|
void | CMU_PCNTClockExternalSet (unsigned int instance, bool external) |
Select the PCNTn clock.
|
|
__STATIC_INLINE uint32_t | CMU_PrescToLog2 ( CMU_ClkPresc_TypeDef presc) |
Convert prescaler dividend to a logarithmic value. It only works for even numbers equal to 2^n.
|
|
__STATIC_INLINE void | CMU_Unlock (void) |
Unlock the CMU so that writing to locked registers again is possible.
|
|
void | CMU_UpdateWaitStates (uint32_t freq, int vscale) |
Macro Definition Documentation
#define CMU_DPLL_LFXO_TO_40MHZ |
DPLL initialization values for 39,998,805 Hz using LFXO as reference clock, M=2 and N=3661.
Definition at line
2290
of file
em_cmu.h
.
#define CMU_HFXOINIT_DEFAULT |
Definition at line
2168
of file
em_cmu.h
.
#define CMU_HFXOINIT_EXTERNAL_CLOCK |
Definition at line
2179
of file
em_cmu.h
.
#define CMU_LFXOINIT_DEFAULT |
Default LFXO initialization values for platform 2 devices, which contain a separate LFXOCTRL register.
Definition at line
2103
of file
em_cmu.h
.
#define CMU_LFXOINIT_EXTERNAL_CLOCK |
Definition at line
2110
of file
em_cmu.h
.
#define cmuClkDiv_1Â Â Â 1 |
Clock divisors. These values are valid for prescalers. Divide clock by 1.
Definition at line
856
of file
em_cmu.h
.
Referenced by CAPLESENSE_setupCMU() , CMU_ClockDivGet() , CMU_ClockDivSet() , and RETARGET_SerialInit() .
#define cmuClkDiv_1024Â Â Â 1024 |
Divide clock by 1024.
Definition at line
866
of file
em_cmu.h
.
#define cmuClkDiv_128Â Â Â 128 |
Divide clock by 128.
Definition at line
863
of file
em_cmu.h
.
Referenced by CMU_ClockDivSet() , and CMU_LCDClkFDIVSet() .
#define cmuClkDiv_16Â Â Â 16 |
Divide clock by 16.
Definition at line
860
of file
em_cmu.h
.
Referenced by CMU_ClockDivGet() , CMU_ClockDivSet() , and CMU_ClockFreqGet() .
#define cmuClkDiv_16384Â Â Â 16384 |
Divide clock by 16384.
Definition at line
870
of file
em_cmu.h
.
#define cmuClkDiv_2Â Â Â 2 |
Divide clock by 2.
Definition at line
857
of file
em_cmu.h
.
#define cmuClkDiv_2048Â Â Â 2048 |
Divide clock by 2048.
Definition at line
867
of file
em_cmu.h
.
#define cmuClkDiv_256Â Â Â 256 |
#define cmuClkDiv_32Â Â Â 32 |
Divide clock by 32.
Definition at line
861
of file
em_cmu.h
.
#define cmuClkDiv_32768Â Â Â 32768 |
#define cmuClkDiv_4Â Â Â 4 |
Divide clock by 4.
Definition at line
858
of file
em_cmu.h
.
#define cmuClkDiv_4096Â Â Â 4096 |
Divide clock by 4096.
Definition at line
868
of file
em_cmu.h
.
#define cmuClkDiv_512Â Â Â 512 |
#define cmuClkDiv_64Â Â Â 64 |
Divide clock by 64.
Definition at line
862
of file
em_cmu.h
.
#define cmuClkDiv_8Â Â Â 8 |
#define cmuClkDiv_8192Â Â Â 8192 |
Divide clock by 8192.
Definition at line
869
of file
em_cmu.h
.
Typedef Documentation
typedef uint32_t CMU_ClkDiv_TypeDef |
Clock divider configuration
Definition at line
874
of file
em_cmu.h
.
typedef uint32_t CMU_ClkPresc_TypeDef |
Clockprescaler configuration
Definition at line
878
of file
em_cmu.h
.
Enumeration Type Documentation
AUX high-frequency RCO bands
Definition at line
975
of file
em_cmu.h
.
enum CMU_Clock_TypeDef |
Clock points in CMU. See CMU overview in the reference manual.
Definition at line
1005
of file
em_cmu.h
.
High-frequency system RCO bands
Definition at line
934
of file
em_cmu.h
.
enum CMU_Osc_TypeDef |
Oscillator types.
Definition at line
1973
of file
em_cmu.h
.
enum CMU_OscMode_TypeDef |
enum CMU_Select_TypeDef |
Selectable clock sources.
Definition at line
1998
of file
em_cmu.h
.
Function Documentation
CMU_AUXHFRCOFreq_TypeDef CMU_AUXHFRCOBandGet | ( | void |
|
) |
Get the current AUXHFRCO frequency.
- Returns
- AUXHFRCO frequency.
Definition at line
3648
of file
em_cmu.c
.
Referenced by CMU_AUXHFRCOFreqGet() .
void CMU_AUXHFRCOBandSet | ( | CMU_AUXHFRCOFreq_TypeDef |
setFreq
|
) |
Set AUXHFRCO calibration for the selected target frequency.
- Parameters
-
[in] setFreq
AUXHFRCO frequency to set
Definition at line
3662
of file
em_cmu.c
.
References _CMU_AUXHFRCOCTRL_CLKDIV_MASK , _CMU_SYNCBUSY_AUXHFRCOBSY_SHIFT , BUS_RegBitRead() , CMU , CMU_AUXHFRCOCTRL_CLKDIV_DIV1 , CMU_AUXHFRCOCTRL_CLKDIV_DIV2 , CMU_AUXHFRCOCTRL_CLKDIV_DIV4 , CMU_AUXHFRCODevinfoGet() , cmuAUXHFRCOFreq_1M0Hz , cmuAUXHFRCOFreq_2M0Hz , and cmuAUXHFRCOFreq_4M0Hz .
Referenced by CMU_AUXHFRCOFreqSet() .
|
static |
Get the AUXHFRCO frequency calibration word in DEVINFO.
- Parameters
-
[in] freq
Frequency in Hz.
- Returns
- AUXHFRCO calibration word for a given frequency.
Definition at line
3595
of file
em_cmu.c
.
References cmuAUXHFRCOFreq_13M0Hz , cmuAUXHFRCOFreq_16M0Hz , cmuAUXHFRCOFreq_19M0Hz , cmuAUXHFRCOFreq_1M0Hz , cmuAUXHFRCOFreq_26M0Hz , cmuAUXHFRCOFreq_2M0Hz , cmuAUXHFRCOFreq_32M0Hz , cmuAUXHFRCOFreq_38M0Hz , cmuAUXHFRCOFreq_48M0Hz , cmuAUXHFRCOFreq_4M0Hz , cmuAUXHFRCOFreq_7M0Hz , and DEVINFO .
Referenced by CMU_AUXHFRCOBandSet() .
__STATIC_INLINE CMU_AUXHFRCOFreq_TypeDef CMU_AUXHFRCOFreqGet | ( | void |
|
) |
Get the current AUXHFRCO frequency.
-
Deprecated:
- A deprecated function. New code should use CMU_AUXHFRCOBandGet() .
- Returns
- AUXHFRCO frequency.
Definition at line
2674
of file
em_cmu.h
.
References CMU_AUXHFRCOBandGet() .
__STATIC_INLINE void CMU_AUXHFRCOFreqSet | ( | CMU_AUXHFRCOFreq_TypeDef |
setFreq
|
) |
Set AUXHFRCO calibration for the selected target frequency.
-
Deprecated:
- A deprecated function. New code should use CMU_AUXHFRCOBandSet() .
- Parameters
-
[in] setFreq
AUXHFRCO frequency to set.
Definition at line
2689
of file
em_cmu.h
.
References CMU_AUXHFRCOBandSet() .
uint32_t CMU_Calibrate | ( | uint32_t |
HFCycles,
|
CMU_Osc_TypeDef |
reference
|
||
) |
Calibrate the clock.
Run a calibration for HFCLK against a selectable reference clock. See the reference manual, CMU chapter, for more details.
- Note
- This function will not return until the calibration measurement is completed.
- Parameters
-
[in] HFCycles
The number of HFCLK cycles to run the calibration. Increasing this number increases precision but the calibration will take more time. [in] ref
The reference clock used to compare HFCLK.
- Returns
- The number of ticks the reference clock after HFCycles ticks on the HF clock.
Definition at line
3723
of file
em_cmu.c
.
References _CMU_CALCNT_CALCNT_MASK , _CMU_CALCNT_CALCNT_SHIFT , _CMU_STATUS_CALRDY_SHIFT , BUS_RegBitRead() , CMU , CMU_CALCTRL_UPSEL_AUXHFRCO , CMU_CALCTRL_UPSEL_HFRCO , CMU_CALCTRL_UPSEL_HFXO , CMU_CALCTRL_UPSEL_LFRCO , CMU_CALCTRL_UPSEL_LFXO , CMU_CMD_CALSTART , cmuOsc_AUXHFRCO , cmuOsc_HFRCO , cmuOsc_HFXO , cmuOsc_LFRCO , and cmuOsc_LFXO .
void CMU_CalibrateConfig | ( | uint32_t |
downCycles,
|
CMU_Osc_TypeDef |
downSel,
|
||
CMU_Osc_TypeDef |
upSel
|
||
) |
Configure the clock calibration.
Configure a calibration for a selectable clock source against another selectable reference clock. See the reference manual, CMU chapter, for more details.
- Note
- After configuration, a call to CMU_CalibrateStart() is required and the resulting calibration value can be read out with the CMU_CalibrateCountGet() function call.
- Parameters
-
[in] downCycles
The number of downSel clock cycles to run the calibration. Increasing this number increases precision but the calibration will take more time. [in] downSel
The clock, which will be counted down downCycles. [in] upSel
The reference clock; the number of cycles generated by this clock will be counted and added up and the result can be given with the CMU_CalibrateCountGet() function call.
Definition at line
3806
of file
em_cmu.c
.
References _CMU_CALCNT_CALCNT_MASK , _CMU_CALCNT_CALCNT_SHIFT , _CMU_CALCTRL_DOWNSEL_MASK , _CMU_CALCTRL_UPSEL_MASK , CMU , CMU_CALCTRL_DOWNSEL_AUXHFRCO , CMU_CALCTRL_DOWNSEL_HFRCO , CMU_CALCTRL_DOWNSEL_HFXO , CMU_CALCTRL_DOWNSEL_LFRCO , CMU_CALCTRL_DOWNSEL_LFXO , CMU_CALCTRL_UPSEL_AUXHFRCO , CMU_CALCTRL_UPSEL_HFRCO , CMU_CALCTRL_UPSEL_HFXO , CMU_CALCTRL_UPSEL_LFRCO , CMU_CALCTRL_UPSEL_LFXO , cmuOsc_AUXHFRCO , cmuOsc_HFRCO , cmuOsc_HFXO , cmuOsc_LFRCO , and cmuOsc_LFXO .
__STATIC_INLINE void CMU_CalibrateCont | ( | bool |
enable
|
) |
Configure continuous calibration mode.
- Parameters
-
[in] enable
If true, enables continuous calibration, if false disables continuous calibration.
Definition at line
2404
of file
em_cmu.h
.
References _CMU_CALCTRL_CONT_SHIFT , BUS_RegBitWrite() , and CMU .
uint32_t CMU_CalibrateCountGet | ( | void |
|
) |
Get the calibration count register.
- Note
- If continuous calibration mode is active, calibration busy will almost always be off and only the value needs to be read. In a normal case, this function call is triggered by the CALRDY interrupt flag.
- Returns
- The calibration count, the number of UPSEL clocks (see CMU_CalibrateConfig() ) in the period of DOWNSEL oscillator clock cycles configured by a previous write operation to CMU->CALCNT.
Definition at line
3902
of file
em_cmu.c
.
References _CMU_CALCTRL_CONT_SHIFT , _CMU_STATUS_CALRDY_SHIFT , BUS_RegBitRead() , and CMU .
__STATIC_INLINE void CMU_CalibrateStart | ( | void |
|
) |
Start calibration.
- Note
- This call is usually invoked after CMU_CalibrateConfig() and possibly CMU_CalibrateCont() .
Definition at line
2417
of file
em_cmu.h
.
References CMU , and CMU_CMD_CALSTART .
CMU_ClkDiv_TypeDef CMU_ClockDivGet | ( | CMU_Clock_TypeDef |
clock
|
) |
Get the clock divisor/prescaler.
- Parameters
-
[in] clock
A clock point to get the divisor/prescaler for. Notice that not all clock points have a divisor/prescaler. See the CMU overview in the reference manual.
- Returns
-
The current clock point divisor/prescaler. 1 is returned if
clock
specifies a clock point without a divisor/prescaler.
Definition at line
3937
of file
em_cmu.c
.
References _CMU_LFAPRESC0_LCD_MASK , _CMU_LFAPRESC0_LCD_SHIFT , _CMU_LFAPRESC0_LESENSE_MASK , _CMU_LFAPRESC0_LESENSE_SHIFT , _CMU_LFAPRESC0_LETIMER0_MASK , _CMU_LFAPRESC0_LETIMER0_SHIFT , _CMU_LFBPRESC0_LEUART0_MASK , _CMU_LFBPRESC0_LEUART0_SHIFT , CMU , CMU_ClockPrescGet() , CMU_DivToLog2() , CMU_Log2ToDiv() , cmuClkDiv_1 , cmuClkDiv_16 , cmuClock_LCDpre , cmuClock_LESENSE , cmuClock_LETIMER0 , and cmuClock_LEUART0 .
Referenced by UDELAY_Calibrate() .
void CMU_ClockDivSet | ( | CMU_Clock_TypeDef |
clock,
|
CMU_ClkDiv_TypeDef |
div
|
||
) |
Set the clock divisor/prescaler.
- Note
- If setting an LF clock prescaler, synchronization into the low-frequency domain is required. If the same register is modified before a previous update has completed, this function will stall until the previous synchronization has completed. See CMU_FreezeEnable() for a suggestion on how to reduce the stalling time in some use cases.
- Parameters
-
[in] clock
Clock point to set divisor/prescaler for. Notice that not all clock points have a divisor/prescaler. See the CMU overview in the reference manual. [in] div
The clock divisor to use (<= cmuClkDiv_512).
Definition at line
4065
of file
em_cmu.c
.
References _CMU_LFAPRESC0_LCD_MASK , _CMU_LFAPRESC0_LCD_SHIFT , _CMU_LFAPRESC0_LESENSE_MASK , _CMU_LFAPRESC0_LESENSE_SHIFT , _CMU_LFAPRESC0_LETIMER0_MASK , _CMU_LFAPRESC0_LETIMER0_SHIFT , _CMU_LFBPRESC0_LEUART0_MASK , _CMU_LFBPRESC0_LEUART0_SHIFT , CMU , CMU_ClockPrescSet() , CMU_DivToLog2() , CMU_SYNCBUSY_LFAPRESC0 , CMU_SYNCBUSY_LFBPRESC0 , cmuClkDiv_1 , cmuClkDiv_128 , cmuClkDiv_16 , cmuClkDiv_32768 , cmuClkDiv_512 , cmuClkDiv_8 , cmuClock_LCDpre , cmuClock_LESENSE , cmuClock_LETIMER0 , cmuClock_LEUART0 , SystemCoreClockGet() , and SystemHFClockGet() .
Referenced by CAPLESENSE_setupCMU() , RETARGET_SerialInit() , RTCDRV_Init() , SegmentLCD_Init() , UARTDRV_InitLeuart() , and UDELAY_Calibrate() .
void CMU_ClockEnable | ( | CMU_Clock_TypeDef |
clock,
|
bool |
enable
|
||
) |
Enable/disable a clock.
In general, module clocking is disabled after a reset. If a module clock is disabled, the registers of that module are not accessible and reading from such registers may return undefined values. Writing to registers of clock-disabled modules has no effect. Avoid accessing module registers of a module with a disabled clock.
- Note
- If enabling/disabling an LF clock, synchronization into the low-frequency domain is required. If the same register is modified before a previous update has completed, this function will stall until the previous synchronization has completed. See CMU_FreezeEnable() for a suggestion on how to reduce the stalling time in some use cases.
- Parameters
-
[in] clock
The clock to enable/disable. Notice that not all defined clock points have separate enable/disable control. See the CMU overview in the reference manual. [in] enable
- true - enable specified clock.
- false - disable specified clock.
Definition at line
4270
of file
em_cmu.c
.
References BUS_RegBitWrite() , CMU , CMU_ClockFreqGet() , CMU_SYNCBUSY_LFACLKEN0 , CMU_SYNCBUSY_LFBCLKEN0 , CMU_SYNCBUSY_LFECLKEN0 , and cmuClock_HFLE .
Referenced by adcInit() , BOARD_init() , BSP_BccDeInit() , BSP_BccInit() , BSP_BusControlModeSet() , BSP_EbiInit() , BSP_initBoard() , BSP_McuBoard_Init() , CAPLESENSE_setupCMU() , CAPSENSE_Init() , DMADRV_DeInit() , ezradio_hal_GpioInit() , gpioInit() , I2CSPM_Init() , ICM20648_spiInit() , initEbiCommon() , initGpio() , LDMA_DeInit() , LDMA_Init() , MIC_init() , MICROSD_Init() , MICROSD_PowerOff() , MICROSD_PowerOn() , MSDD_Init() , RETARGET_SerialInit() , RTCDRV_DeInit() , RTCDRV_Init() , SegmentLCD_Disable() , SegmentLCD_Init() , setupOscillators() , SPI_TFT_Init() , SPIDRV_DeInit() , SPIDRV_Init() , TOUCH_Init() , UARTDRV_DeInit() , UARTDRV_InitLeuart() , UARTDRV_InitUart() , UDELAY_Calibrate() , USTIMER_DeInit() , USTIMER_Init() , VDDCHECK_Disable() , and VDDCHECK_Init() .
uint32_t CMU_ClockFreqGet | ( | CMU_Clock_TypeDef |
clock
|
) |
Get the clock frequency for a clock point.
- Parameters
-
[in] clock
A clock point to fetch the frequency for.
- Returns
- The current frequency in Hz.
Definition at line
4389
of file
em_cmu.c
.
References _CMU_ADCCTRL_ADC0CLKDIV_MASK , _CMU_ADCCTRL_ADC0CLKDIV_SHIFT , _CMU_HFCOREPRESC_PRESC_MASK , _CMU_HFCOREPRESC_PRESC_SHIFT , _CMU_HFEXPPRESC_PRESC_MASK , _CMU_HFEXPPRESC_PRESC_SHIFT , _CMU_HFPERPRESC_PRESC_MASK , _CMU_HFPERPRESC_PRESC_SHIFT , _CMU_HFPERPRESCB_PRESC_MASK , _CMU_HFPERPRESCB_PRESC_SHIFT , _CMU_HFPERPRESCC_PRESC_MASK , _CMU_HFPERPRESCC_PRESC_SHIFT , _CMU_LFAPRESC0_LCD_MASK , _CMU_LFAPRESC0_LCD_SHIFT , _CMU_LFAPRESC0_LESENSE_MASK , _CMU_LFAPRESC0_LESENSE_SHIFT , _CMU_LFAPRESC0_LETIMER0_MASK , _CMU_LFAPRESC0_LETIMER0_SHIFT , _CMU_LFBPRESC0_CSEN_MASK , _CMU_LFBPRESC0_CSEN_SHIFT , _CMU_LFBPRESC0_LEUART0_MASK , _CMU_LFBPRESC0_LEUART0_SHIFT , CMU , CMU_DivToLog2() , CMU_Log2ToDiv() , cmuClkDiv_16 , cmuClock_LFA , cmuClock_LFB , cmuClock_LFE , SystemCoreClockGet() , and SystemHFClockGet() .
Referenced by ADC_Init() , ADC_PrescaleCalc() , ADC_TimebaseCalc() , CAN_GetClockFrequency() , CMU_ClockEnable() , CMU_ClockPrescSet() , CMU_ClockSelectSet() , CMU_DPLLLock() , CMU_HFRCOBandSet() , I2C_BusFreqGet() , I2C_BusFreqSet() , LESENSE_ScanFreqSet() , LEUART_BaudrateGet() , LEUART_BaudrateSet() , MIC_init() , MSC_Init() , UARTDRV_InitLeuart() , USART_BaudrateAsyncSet() , USART_BaudrateGet() , USART_BaudrateSyncSet() , USTIMER_Init() , UTIL_init() , and VDAC_PrescaleCalc() .
uint32_t CMU_ClockPrescGet | ( | CMU_Clock_TypeDef |
clock
|
) |
Get the clock prescaler.
- Parameters
-
[in] clock
A clock point to get the prescaler for. Notice that not all clock points have a prescaler. See the CMU overview in the reference manual.
- Returns
-
The prescaler value of the current clock point. 0 is returned if
clock
specifies a clock point without a prescaler.
Definition at line
4652
of file
em_cmu.c
.
References _CMU_ADCCTRL_ADC0CLKDIV_MASK , _CMU_ADCCTRL_ADC0CLKDIV_SHIFT , _CMU_HFCOREPRESC_PRESC_MASK , _CMU_HFCOREPRESC_PRESC_SHIFT , _CMU_HFEXPPRESC_PRESC_MASK , _CMU_HFEXPPRESC_PRESC_SHIFT , _CMU_HFPERPRESC_PRESC_MASK , _CMU_HFPERPRESC_PRESC_SHIFT , _CMU_HFPERPRESCB_PRESC_MASK , _CMU_HFPERPRESCB_PRESC_SHIFT , _CMU_HFPERPRESCC_PRESC_MASK , _CMU_HFPERPRESCC_PRESC_SHIFT , _CMU_HFPRESC_HFCLKLEPRESC_MASK , _CMU_HFPRESC_HFCLKLEPRESC_SHIFT , _CMU_HFPRESC_PRESC_MASK , _CMU_HFPRESC_PRESC_SHIFT , _CMU_LFAPRESC0_LCD_MASK , _CMU_LFAPRESC0_LCD_SHIFT , _CMU_LFAPRESC0_LESENSE_MASK , _CMU_LFAPRESC0_LESENSE_SHIFT , _CMU_LFAPRESC0_LETIMER0_MASK , _CMU_LFAPRESC0_LETIMER0_SHIFT , _CMU_LFBPRESC0_CSEN_MASK , _CMU_LFBPRESC0_CSEN_SHIFT , _CMU_LFBPRESC0_LEUART0_MASK , _CMU_LFBPRESC0_LEUART0_SHIFT , _CMU_LFEPRESC0_RTCC_DIV1 , CMU , CMU_Log2ToDiv() , cmuClock_ADC0ASYNC , cmuClock_CSEN_LF , cmuClock_LCD , cmuClock_LCDpre , cmuClock_LESENSE , cmuClock_LETIMER0 , cmuClock_LEUART0 , and cmuClock_RTCC .
Referenced by CMU_ClockDivGet() .
void CMU_ClockPrescSet | ( | CMU_Clock_TypeDef |
clock,
|
CMU_ClkPresc_TypeDef |
presc
|
||
) |
Set the clock prescaler.
- Note
- If setting an LF clock prescaler, synchronization into the low-frequency domain is required. If the same register is modified before a previous update has completed, this function will stall until the previous synchronization has completed. See CMU_FreezeEnable() for a suggestion on how to reduce the stalling time in some use cases.
- Parameters
-
[in] clock
A clock point to set the prescaler for. Notice that not all clock points have a prescaler. See the CMU overview in the reference manual. [in] presc
The clock prescaler.
Definition at line
4858
of file
em_cmu.c
.
References _CMU_ADCCTRL_ADC0CLKDIV_MASK , _CMU_ADCCTRL_ADC0CLKDIV_SHIFT , _CMU_HFCOREPRESC_PRESC_MASK , _CMU_HFCOREPRESC_PRESC_SHIFT , _CMU_HFEXPPRESC_PRESC_MASK , _CMU_HFEXPPRESC_PRESC_SHIFT , _CMU_HFPERPRESC_PRESC_MASK , _CMU_HFPERPRESC_PRESC_SHIFT , _CMU_HFPERPRESCB_PRESC_MASK , _CMU_HFPERPRESCB_PRESC_SHIFT , _CMU_HFPERPRESCC_PRESC_MASK , _CMU_HFPERPRESCC_PRESC_SHIFT , _CMU_HFPRESC_HFCLKLEPRESC_MASK , _CMU_HFPRESC_HFCLKLEPRESC_SHIFT , _CMU_HFPRESC_PRESC_MASK , _CMU_HFPRESC_PRESC_SHIFT , _CMU_LFAPRESC0_LCD_MASK , _CMU_LFAPRESC0_LCD_SHIFT , _CMU_LFAPRESC0_LESENSE_MASK , _CMU_LFAPRESC0_LESENSE_SHIFT , _CMU_LFAPRESC0_LETIMER0_MASK , _CMU_LFAPRESC0_LETIMER0_SHIFT , _CMU_LFBPRESC0_CSEN_MASK , _CMU_LFBPRESC0_CSEN_SHIFT , _CMU_LFBPRESC0_LEUART0_MASK , _CMU_LFBPRESC0_LEUART0_SHIFT , _CMU_LFEPRESC0_RTCC_DIV2 , _CMU_LFEPRESC0_RTCC_DIV4 , _CMU_LFEPRESC0_RTCC_MASK , _CMU_LFEPRESC0_RTCC_SHIFT , CMU , CMU_ClockFreqGet() , CMU_PrescToLog2() , CMU_SYNCBUSY_LFAPRESC0 , CMU_SYNCBUSY_LFBPRESC0 , CMU_SYNCBUSY_LFEPRESC0 , cmuClock_ADC0ASYNC , cmuClock_CSEN_LF , cmuClock_HFLE , cmuClock_LCD , cmuClock_LCDpre , cmuClock_LESENSE , cmuClock_LETIMER0 , cmuClock_LEUART0 , cmuClock_RTCC , and SystemCoreClockGet() .
Referenced by CMU_ClockDivSet() .
CMU_Select_TypeDef CMU_ClockSelectGet | ( | CMU_Clock_TypeDef |
clock
|
) |
Get the currently selected reference clock used for a clock branch.
- Parameters
-
[in] clock
Clock branch to fetch selected ref. clock for. One of:
- Returns
-
The reference clock used for clocking the selected branch,
cmuSelect_Error
if invalid
clock
provided.
Definition at line
5183
of file
em_cmu.c
.
References _CMU_ADCCTRL_ADC0CLKSEL_MASK , _CMU_DBGCLKSEL_DBG_MASK , _CMU_HFCLKSTATUS_SELECTED_MASK , _CMU_LFACLKSEL_LFA_MASK , _CMU_LFBCLKSEL_LFB_MASK , _CMU_LFECLKSEL_LFE_MASK , CMU , CMU_ADCCTRL_ADC0CLKSEL_AUXHFRCO , CMU_ADCCTRL_ADC0CLKSEL_DISABLED , CMU_ADCCTRL_ADC0CLKSEL_HFSRCCLK , CMU_ADCCTRL_ADC0CLKSEL_HFXO , CMU_DBGCLKSEL_DBG_AUXHFRCO , CMU_DBGCLKSEL_DBG_HFCLK , CMU_HFCLKSTATUS_SELECTED_CLKIN0 , CMU_HFCLKSTATUS_SELECTED_HFRCODIV2 , CMU_HFCLKSTATUS_SELECTED_HFXO , CMU_HFCLKSTATUS_SELECTED_LFRCO , CMU_HFCLKSTATUS_SELECTED_LFXO , CMU_LFACLKSEL_LFA_LFRCO , CMU_LFACLKSEL_LFA_LFXO , CMU_LFACLKSEL_LFA_ULFRCO , CMU_LFBCLKSEL_LFB_HFCLKLE , CMU_LFBCLKSEL_LFB_LFRCO , CMU_LFBCLKSEL_LFB_LFXO , CMU_LFBCLKSEL_LFB_ULFRCO , CMU_LFECLKSEL_LFE_LFRCO , CMU_LFECLKSEL_LFE_LFXO , CMU_LFECLKSEL_LFE_ULFRCO , cmuSelect_AUXHFRCO , cmuSelect_CLKIN0 , cmuSelect_Disabled , cmuSelect_Error , cmuSelect_HFCLK , cmuSelect_HFCLKLE , cmuSelect_HFRCO , cmuSelect_HFRCODIV2 , cmuSelect_HFSRCCLK , cmuSelect_HFXO , cmuSelect_LFRCO , cmuSelect_LFXO , and cmuSelect_ULFRCO .
Referenced by CMU_DPLLLock() , CMU_HFRCOBandSet() , CMU_HFXOInit() , CMU_LFXOInit() , and UDELAY_Calibrate() .
void CMU_ClockSelectSet | ( | CMU_Clock_TypeDef |
clock,
|
CMU_Select_TypeDef |
ref
|
||
) |
Select the reference clock/oscillator used for a clock branch.
Notice that if a selected reference is not enabled prior to selecting its use, it will be enabled and this function will wait for the selected oscillator to be stable. It will however NOT be disabled if another reference clock is selected later.
This feature is particularly important if selecting a new reference clock for the clock branch clocking the core. Otherwise, the system may halt.
- Parameters
-
[in] clock
A clock branch to select reference clock for. One of: [in] ref
A reference selected for clocking. See the reference manual for details about references available for a specific clock branch.
Definition at line
5702
of file
em_cmu.c
.
References _CMU_ADCCTRL_ADC0CLKSEL_AUXHFRCO , _CMU_ADCCTRL_ADC0CLKSEL_DISABLED , _CMU_ADCCTRL_ADC0CLKSEL_HFSRCCLK , _CMU_ADCCTRL_ADC0CLKSEL_HFXO , _CMU_ADCCTRL_ADC0CLKSEL_MASK , _CMU_ADCCTRL_ADC0CLKSEL_SHIFT , _CMU_HFBUSCLKEN0_LE_SHIFT , _CMU_LFACLKSEL_LFA_DISABLED , _CMU_LFACLKSEL_LFA_LFRCO , _CMU_LFACLKSEL_LFA_LFXO , _CMU_LFACLKSEL_LFA_ULFRCO , _CMU_LFBCLKSEL_LFB_HFCLKLE , BUS_RegBitWrite() , CMU , CMU_ClockFreqGet() , CMU_DBGCLKSEL_DBG_AUXHFRCO , CMU_DBGCLKSEL_DBG_HFCLK , CMU_HFCLKSEL_HF_CLKIN0 , CMU_HFCLKSEL_HF_HFRCO , CMU_HFCLKSEL_HF_HFRCODIV2 , CMU_HFCLKSEL_HF_HFXO , CMU_HFCLKSEL_HF_LFRCO , CMU_HFCLKSEL_HF_LFXO , CMU_HFRCOBandGet() , CMU_OscillatorEnable() , cmuClock_HF , cmuClock_HFLE , cmuOsc_AUXHFRCO , cmuOsc_CLKIN0 , cmuOsc_HFRCO , cmuOsc_HFXO , cmuOsc_LFRCO , cmuOsc_LFXO , cmuSelect_AUXHFRCO , cmuSelect_CLKIN0 , cmuSelect_Disabled , cmuSelect_HFCLK , cmuSelect_HFCLKLE , cmuSelect_HFRCO , cmuSelect_HFRCODIV2 , cmuSelect_HFSRCCLK , cmuSelect_HFXO , cmuSelect_LFRCO , cmuSelect_LFXO , cmuSelect_ULFRCO , EMU_VScaleEM01ByClock() , EMU_VScaleWait() , SL_FALLTHROUGH , SystemCoreClockGet() , and SystemHFXOClockGet() .
Referenced by BSP_BccInit() , BSP_initClocks() , CAPLESENSE_setupCMU() , MIC_init() , RETARGET_SerialInit() , RTCDRV_Init() , SegmentLCD_Init() , setupOscillators() , UARTDRV_InitLeuart() , and UDELAY_Calibrate() .
__STATIC_INLINE uint32_t CMU_DivToLog2 | ( | CMU_ClkDiv_TypeDef |
div
|
) |
Convert dividend to logarithmic value. It only works for even numbers equal to 2^n.
- Parameters
-
[in] div
An unscaled dividend.
- Returns
- Logarithm of 2, as used by fixed prescalers.
Definition at line
2444
of file
em_cmu.h
.
Referenced by CMU_ClockDivGet() , CMU_ClockDivSet() , CMU_ClockFreqGet() , and RTCDRV_Init() .
bool CMU_DPLLLock | ( | const CMU_DPLLInit_TypeDef * |
init
|
) |
Lock the DPLL to a given frequency.
The frequency is given by: Fout = Fref * (N+1) / (M+1).
- Note
-
This function does not check if the given N & M values will actually produce the desired target frequency.
N & M limitations:
300 < N <= 4095
0 <= M <= 4095
Any peripheral running off HFRCO should be switched to HFRCODIV2 prior to calling this function to avoid over-clocking.
- Parameters
-
[in] init
DPLL setup parameters.
- Returns
- Returns false on invalid target frequency or DPLL locking error.
Definition at line
6391
of file
em_cmu.c
.
References _CMU_DPLLCTRL1_M_MASK , _CMU_DPLLCTRL1_M_SHIFT , _CMU_DPLLCTRL1_N_MASK , _CMU_DPLLCTRL1_N_SHIFT , _CMU_DPLLCTRL_AUTORECOVER_SHIFT , _CMU_DPLLCTRL_EDGESEL_SHIFT , _CMU_DPLLCTRL_MODE_SHIFT , _CMU_DPLLCTRL_REFSEL_SHIFT , _CMU_HFCLKSTATUS_SELECTED_MASK , _CMU_HFRCOCTRL_TUNING_MASK , _CMU_HFRCOCTRL_TUNING_SHIFT , _CMU_HFRCOSS_SSAMP_MASK , _CMU_HFRCOSS_SSAMP_SHIFT , _CMU_HFRCOSS_SSINV_MASK , _CMU_HFRCOSS_SSINV_SHIFT , CMU_DPLLInit_TypeDef::autoRecover , CMU , CMU_ClockFreqGet() , CMU_ClockSelectGet() , CMU_HFCLKSEL_HF_HFRCO , CMU_HFCLKSEL_HF_HFRCODIV2 , CMU_HFCLKSTATUS_SELECTED_HFRCODIV2 , CMU_HFRCODevinfoGet() , CMU_IF_DPLLLOCKFAILHIGH , CMU_IF_DPLLLOCKFAILLOW , CMU_IF_DPLLRDY , CMU_IFC_DPLLLOCKFAILHIGH , CMU_IFC_DPLLLOCKFAILLOW , CMU_IFC_DPLLRDY , CMU_OSCENCMD_DPLLDIS , CMU_OSCENCMD_DPLLEN , CMU_STATUS_DPLLENS , CMU_STATUS_DPLLRDY , cmuClock_HF , cmuClock_HFLE , cmuSelect_HFRCO , CMU_DPLLInit_TypeDef::edgeSel , EMU_VScaleEM01ByClock() , EMU_VScaleGet() , emuVScaleEM01_LowPower , CMU_DPLLInit_TypeDef::frequency , CMU_DPLLInit_TypeDef::lockMode , CMU_DPLLInit_TypeDef::m , CMU_DPLLInit_TypeDef::n , CMU_DPLLInit_TypeDef::refClk , CMU_DPLLInit_TypeDef::ssAmplitude , CMU_DPLLInit_TypeDef::ssInterval , SystemCoreClockGet() , and SystemHfrcoFreq .
__STATIC_INLINE void CMU_DPLLUnlock | ( | void |
|
) |
Unlock DPLL.
- Note
- HFRCO is not turned off.
Definition at line
2464
of file
em_cmu.h
.
References CMU , and CMU_OSCENCMD_DPLLDIS .
void CMU_FreezeEnable | ( | bool |
enable
|
) |
CMU low frequency register synchronization freeze control.
Some CMU registers require synchronization into the low-frequency (LF) domain. The freeze feature allows for several such registers to be modified before passing them to the LF domain simultaneously (which takes place when the freeze mode is disabled).
Another use case for this feature is using an API (such as the CMU API) for modifying several bit fields consecutively in the same register. If freeze mode is enabled during this sequence, stalling can be avoided.
- Note
- When enabling freeze mode, this function will wait for all current ongoing CMU synchronization to LF domain to complete (normally synchronization will not be in progress.) However, for this reason, when using freeze mode, modifications of registers requiring LF synchronization should be done within one freeze enable/disable block to avoid unnecessary stalling.
- Parameters
-
[in] enable
- true - enable freeze, modified registers are not propagated to the LF domain
- false - disable freeze, modified registers are propagated to the LF domain
Definition at line
6547
of file
em_cmu.c
.
References CMU , and CMU_FREEZE_REGFREEZE .
CMU_HFRCOFreq_TypeDef CMU_HFRCOBandGet | ( | void |
|
) |
Get the current HFRCO frequency.
- Returns
- HFRCO frequency.
Definition at line
6735
of file
em_cmu.c
.
References SystemHfrcoFreq .
Referenced by CMU_ClockSelectSet() , and CMU_HFRCOFreqGet() .
void CMU_HFRCOBandSet | ( | CMU_HFRCOFreq_TypeDef |
setFreq
|
) |
Set the HFRCO calibration for the selected target frequency.
- Parameters
-
[in] setFreq
HFRCO frequency to set.
Definition at line
6747
of file
em_cmu.c
.
References _CMU_HFRCOCTRL_CLKDIV_MASK , _CMU_SYNCBUSY_HFRCOBSY_SHIFT , BUS_RegBitRead() , CMU , CMU_ClockFreqGet() , CMU_ClockSelectGet() , CMU_HFRCOCTRL_CLKDIV_DIV1 , CMU_HFRCOCTRL_CLKDIV_DIV2 , CMU_HFRCOCTRL_CLKDIV_DIV4 , CMU_HFRCODevinfoGet() , cmuClock_HF , cmuClock_HFLE , cmuHFRCOFreq_1M0Hz , cmuHFRCOFreq_2M0Hz , cmuHFRCOFreq_4M0Hz , cmuSelect_HFRCO , EMU_VScaleEM01ByClock() , SystemCoreClockGet() , and SystemHfrcoFreq .
Referenced by CMU_HFRCOFreqSet() .
|
static |
Get the HFRCO frequency calibration word in DEVINFO.
- Parameters
-
[in] freq
Frequency in Hz.
- Returns
- HFRCO calibration word for a given frequency.
Definition at line
6673
of file
em_cmu.c
.
References cmuHFRCOFreq_13M0Hz , cmuHFRCOFreq_16M0Hz , cmuHFRCOFreq_19M0Hz , cmuHFRCOFreq_1M0Hz , cmuHFRCOFreq_26M0Hz , cmuHFRCOFreq_2M0Hz , cmuHFRCOFreq_32M0Hz , cmuHFRCOFreq_38M0Hz , cmuHFRCOFreq_48M0Hz , cmuHFRCOFreq_4M0Hz , cmuHFRCOFreq_7M0Hz , and DEVINFO .
Referenced by CMU_DPLLLock() , and CMU_HFRCOBandSet() .
__STATIC_INLINE CMU_HFRCOFreq_TypeDef CMU_HFRCOFreqGet | ( | void |
|
) |
Get the current HFRCO frequency.
-
Deprecated:
- A deprecated function. New code should use CMU_HFRCOBandGet() .
- Returns
- HFRCO frequency.
Definition at line
2642
of file
em_cmu.h
.
References CMU_HFRCOBandGet() .
__STATIC_INLINE void CMU_HFRCOFreqSet | ( | CMU_HFRCOFreq_TypeDef |
setFreq
|
) |
Set HFRCO calibration for the selected target frequency.
-
Deprecated:
- A deprecated function. New code should use CMU_HFRCOBandSet() .
- Parameters
-
[in] setFreq
HFRCO frequency to set.
Definition at line
2657
of file
em_cmu.h
.
References CMU_HFRCOBandSet() .
void CMU_HFXOAutostartEnable | ( | uint32_t |
userSel,
|
bool |
enEM0EM1Start,
|
||
bool |
enEM0EM1StartSel
|
||
) |
Enable or disable HFXO autostart.
- Parameters
-
[in] userSel
Additional user specified enable bit. [in] enEM0EM1Start
If true, HFXO is automatically started upon entering EM0/EM1 entry from EM2/EM3. HFXO selection has to be handled by the user. If false, HFXO is not started automatically when entering EM0/EM1. [in] enEM0EM1StartSel
If true, HFXO is automatically started and immediately selected upon entering EM0/EM1 entry from EM2/EM3. Note that this option stalls the use of HFSRCCLK until HFXO becomes ready. If false, HFXO is not started or selected automatically when entering EM0/EM1.
Definition at line
6962
of file
em_cmu.c
.
References _CMU_HFXOCTRL_AUTOSTARTEM0EM1_MASK , _CMU_HFXOCTRL_AUTOSTARTSELEM0EM1_MASK , _EMU_CTRL_EM23VSCALE_MASK , CMU , CMU_HFXOCTRL_AUTOSTARTEM0EM1 , CMU_HFXOCTRL_AUTOSTARTSELEM0EM1 , CMU_OscillatorEnable() , cmuOsc_HFXO , EMU , EMU_CTRL_EM23VSCALE_VSCALE2 , EMU_VScaleEM01ByClock() , and SystemHFXOClockGet() .
Referenced by BSP_initClocks() .
void CMU_HFXOInit | ( | const CMU_HFXOInit_TypeDef * |
hfxoInit
|
) |
Set HFXO control registers.
- Note
- HFXO configuration should be obtained from a configuration tool, app note, or xtal data sheet. This function disables the HFXO to ensure a valid state before update.
- Parameters
-
[in] hfxoInit
HFXO setup parameters.
Definition at line
7025
of file
em_cmu.c
.
References _CMU_HFXOCTRL1_PEAKDETTHR_MASK , _CMU_HFXOCTRL1_PEAKDETTHR_SHIFT , _CMU_HFXOCTRL_MODE_MASK , _CMU_HFXOSTARTUPCTRL_CTUNE_SHIFT , _CMU_HFXOSTARTUPCTRL_IBTRIMXOCORE_SHIFT , _CMU_HFXOSTEADYSTATECTRL_CTUNE_MASK , _CMU_HFXOSTEADYSTATECTRL_CTUNE_SHIFT , _CMU_HFXOSTEADYSTATECTRL_IBTRIMXOCORE_MASK , _CMU_HFXOSTEADYSTATECTRL_IBTRIMXOCORE_SHIFT , _CMU_HFXOTIMEOUTCTRL_PEAKDETTIMEOUT_SHIFT , _CMU_HFXOTIMEOUTCTRL_STARTUPTIMEOUT_SHIFT , _CMU_HFXOTIMEOUTCTRL_STEADYTIMEOUT_SHIFT , BUS_RegBitWrite() , CMU , CMU_ClockSelectGet() , CMU_HFXOCTRL_MODE_ACBUFEXTCLK , CMU_HFXOCTRL_MODE_DIGEXTCLK , CMU_HFXOCTRL_MODE_XTAL , CMU_OscillatorEnable() , cmuClock_HF , cmuOsc_HFXO , cmuOscMode_AcCoupled , cmuOscMode_Crystal , cmuOscMode_External , cmuSelect_HFXO , CMU_HFXOInit_TypeDef::ctuneStartup , CMU_HFXOInit_TypeDef::ctuneSteadyState , CMU_HFXOInit_TypeDef::mode , SystemHFXOClockGet() , CMU_HFXOInit_TypeDef::timeoutPeakDetect , CMU_HFXOInit_TypeDef::timeoutStartup , CMU_HFXOInit_TypeDef::timeoutSteady , CMU_HFXOInit_TypeDef::xoCoreBiasTrimStartup , and CMU_HFXOInit_TypeDef::xoCoreBiasTrimSteadyState .
Referenced by BSP_initClocks() .
__STATIC_INLINE void CMU_IntClear | ( | uint32_t |
flags
|
) |
Clear one or more pending CMU interrupts.
- Parameters
-
[in] flags
CMU interrupt sources to clear.
Definition at line
2477
of file
em_cmu.h
.
References CMU .
__STATIC_INLINE void CMU_IntDisable | ( | uint32_t |
flags
|
) |
Disable one or more CMU interrupts.
- Parameters
-
[in] flags
CMU interrupt sources to disable.
Definition at line
2489
of file
em_cmu.h
.
References CMU .
__STATIC_INLINE void CMU_IntEnable | ( | uint32_t |
flags
|
) |
Enable one or more CMU interrupts.
- Note
- Depending on use case, a pending interrupt may already be set prior to enabling the interrupt. Consider using CMU_IntClear() prior to enabling if the pending interrupt should be ignored.
- Parameters
-
[in] flags
CMU interrupt sources to enable.
Definition at line
2506
of file
em_cmu.h
.
References CMU .
__STATIC_INLINE uint32_t CMU_IntGet | ( | void |
|
) |
Get pending CMU interrupts.
- Returns
- CMU interrupt sources pending.
Definition at line
2518
of file
em_cmu.h
.
References CMU .
__STATIC_INLINE uint32_t CMU_IntGetEnabled | ( | void |
|
) |
Get enabled and pending CMU interrupt flags.
Useful for handling more interrupt sources in the same interrupt handler.
- Note
- This function does not clear event bits.
- Returns
-
Pending and enabled CMU interrupt sources. The return value is the bitwise AND of
- the enabled interrupt sources in CMU_IEN and
- the pending interrupt flags CMU_IF
Definition at line
2539
of file
em_cmu.h
.
References CMU .
__STATIC_INLINE void CMU_IntSet | ( | uint32_t |
flags
|
) |
Set one or more pending CMU interrupts.
- Parameters
-
[in] flags
CMU interrupt sources to set to pending.
Definition at line
2554
of file
em_cmu.h
.
References CMU .
uint32_t CMU_LCDClkFDIVGet | ( | void |
|
) |
Get the LCD framerate divisor (FDIV) setting.
- Returns
- The LCD framerate divisor.
Definition at line
7163
of file
em_cmu.c
.
References CMU .
void CMU_LCDClkFDIVSet | ( | uint32_t |
div
|
) |
Set the LCD framerate divisor (FDIV) setting.
- Note
- The FDIV field (CMU LCDCTRL register) should only be modified while the LCD module is clock disabled (CMU LFACLKEN0.LCD bit is 0). This function will NOT modify FDIV if the LCD module clock is enabled. See CMU_ClockEnable() for disabling/enabling LCD clock.
- Parameters
-
[in] div
The FDIV setting to use.
Definition at line
7185
of file
em_cmu.c
.
References CMU , CMU_LFACLKEN0_LCD , and cmuClkDiv_128 .
Referenced by SegmentLCD_Init() .
void CMU_LFXOInit | ( | const CMU_LFXOInit_TypeDef * |
lfxoInit
|
) |
Set LFXO control registers.
- Note
- LFXO configuration should be obtained from a configuration tool, app note, or xtal data sheet. This function disables the LFXO to ensure a valid state before update.
- Parameters
-
[in] lfxoInit
LFXO setup parameters.
Definition at line
7215
of file
em_cmu.c
.
References _CMU_LFXOCTRL_GAIN_MASK , _CMU_LFXOCTRL_GAIN_SHIFT , _CMU_LFXOCTRL_MODE_MASK , _CMU_LFXOCTRL_MODE_SHIFT , _CMU_LFXOCTRL_TIMEOUT_MASK , _CMU_LFXOCTRL_TIMEOUT_SHIFT , _CMU_LFXOCTRL_TUNING_MASK , _CMU_LFXOCTRL_TUNING_SHIFT , BUS_RegBitWrite() , BUS_RegMaskedWrite() , CMU , CMU_ClockSelectGet() , CMU_OscillatorEnable() , cmuClock_HF , cmuOsc_LFXO , cmuSelect_LFXO , CMU_LFXOInit_TypeDef::ctune , EMU , CMU_LFXOInit_TypeDef::gain , CMU_LFXOInit_TypeDef::mode , and CMU_LFXOInit_TypeDef::timeout .
Referenced by BSP_initClocks() .
__STATIC_INLINE void CMU_Lock | ( | void |
|
) |
Lock the CMU to protect some of its registers against unintended modification.
See the reference manual for CMU registers that will be locked.
- Note
- If locking the CMU registers, they must be unlocked prior to using any CMU API functions modifying CMU registers protected by the lock.
Definition at line
2572
of file
em_cmu.h
.
References CMU , and CMU_LOCK_LOCKKEY_LOCK .
Referenced by EMU_EnterEM3() .
__STATIC_INLINE uint32_t CMU_Log2ToDiv | ( | uint32_t |
log2
|
) |
Convert logarithm of 2 prescaler to division factor.
- Parameters
-
[in] log2
Logarithm of 2, as used by fixed prescalers.
- Returns
- Dividend.
Definition at line
2587
of file
em_cmu.h
.
Referenced by CMU_ClockDivGet() , CMU_ClockFreqGet() , CMU_ClockPrescGet() , and CMU_PrescToLog2() .
void CMU_OscillatorEnable | ( | CMU_Osc_TypeDef |
osc,
|
bool |
enable,
|
||
bool |
wait
|
||
) |
Enable/disable oscillator.
- Note
- WARNING: When this function is called to disable either cmuOsc_LFXO or cmuOsc_HFXO, the LFXOMODE or HFXOMODE fields of the CMU_CTRL register are reset to the reset value. In other words, if external clock sources are selected in either LFXOMODE or HFXOMODE fields, the configuration will be cleared and needs to be reconfigured if needed later.
- Parameters
-
[in] osc
The oscillator to enable/disable. [in] enable
- true - enable specified oscillator.
- false - disable specified oscillator.
[in] wait
Only used if enable
is true.- true - wait for oscillator start-up time to timeout before returning.
- false - do not wait for oscillator start-up time to timeout before returning.
Definition at line
7276
of file
em_cmu.c
.
References _CMU_HFXOCTRL_MODE_MASK , _CMU_STATUS_AUXHFRCOENS_SHIFT , _CMU_STATUS_AUXHFRCORDY_SHIFT , _CMU_STATUS_HFRCOENS_SHIFT , _CMU_STATUS_HFRCORDY_SHIFT , _CMU_STATUS_HFXOENS_SHIFT , _CMU_STATUS_HFXORDY_SHIFT , _CMU_STATUS_LFRCOENS_SHIFT , _CMU_STATUS_LFRCORDY_SHIFT , _CMU_STATUS_LFXOENS_SHIFT , _CMU_STATUS_LFXORDY_SHIFT , BUS_RegBitRead() , CMU , CMU_HFXOCTRL_MODE_DIGEXTCLK , CMU_OSCENCMD_AUXHFRCODIS , CMU_OSCENCMD_AUXHFRCOEN , CMU_OSCENCMD_HFRCODIS , CMU_OSCENCMD_HFRCOEN , CMU_OSCENCMD_HFXODIS , CMU_OSCENCMD_HFXOEN , CMU_OSCENCMD_LFRCODIS , CMU_OSCENCMD_LFRCOEN , CMU_OSCENCMD_LFXODIS , CMU_OSCENCMD_LFXOEN , CMU_OscillatorTuningGet() , CMU_OscillatorTuningOptimize() , CMU_OscillatorTuningSet() , CMU_OscillatorTuningWait() , cmuOsc_AUXHFRCO , cmuOsc_HFRCO , cmuOsc_HFXO , cmuOsc_LFRCO , cmuOsc_LFXO , EMU , and EMU_PWRCTRL_REGPWRSEL_DVDD .
Referenced by BSP_initClocks() , CMU_ClockSelectSet() , CMU_HFXOAutostartEnable() , CMU_HFXOInit() , CMU_LFXOInit() , setupOscillators() , and UDELAY_Calibrate() .
uint32_t CMU_OscillatorTuningGet | ( | CMU_Osc_TypeDef |
osc
|
) |
Get the oscillator frequency tuning setting.
- Parameters
-
[in] osc
An oscillator to get tuning value for, one of the following: - cmuOsc_LFRCO
- cmuOsc_HFRCO
- cmuOsc_AUXHFRCO
- cmuOsc_HFXO if CMU_HFXOCTRL_PEAKDETSHUNTOPTMODE is defined
- Returns
- The oscillator frequency tuning setting in use.
Definition at line
7445
of file
em_cmu.c
.
References _CMU_AUXHFRCOCTRL_TUNING_MASK , _CMU_AUXHFRCOCTRL_TUNING_SHIFT , _CMU_HFRCOCTRL_TUNING_MASK , _CMU_HFRCOCTRL_TUNING_SHIFT , _CMU_HFXOTRIMSTATUS_IBTRIMXOCORE_MASK , _CMU_LFRCOCTRL_TUNING_MASK , _CMU_LFRCOCTRL_TUNING_SHIFT , CMU , cmuOsc_AUXHFRCO , cmuOsc_HFRCO , cmuOsc_HFXO , and cmuOsc_LFRCO .
Referenced by CMU_OscillatorEnable() .
bool CMU_OscillatorTuningOptimize | ( | CMU_Osc_TypeDef |
osc,
|
CMU_HFXOTuningMode_TypeDef |
mode,
|
||
bool |
wait
|
||
) |
Start and optionally wait for the oscillator tuning optimization.
- Parameters
-
[in] osc
An oscillator to set tuning value for, one of the following: [in] mode
Tuning optimization mode. [in] wait
Wait for tuning optimization to complete. true - wait for tuning optimization to complete. false - return without waiting.
- Returns
- Returns false on invalid parameters or oscillator error status.
Definition at line
7689
of file
em_cmu.c
.
References CMU , CMU_OscillatorTuningWait() , and cmuOsc_HFXO .
Referenced by CMU_OscillatorEnable() .
void CMU_OscillatorTuningSet | ( | CMU_Osc_TypeDef |
osc,
|
uint32_t |
val
|
||
) |
Set the oscillator frequency tuning control.
- Note
- Oscillator tuning is done during production and the tuning value is automatically loaded after reset. Changing the tuning value from the calibrated value is for more advanced use. Certain oscillators also have build-in tuning optimization.
- Parameters
-
[in] osc
An oscillator to set tuning value for, one of the following: - cmuOsc_LFRCO
- cmuOsc_HFRCO
- cmuOsc_AUXHFRCO
- cmuOsc_HFXO if PEAKDETSHUNTOPTMODE is available. Note that CMD mode is set.
[in] val
The oscillator frequency tuning setting to use.
Definition at line
7513
of file
em_cmu.c
.
References _CMU_AUXHFRCOCTRL_TUNING_MASK , _CMU_AUXHFRCOCTRL_TUNING_SHIFT , _CMU_HFRCOCTRL_TUNING_MASK , _CMU_HFRCOCTRL_TUNING_SHIFT , _CMU_HFXOSTEADYSTATECTRL_IBTRIMXOCORE_MASK , _CMU_LFRCOCTRL_TUNING_MASK , _CMU_LFRCOCTRL_TUNING_SHIFT , _CMU_SYNCBUSY_AUXHFRCOBSY_SHIFT , _CMU_SYNCBUSY_HFRCOBSY_SHIFT , _CMU_SYNCBUSY_LFRCOBSY_SHIFT , BUS_RegBitRead() , CMU , CMU_STATUS_HFXOENS , cmuOsc_AUXHFRCO , cmuOsc_HFRCO , cmuOsc_HFXO , and cmuOsc_LFRCO .
Referenced by CMU_OscillatorEnable() .
bool CMU_OscillatorTuningWait | ( | CMU_Osc_TypeDef |
osc,
|
CMU_HFXOTuningMode_TypeDef |
mode
|
||
) |
Wait for the oscillator tuning optimization.
- Parameters
-
[in] osc
An oscillator to set tuning value for, one of the following: [in] mode
Tuning optimization mode.
- Returns
- Returns false on invalid parameters or oscillator error status.
Definition at line
7623
of file
em_cmu.c
.
References _CMU_STATUS_MASK , CMU , CMU_STATUS_HFXOPEAKDETRDY , and cmuOsc_HFXO .
Referenced by CMU_OscillatorEnable() , and CMU_OscillatorTuningOptimize() .
bool CMU_PCNTClockExternalGet | ( | unsigned int |
instance
|
) |
Determine if the currently selected PCNTn clock used is external or LFBCLK.
- Parameters
-
[in] instance
PCNT instance number to get currently selected clock source for.
- Returns
-
- true - selected clock is external clock.
- false - selected clock is LFBCLK.
Definition at line
7726
of file
em_cmu.c
.
References CMU , and CMU_PCNTCTRL_PCNT0CLKSEL_PCNT0S0 .
void CMU_PCNTClockExternalSet | ( | unsigned int |
instance,
|
bool |
external
|
||
) |
Select the PCNTn clock.
- Parameters
-
[in] instance
PCNT instance number to set selected clock source for. [in] external
Set to true to select the external clock, false to select LFBCLK.
Definition at line
7766
of file
em_cmu.c
.
References BUS_RegBitWrite() , CMU , and PCNT_COUNT .
Referenced by PCNT_Init() , and PCNT_Reset() .
__STATIC_INLINE uint32_t CMU_PrescToLog2 | ( | CMU_ClkPresc_TypeDef |
presc
|
) |
Convert prescaler dividend to a logarithmic value. It only works for even numbers equal to 2^n.
- Parameters
-
[in] presc
An unscaled dividend (dividend = presc + 1).
- Returns
- Logarithm of 2, as used by fixed 2^n prescalers.
Definition at line
2605
of file
em_cmu.h
.
References CMU_Log2ToDiv() .
Referenced by CMU_ClockPrescSet() .