EFM32 Pearl Gecko Software Documentation
efm32pg1-doc-4.2.1
|
Clock management unit (CMU) Peripheral API
. More...
Data Structures | |
struct | CMU_LFXOInit_TypeDef |
struct | CMU_HFXOInit_TypeDef |
Macros | |
#define | cmuClkDiv_1 1 |
#define | cmuClkDiv_2 2 |
#define | cmuClkDiv_4 4 |
#define | cmuClkDiv_8 8 |
#define | cmuClkDiv_16 16 |
#define | cmuClkDiv_32 32 |
#define | cmuClkDiv_64 64 |
#define | cmuClkDiv_128 128 |
#define | cmuClkDiv_256 256 |
#define | cmuClkDiv_512 512 |
#define | cmuClkDiv_1024 1024 |
#define | cmuClkDiv_2048 2048 |
#define | cmuClkDiv_4096 4096 |
#define | cmuClkDiv_8192 8192 |
#define | cmuClkDiv_16384 16384 |
#define | cmuClkDiv_32768 32768 |
#define | CMU_HFRCO_MIN cmuHFRCOFreq_1M0Hz |
#define | CMU_HFRCO_MAX cmuHFRCOFreq_38M0Hz |
#define | CMU_AUXHFRCO_MIN cmuAUXHFRCOFreq_1M0Hz |
#define | CMU_AUXHFRCO_MAX cmuAUXHFRCOFreq_38M0Hz |
#define | CMU_LFXOINIT_DEFAULT |
#define | CMU_HFXOINIT_DEFAULT |
Typedefs | |
typedef uint32_t | CMU_ClkDiv_TypeDef |
typedef uint32_t | CMU_ClkPresc_TypeDef |
Functions | |
CMU_AUXHFRCOFreq_TypeDef | CMU_AUXHFRCOFreqGet (void) |
Get AUXHFRCO frequency enumeration in use. More... | |
void | CMU_AUXHFRCOFreqSet (CMU_AUXHFRCOFreq_TypeDef freq) |
Set AUXHFRCO calibration for the selected target frequency. More... | |
uint32_t | CMU_Calibrate (uint32_t HFCycles, CMU_Osc_TypeDef ref) |
Calibrate clock. More... | |
void | CMU_CalibrateConfig (uint32_t downCycles, CMU_Osc_TypeDef downSel, CMU_Osc_TypeDef upSel) |
Configure clock calibration. More... | |
uint32_t | CMU_CalibrateCountGet (void) |
Get calibration count register. More... | |
void | CMU_ClockEnable (CMU_Clock_TypeDef clock, bool enable) |
Enable/disable a clock. More... | |
CMU_ClkDiv_TypeDef | CMU_ClockDivGet (CMU_Clock_TypeDef clock) |
Get clock divisor/prescaler. More... | |
void | CMU_ClockDivSet (CMU_Clock_TypeDef clock, CMU_ClkDiv_TypeDef div) |
Set clock divisor/prescaler. More... | |
uint32_t | CMU_ClockFreqGet (CMU_Clock_TypeDef clock) |
Get clock frequency for a clock point. More... | |
void | CMU_ClockPrescSet (CMU_Clock_TypeDef clock, CMU_ClkPresc_TypeDef presc) |
Set clock prescaler. More... | |
uint32_t | CMU_ClockPrescGet (CMU_Clock_TypeDef clock) |
Get clock prescaler. More... | |
void | CMU_ClockSelectSet (CMU_Clock_TypeDef clock, CMU_Select_TypeDef ref) |
Select reference clock/oscillator used for a clock branch. More... | |
CMU_Select_TypeDef | CMU_ClockSelectGet (CMU_Clock_TypeDef clock) |
Get currently selected reference clock used for a clock branch. More... | |
void | CMU_FreezeEnable (bool enable) |
CMU low frequency register synchronization freeze control. More... | |
CMU_HFRCOFreq_TypeDef | CMU_HFRCOFreqGet (void) |
Get HFRCO frequency enumeration in use. More... | |
void | CMU_HFRCOFreqSet (CMU_HFRCOFreq_TypeDef freq) |
Set HFRCO calibration for the selected target frequency. More... | |
uint32_t | CMU_HFRCOStartupDelayGet (void) |
void | CMU_HFRCOStartupDelaySet (uint32_t delay) |
void | CMU_HFXOAutostartEnable (bool enRACStartSel, bool enEM0EM1Start, bool enEM0EM1StartSel) |
Enable or disable HFXO autostart. More... | |
void | CMU_HFXOInit (CMU_HFXOInit_TypeDef *hfxoInit) |
Set HFXO control registers. More... | |
uint32_t | CMU_LCDClkFDIVGet (void) |
Get the LCD framerate divisor (FDIV) setting. More... | |
void | CMU_LCDClkFDIVSet (uint32_t div) |
Set the LCD framerate divisor (FDIV) setting. More... | |
void | CMU_LFXOInit (CMU_LFXOInit_TypeDef *lfxoInit) |
Set LFXO control registers. More... | |
void | CMU_OscillatorEnable (CMU_Osc_TypeDef osc, bool enable, bool wait) |
Enable/disable oscillator. More... | |
uint32_t | CMU_OscillatorTuningGet (CMU_Osc_TypeDef osc) |
Get oscillator frequency tuning setting. More... | |
void | CMU_OscillatorTuningSet (CMU_Osc_TypeDef osc, uint32_t val) |
Set the oscillator frequency tuning control. More... | |
bool | CMU_PCNTClockExternalGet (unsigned int instance) |
Determine if currently selected PCNTn clock used is external or LFBCLK. More... | |
void | CMU_PCNTClockExternalSet (unsigned int instance, bool external) |
Select PCNTn clock. More... | |
__STATIC_INLINE void | CMU_CalibrateCont (bool enable) |
Configures continuous calibration mode. More... | |
__STATIC_INLINE void | CMU_CalibrateStart (void) |
Starts calibration. More... | |
__STATIC_INLINE void | CMU_CalibrateStop (void) |
Stop the calibration counters. | |
__STATIC_INLINE uint32_t | CMU_DivToLog2 (CMU_ClkDiv_TypeDef div) |
Convert dividend to logarithmic value. Only works for even numbers equal to 2^n. More... | |
__STATIC_INLINE void | CMU_IntClear (uint32_t flags) |
Clear one or more pending CMU interrupts. More... | |
__STATIC_INLINE void | CMU_IntDisable (uint32_t flags) |
Disable one or more CMU interrupts. More... | |
__STATIC_INLINE void | CMU_IntEnable (uint32_t flags) |
Enable one or more CMU interrupts. More... | |
__STATIC_INLINE uint32_t | CMU_IntGet (void) |
Get pending CMU interrupts. More... | |
__STATIC_INLINE uint32_t | CMU_IntGetEnabled (void) |
Get enabled and pending CMU interrupt flags. More... | |
__STATIC_INLINE void | CMU_IntSet (uint32_t flags) |
Set one or more pending CMU interrupts. More... | |
__STATIC_INLINE void | CMU_Lock (void) |
Lock the CMU in order to protect some of its registers against unintended modification. More... | |
__STATIC_INLINE uint32_t | CMU_Log2ToDiv (uint32_t log2) |
Convert logarithm of 2 prescaler to division factor. More... | |
__STATIC_INLINE uint32_t | CMU_PrescToLog2 (CMU_ClkPresc_TypeDef presc) |
Convert prescaler dividend to logarithmic value. Only works for even numbers equal to 2^n. More... | |
__STATIC_INLINE void | CMU_Unlock (void) |
Unlock the CMU so that writing to locked registers again is possible. | |
static uint32_t | CMU_AUXHFRCODevinfoGet (CMU_AUXHFRCOFreq_TypeDef freq) |
Get a pointer to the AUXHFRCO frequency calibration word in DEVINFO. More... | |
static uint32_t | CMU_HFRCODevinfoGet (CMU_HFRCOFreq_TypeDef freq) |
Get a pointer to the HFRCO frequency calibration word in DEVINFO. More... | |
#define cmuClkDiv_1 1 |
Clock divisors. These values are valid for prescalers. Divide clock by 1.
Definition at line 148 of file em_cmu.h.
Referenced by CAPLESENSE_setupCMU(), CMU_ClockDivGet(), CMU_ClockDivSet(), and RETARGET_SerialInit().
#define cmuClkDiv_8 8 |
#define cmuClkDiv_16 16 |
Divide clock by 16.
Definition at line 152 of file em_cmu.h.
Referenced by CMU_ClockDivGet(), CMU_ClockDivSet(), and CMU_ClockFreqGet().
#define cmuClkDiv_128 128 |
Divide clock by 128.
Definition at line 155 of file em_cmu.h.
Referenced by CMU_ClockDivSet(), and CMU_LCDClkFDIVSet().
#define cmuClkDiv_256 256 |
#define cmuClkDiv_512 512 |
#define cmuClkDiv_32768 32768 |
#define CMU_LFXOINIT_DEFAULT |
#define CMU_HFXOINIT_DEFAULT |
Default HFXO initialization
typedef uint32_t CMU_ClkDiv_TypeDef |
typedef uint32_t CMU_ClkPresc_TypeDef |
High frequency system RCO bands
AUX High frequency RCO bands
enum CMU_Clock_TypeDef |
Clock points in CMU. Please refer to CMU overview in reference manual.
enum CMU_Osc_TypeDef |
Oscillator types.
enum CMU_Select_TypeDef |
Selectable clock sources.
CMU_AUXHFRCOFreq_TypeDef CMU_AUXHFRCOFreqGet | ( | void | ) |
void CMU_AUXHFRCOFreqSet | ( | CMU_AUXHFRCOFreq_TypeDef | freq | ) |
[in] | frequency | AUXHFRCO frequency to set |
Definition at line 740 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.
uint32_t CMU_Calibrate | ( | uint32_t | HFCycles, |
CMU_Osc_TypeDef | ref | ||
) |
Run a calibration for HFCLK against a selectable reference clock. Please refer to the reference manual, CMU chapter, for further details.
[in] | HFCycles | The number of HFCLK cycles to run calibration. Increasing this number increases precision, but the calibration will take more time. |
[in] | ref | The reference clock used to compare HFCLK with. |
Definition at line 801 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 a calibration for a selectable clock source against another selectable reference clock. Refer to the reference manual, CMU chapter, for further details.
[in] | downCycles | The number of downSel clock cycles to run 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, the result can be given with the CMU_CalibrateCountGet() function call. |
Definition at line 882 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.
uint32_t CMU_CalibrateCountGet | ( | void | ) |
Definition at line 969 of file em_cmu.c.
References _CMU_CALCTRL_CONT_SHIFT, _CMU_STATUS_CALRDY_SHIFT, BUS_RegBitRead(), and CMU.
void CMU_ClockEnable | ( | CMU_Clock_TypeDef | clock, |
bool | enable | ||
) |
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 have no effect. One should normally avoid accessing module registers of a module with a disabled clock.
[in] | clock | The clock to enable/disable. Notice that not all defined clock points have separate enable/disable control, please refer to CMU overview in reference manual. |
[in] | enable |
|
Definition at line 1369 of file em_cmu.c.
References BUS_RegBitWrite(), CMU, CMU_ClockFreqGet(), CMU_SYNCBUSY_LFACLKEN0, CMU_SYNCBUSY_LFBCLKEN0, CMU_SYNCBUSY_LFECLKEN0, and cmuClock_CORE.
Referenced by BSP_BccDeInit(), BSP_BccInit(), BSP_EbiInit(), BSP_McuBoard_Init(), CAPLESENSE_setupCMU(), CAPSENSE_Init(), DMADRV_DeInit(), ezradio_hal_GpioInit(), I2CSPM_Init(), LDMA_DeInit(), LDMA_Init(), MICROSD_Init(), MICROSD_PowerOff(), MICROSD_PowerOn(), MSDD_Init(), RETARGET_SerialInit(), RTCDRV_DeInit(), RTCDRV_Init(), SegmentLCD_Disable(), SegmentLCD_Init(), SPI_TFT_Init(), SPIDRV_DeInit(), SPIDRV_Init(), TOUCH_Init(), UARTDRV_DeInit(), UARTDRV_Init(), UDELAY_Calibrate(), USTIMER_DeInit(), USTIMER_Init(), VDDCHECK_Disable(), and VDDCHECK_Init().
CMU_ClkDiv_TypeDef CMU_ClockDivGet | ( | CMU_Clock_TypeDef | clock | ) |
[in] | clock | Clock point to get divisor/prescaler for. Notice that not all clock points have a divisor/prescaler. Please refer to CMU overview in reference manual. |
clock
specifies a clock point without a divisor/prescaler. Definition at line 1009 of file em_cmu.c.
References _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_LETIMER0, and cmuClock_LEUART0.
Referenced by UDELAY_Calibrate().
void CMU_ClockDivSet | ( | CMU_Clock_TypeDef | clock, |
CMU_ClkDiv_TypeDef | div | ||
) |
[in] | clock | Clock point to set divisor/prescaler for. Notice that not all clock points have a divisor/prescaler, please refer to CMU overview in the reference manual. |
[in] | div | The clock divisor to use (<= cmuClkDiv_512). |
Definition at line 1141 of file em_cmu.c.
References _CMU_LFAPRESC0_LETIMER0_MASK, _CMU_LFAPRESC0_LETIMER0_SHIFT, _CMU_LFBPRESC0_LEUART0_MASK, _CMU_LFBPRESC0_LEUART0_SHIFT, BUS_RegBitWrite(), CMU, CMU_ClockFreqGet(), CMU_ClockPrescSet(), CMU_DivToLog2(), CMU_SYNCBUSY_LFAPRESC0, CMU_SYNCBUSY_LFBPRESC0, cmuClkDiv_1, cmuClkDiv_128, cmuClkDiv_16, cmuClkDiv_32768, cmuClkDiv_512, cmuClkDiv_8, cmuClock_HF, cmuClock_LETIMER0, cmuClock_LEUART0, and SystemCoreClockGet().
Referenced by CAPLESENSE_setupCMU(), RETARGET_SerialInit(), RTCDRV_Init(), SegmentLCD_Init(), and UDELAY_Calibrate().
uint32_t CMU_ClockFreqGet | ( | CMU_Clock_TypeDef | clock | ) |
[in] | clock | Clock point to fetch frequency for. |
Definition at line 1482 of file em_cmu.c.
References _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_HFPRESC_PRESC_MASK, _CMU_HFPRESC_PRESC_SHIFT, _CMU_LFAPRESC0_LETIMER0_MASK, _CMU_LFAPRESC0_LETIMER0_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_PrescaleCalc(), ADC_TimebaseCalc(), CMU_ClockDivSet(), CMU_ClockEnable(), I2C_BusFreqGet(), I2C_BusFreqSet(), LEUART_BaudrateGet(), LEUART_BaudrateSet(), MSC_Init(), USART_BaudrateAsyncSet(), USART_BaudrateGet(), USART_BaudrateSyncSet(), and USTIMER_Init().
void CMU_ClockPrescSet | ( | CMU_Clock_TypeDef | clock, |
CMU_ClkPresc_TypeDef | presc | ||
) |
[in] | clock | Clock point to set prescaler for. Notice that not all clock points have a prescaler, please refer to CMU overview in the reference manual. |
[in] | presc | The clock prescaler to use. |
Definition at line 1827 of file em_cmu.c.
References _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_HFPRESC_HFCLKLEPRESC_MASK, _CMU_HFPRESC_HFCLKLEPRESC_SHIFT, _CMU_HFPRESC_PRESC_MASK, _CMU_HFPRESC_PRESC_SHIFT, _CMU_LFAPRESC0_LETIMER0_MASK, _CMU_LFAPRESC0_LETIMER0_SHIFT, _CMU_LFBPRESC0_LEUART0_MASK, _CMU_LFBPRESC0_LEUART0_SHIFT, _CMU_LFEPRESC0_RTCC_MASK, _CMU_LFEPRESC0_RTCC_SHIFT, CMU, CMU_PrescToLog2(), CMU_SYNCBUSY_LFAPRESC0, CMU_SYNCBUSY_LFBPRESC0, CMU_SYNCBUSY_LFEPRESC0, cmuClock_LETIMER0, cmuClock_LEUART0, cmuClock_RTCC, and SystemCoreClockGet().
Referenced by CMU_ClockDivSet().
uint32_t CMU_ClockPrescGet | ( | CMU_Clock_TypeDef | clock | ) |
[in] | clock | Clock point to get the prescaler for. Notice that not all clock points have a prescaler. Please refer to CMU overview in reference manual. |
clock
specifies a clock point without a prescaler. Definition at line 1690 of file em_cmu.c.
References _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_HFPRESC_HFCLKLEPRESC_MASK, _CMU_HFPRESC_HFCLKLEPRESC_SHIFT, _CMU_HFPRESC_PRESC_MASK, _CMU_HFPRESC_PRESC_SHIFT, _CMU_LFAPRESC0_LETIMER0_MASK, _CMU_LFAPRESC0_LETIMER0_SHIFT, _CMU_LFBPRESC0_LEUART0_MASK, _CMU_LFBPRESC0_LEUART0_SHIFT, _CMU_LFEPRESC0_RTCC_DIV1, CMU, CMU_Log2ToDiv(), cmuClock_LETIMER0, cmuClock_LEUART0, and cmuClock_RTCC.
Referenced by CMU_ClockDivGet().
void CMU_ClockSelectSet | ( | CMU_Clock_TypeDef | clock, |
CMU_Select_TypeDef | ref | ||
) |
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.
[in] | clock | Clock branch to select reference clock for. One of: |
[in] | ref | Reference selected for clocking, please refer to reference manual for for details on which reference is available for a specific clock branch. |
Definition at line 2406 of file em_cmu.c.
References _CMU_CTRL_WSHFLE_SHIFT, _CMU_HFBUSCLKEN0_LE_SHIFT, _CMU_HFPRESC_HFCLKLEPRESC_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_CTRL_WSHFLE, CMU_DBGCLKSEL_DBG_AUXHFRCO, CMU_DBGCLKSEL_DBG_HFCLK, CMU_HFCLKSEL_HF_HFRCO, CMU_HFCLKSEL_HF_HFXO, CMU_HFCLKSEL_HF_LFRCO, CMU_HFCLKSEL_HF_LFXO, CMU_OscillatorEnable(), cmuOsc_HFRCO, cmuOsc_HFXO, cmuOsc_LFRCO, cmuOsc_LFXO, cmuSelect_AUXHFRCO, cmuSelect_CORELEDIV2, cmuSelect_Disabled, cmuSelect_HFCLK, cmuSelect_HFCLKLE, cmuSelect_HFRCO, cmuSelect_HFXO, cmuSelect_LFRCO, cmuSelect_LFXO, cmuSelect_ULFRCO, EMU_UpdateOscConfig(), SystemCoreClockGet(), and SystemHFXOClockGet().
Referenced by BSP_BccInit(), CAPLESENSE_setupCMU(), RETARGET_SerialInit(), RTCDRV_Init(), SegmentLCD_Init(), and UDELAY_Calibrate().
CMU_Select_TypeDef CMU_ClockSelectGet | ( | CMU_Clock_TypeDef | clock | ) |
[in] | clock | Clock branch to fetch selected ref. clock for. One of: |
clock
provided. Definition at line 2048 of file em_cmu.c.
References _CMU_DBGCLKSEL_DBG_MASK, _CMU_HFCLKSEL_HF_MASK, _CMU_LFACLKSEL_LFA_MASK, _CMU_LFBCLKSEL_LFB_MASK, _CMU_LFECLKSEL_LFE_MASK, CMU, CMU_DBGCLKSEL_DBG_AUXHFRCO, CMU_DBGCLKSEL_DBG_HFCLK, CMU_HFCLKSEL_HF_HFXO, CMU_HFCLKSEL_HF_LFRCO, CMU_HFCLKSEL_HF_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_CORELEDIV2, cmuSelect_Disabled, cmuSelect_Error, cmuSelect_HFCLK, cmuSelect_HFCLKLE, cmuSelect_HFRCO, cmuSelect_HFXO, cmuSelect_LFRCO, cmuSelect_LFXO, and cmuSelect_ULFRCO.
Referenced by CMU_HFRCOFreqSet(), CMU_HFXOInit(), CMU_LFXOInit(), and UDELAY_Calibrate().
void CMU_FreezeEnable | ( | bool | enable | ) |
Some CMU registers requires 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 usage scenario of this feature, is when 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.
[in] | enable |
|
Definition at line 2857 of file em_cmu.c.
References CMU, and CMU_FREEZE_REGFREEZE.
CMU_HFRCOFreq_TypeDef CMU_HFRCOFreqGet | ( | void | ) |
Definition at line 3037 of file em_cmu.c.
References SystemHfrcoFreq.
void CMU_HFRCOFreqSet | ( | CMU_HFRCOFreq_TypeDef | freq | ) |
[in] | freq | HFRCO frequency band to set |
Definition at line 3050 of file em_cmu.c.
References _CMU_HFRCOCTRL_CLKDIV_MASK, _CMU_SYNCBUSY_HFRCOBSY_SHIFT, BUS_RegBitRead(), CMU, CMU_ClockSelectGet(), CMU_HFRCOCTRL_CLKDIV_DIV1, CMU_HFRCOCTRL_CLKDIV_DIV2, CMU_HFRCOCTRL_CLKDIV_DIV4, CMU_HFRCODevinfoGet(), cmuClock_HF, cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuSelect_HFRCO, and SystemHfrcoFreq.
void CMU_HFXOAutostartEnable | ( | bool | enRACStartSel, |
bool | enEM0EM1Start, | ||
bool | enEM0EM1StartSel | ||
) |
[in] | enRACStartSel | If true, HFXO is automatically started and selected upon RAC wakeup. If false, HFXO is not started or selected automatically upon RAC wakeup. |
[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 3164 of file em_cmu.c.
References _CMU_HFXOCTRL_AUTOSTARTEM0EM1_MASK, _CMU_HFXOCTRL_AUTOSTARTRDYSELRAC_MASK, _CMU_HFXOCTRL_AUTOSTARTSELEM0EM1_MASK, CMU, CMU_HFXOCTRL_AUTOSTARTEM0EM1, CMU_HFXOCTRL_AUTOSTARTRDYSELRAC, and CMU_HFXOCTRL_AUTOSTARTSELEM0EM1.
void CMU_HFXOInit | ( | CMU_HFXOInit_TypeDef * | hfxoInit | ) |
[in] | hfxoInit | HFXO setup parameters |
Definition at line 3195 of file em_cmu.c.
References _CMU_HFXOCTRL_AUTOSTARTEM0EM1_MASK, _CMU_HFXOCTRL_AUTOSTARTRDYSELRAC_MASK, _CMU_HFXOCTRL_AUTOSTARTSELEM0EM1_MASK, _CMU_HFXOCTRL_LOWPOWER_MASK, _CMU_HFXOSTARTUPCTRL_CTUNE_MASK, _CMU_HFXOSTARTUPCTRL_CTUNE_SHIFT, _CMU_HFXOSTARTUPCTRL_IBTRIMXOCORE_MASK, _CMU_HFXOSTARTUPCTRL_IBTRIMXOCORE_SHIFT, _CMU_HFXOSTARTUPCTRL_IBTRIMXOCOREWARM_MASK, _CMU_HFXOSTARTUPCTRL_IBTRIMXOCOREWARM_SHIFT, _CMU_HFXOSTARTUPCTRL_REGISHWARM_MASK, _CMU_HFXOSTARTUPCTRL_REGISHWARM_SHIFT, _CMU_HFXOSTEADYSTATECTRL_CTUNE_MASK, _CMU_HFXOSTEADYSTATECTRL_CTUNE_SHIFT, _CMU_HFXOSTEADYSTATECTRL_IBTRIMXOCORE_MASK, _CMU_HFXOSTEADYSTATECTRL_IBTRIMXOCORE_SHIFT, _CMU_HFXOSTEADYSTATECTRL_REGISH_MASK, _CMU_HFXOSTEADYSTATECTRL_REGISH_SHIFT, _CMU_HFXOSTEADYSTATECTRL_REGISHUPPER_MASK, _CMU_HFXOSTEADYSTATECTRL_REGISHUPPER_SHIFT, _CMU_HFXOTIMEOUTCTRL_PEAKDETTIMEOUT_MASK, _CMU_HFXOTIMEOUTCTRL_PEAKDETTIMEOUT_SHIFT, _CMU_HFXOTIMEOUTCTRL_SHUNTOPTTIMEOUT_MASK, _CMU_HFXOTIMEOUTCTRL_SHUNTOPTTIMEOUT_SHIFT, _CMU_HFXOTIMEOUTCTRL_STARTUPTIMEOUT_MASK, _CMU_HFXOTIMEOUTCTRL_STARTUPTIMEOUT_SHIFT, _CMU_HFXOTIMEOUTCTRL_STEADYTIMEOUT_MASK, _CMU_HFXOTIMEOUTCTRL_STEADYTIMEOUT_SHIFT, _CMU_HFXOTIMEOUTCTRL_WARMSTEADYTIMEOUT_MASK, _CMU_HFXOTIMEOUTCTRL_WARMSTEADYTIMEOUT_SHIFT, CMU_HFXOInit_TypeDef::autoSelEm01, CMU_HFXOInit_TypeDef::autoStartEm01, CMU_HFXOInit_TypeDef::autoStartSelOnRacWakeup, BUS_RegMaskedWrite(), CMU, CMU_ClockSelectGet(), CMU_HFXOCTRL_AUTOSTARTEM0EM1, CMU_HFXOCTRL_AUTOSTARTRDYSELRAC, CMU_HFXOCTRL_AUTOSTARTSELEM0EM1, CMU_HFXOCTRL_LOWPOWER, CMU_OscillatorEnable(), cmuClock_HF, cmuOsc_HFXO, cmuSelect_HFXO, CMU_HFXOInit_TypeDef::ctuneStartup, CMU_HFXOInit_TypeDef::ctuneSteadyState, CMU_HFXOInit_TypeDef::lowPowerMode, CMU_HFXOInit_TypeDef::regIshStartup, CMU_HFXOInit_TypeDef::regIshSteadyState, CMU_HFXOInit_TypeDef::thresholdPeakDetect, CMU_HFXOInit_TypeDef::timeoutPeakDetect, CMU_HFXOInit_TypeDef::timeoutShuntOptimization, CMU_HFXOInit_TypeDef::timeoutStartup, CMU_HFXOInit_TypeDef::timeoutSteady, CMU_HFXOInit_TypeDef::timeoutWarmSteady, CMU_HFXOInit_TypeDef::xoCoreBiasTrimStartup, and CMU_HFXOInit_TypeDef::xoCoreBiasTrimSteadyState.
uint32_t CMU_LCDClkFDIVGet | ( | void | ) |
void CMU_LCDClkFDIVSet | ( | uint32_t | div | ) |
[in] | div | The FDIV setting to use. |
Definition at line 3318 of file em_cmu.c.
References CMU, and cmuClkDiv_128.
Referenced by SegmentLCD_Init().
void CMU_LFXOInit | ( | CMU_LFXOInit_TypeDef * | lfxoInit | ) |
[in] | lfxoInit | LFXO setup parameters |
Definition at line 3351 of file em_cmu.c.
References _CMU_LFXOCTRL_GAIN_MASK, _CMU_LFXOCTRL_GAIN_SHIFT, _CMU_LFXOCTRL_TIMEOUT_MASK, _CMU_LFXOCTRL_TIMEOUT_SHIFT, _CMU_LFXOCTRL_TUNING_MASK, _CMU_LFXOCTRL_TUNING_SHIFT, BUS_RegMaskedWrite(), CMU, CMU_ClockSelectGet(), CMU_OscillatorEnable(), cmuClock_HF, cmuOsc_LFXO, cmuSelect_LFXO, CMU_LFXOInit_TypeDef::ctune, CMU_LFXOInit_TypeDef::gain, and CMU_LFXOInit_TypeDef::timeout.
void CMU_OscillatorEnable | ( | CMU_Osc_TypeDef | osc, |
bool | enable, | ||
bool | wait | ||
) |
[in] | osc | The oscillator to enable/disable. |
[in] | enable |
|
[in] | wait | Only used if enable is true.
|
Definition at line 3394 of file em_cmu.c.
References _CMU_HFXOCTRL_PEAKDETSHUNTOPTMODE_MASK, _CMU_STATUS_AUXHFRCOENS_SHIFT, _CMU_STATUS_AUXHFRCORDY_SHIFT, _CMU_STATUS_HFRCOENS_SHIFT, _CMU_STATUS_HFRCORDY_SHIFT, _CMU_STATUS_HFXOENS_SHIFT, _CMU_STATUS_HFXOPEAKDETRDY_SHIFT, _CMU_STATUS_HFXORDY_SHIFT, _CMU_STATUS_HFXOSHUNTOPTRDY_SHIFT, _CMU_STATUS_LFRCOENS_SHIFT, _CMU_STATUS_LFRCORDY_SHIFT, _CMU_STATUS_LFXOENS_SHIFT, _CMU_STATUS_LFXORDY_SHIFT, BUS_RegBitRead(), BUS_RegMaskedRead(), CMU, CMU_HFXOCTRL_PEAKDETSHUNTOPTMODE_AUTOCMD, 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, cmuOsc_AUXHFRCO, cmuOsc_HFRCO, cmuOsc_HFXO, cmuOsc_LFRCO, cmuOsc_LFXO, cmuOsc_ULFRCO, and EMU_UpdateOscConfig().
Referenced by CMU_ClockSelectSet(), CMU_HFXOInit(), CMU_LFXOInit(), DBG_SWOEnable(), and UDELAY_Calibrate().
uint32_t CMU_OscillatorTuningGet | ( | CMU_Osc_TypeDef | osc | ) |
[in] | osc | Oscillator to get tuning value for, one of: |
Definition at line 3535 of file em_cmu.c.
References _CMU_AUXHFRCOCTRL_TUNING_MASK, _CMU_AUXHFRCOCTRL_TUNING_SHIFT, _CMU_HFRCOCTRL_TUNING_MASK, _CMU_HFRCOCTRL_TUNING_SHIFT, _CMU_LFRCOCTRL_TUNING_MASK, _CMU_LFRCOCTRL_TUNING_SHIFT, CMU, cmuOsc_AUXHFRCO, cmuOsc_HFRCO, and cmuOsc_LFRCO.
void CMU_OscillatorTuningSet | ( | CMU_Osc_TypeDef | osc, |
uint32_t | val | ||
) |
[in] | osc | Oscillator to set tuning value for, one of: |
[in] | val | The oscillator frequency tuning setting to use. |
Definition at line 3584 of file em_cmu.c.
References _CMU_AUXHFRCOCTRL_TUNING_MASK, _CMU_AUXHFRCOCTRL_TUNING_SHIFT, _CMU_HFRCOCTRL_TUNING_MASK, _CMU_HFRCOCTRL_TUNING_SHIFT, _CMU_LFRCOCTRL_TUNING_MASK, _CMU_LFRCOCTRL_TUNING_SHIFT, _CMU_SYNCBUSY_AUXHFRCOBSY_SHIFT, _CMU_SYNCBUSY_HFRCOBSY_SHIFT, _CMU_SYNCBUSY_LFRCOBSY_SHIFT, BUS_RegBitRead(), CMU, cmuOsc_AUXHFRCO, cmuOsc_HFRCO, and cmuOsc_LFRCO.
bool CMU_PCNTClockExternalGet | ( | unsigned int | instance | ) |
[in] | instance | PCNT instance number to get currently selected clock source for. |
Definition at line 3643 of file em_cmu.c.
References CMU, and CMU_PCNTCTRL_PCNT0CLKSEL_PCNT0S0.
void CMU_PCNTClockExternalSet | ( | unsigned int | instance, |
bool | external | ||
) |
[in] | instance | PCNT instance number to set selected clock source for. |
[in] | external | Set to true to select external clock, false to select LFBCLK. |
Definition at line 3685 of file em_cmu.c.
References BUS_RegBitWrite(), CMU, and PCNT_COUNT.
Referenced by PCNT_Init(), and PCNT_Reset().
__STATIC_INLINE void CMU_CalibrateCont | ( | bool | enable | ) |
[in] | enable | If true, enables continuous calibration, if false disables continuous calibrartion |
Definition at line 1153 of file em_cmu.h.
References _CMU_CALCTRL_CONT_SHIFT, BUS_RegBitWrite(), and CMU.
__STATIC_INLINE void CMU_CalibrateStart | ( | void | ) |
Definition at line 1167 of file em_cmu.h.
References CMU, and CMU_CMD_CALSTART.
__STATIC_INLINE uint32_t CMU_DivToLog2 | ( | CMU_ClkDiv_TypeDef | div | ) |
[in] | div | Unscaled dividend. |
Definition at line 1196 of file em_cmu.h.
Referenced by CMU_ClockDivGet(), CMU_ClockDivSet(), CMU_ClockFreqGet(), and RTCDRV_Init().
__STATIC_INLINE void CMU_IntClear | ( | uint32_t | flags | ) |
__STATIC_INLINE void CMU_IntDisable | ( | uint32_t | flags | ) |
__STATIC_INLINE void CMU_IntEnable | ( | uint32_t | flags | ) |
[in] | flags | CMU interrupt sources to enable. |
Definition at line 1248 of file em_cmu.h.
References CMU.
__STATIC_INLINE uint32_t CMU_IntGet | ( | void | ) |
__STATIC_INLINE uint32_t CMU_IntGetEnabled | ( | void | ) |
Useful for handling more interrupt sources in the same interrupt handler.
Definition at line 1283 of file em_cmu.h.
References CMU.
__STATIC_INLINE void CMU_IntSet | ( | uint32_t | flags | ) |
__STATIC_INLINE void CMU_Lock | ( | void | ) |
Please refer to the reference manual for CMU registers that will be locked.
Definition at line 1318 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 | ) |
[in] | log2 | Logarithm of 2, as used by fixed prescalers. |
Definition at line 1334 of file em_cmu.h.
Referenced by CMU_ClockDivGet(), CMU_ClockFreqGet(), CMU_ClockPrescGet(), and CMU_PrescToLog2().
__STATIC_INLINE uint32_t CMU_PrescToLog2 | ( | CMU_ClkPresc_TypeDef | presc | ) |
[in] | presc | Unscaled dividend (dividend = presc + 1). |
Definition at line 1352 of file em_cmu.h.
References CMU_Log2ToDiv().
Referenced by CMU_ClockPrescSet().
|
static |
[in] | freq | Frequency in Hz |
Definition at line 679 of file em_cmu.c.
References cmuAUXHFRCOFreq_13M0Hz, cmuAUXHFRCOFreq_16M0Hz, cmuAUXHFRCOFreq_19M0Hz, cmuAUXHFRCOFreq_1M0Hz, cmuAUXHFRCOFreq_26M0Hz, cmuAUXHFRCOFreq_2M0Hz, cmuAUXHFRCOFreq_32M0Hz, cmuAUXHFRCOFreq_38M0Hz, cmuAUXHFRCOFreq_4M0Hz, cmuAUXHFRCOFreq_7M0Hz, and DEVINFO.
Referenced by CMU_AUXHFRCOFreqSet().
|
static |
[in] | freq | Frequency in Hz |
Definition at line 2993 of file em_cmu.c.
References cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, and DEVINFO.
Referenced by CMU_HFRCOFreqSet().