MCUXpresso SDK API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Clock: Clock driver

Overview

The MCUXpresso SDK provides a clock driver for MCUXpresso SDK devices.

Function groups

Clock driver provides these functions:

SYSCON Clock frequency functions

SYSCON clock module provides clocks, such as ADCCLK, DMICCLK, FXCOMCLK,WDTOSC, RTCOSC and SYSPLL. The functions CLOCK_EnableClock() and CLOCK_DisableClock() enables and disables the various clocks. The SYSCON clock driver provides functions to get the frequency of clocks, such as CLOCK_GetFreq(),

SYSCON clock Selection Muxes

The SYSCON clock driver provides the function to configure the clock selected. The function CLOCK_AttachClk() is implemented for this. The function selects the clock source for a particular peripheral like MAINCLK, DMIC, FLEXCOMM, USB, ADC and PLL.

SYSCON clock dividers

The SYSCON clock module provides the function to setup the peripheral clock dividers. The function CLOCK_SetClkDiv() configures the CLKDIV registers for various periperals like USB, DMIC, I2S, SYSTICK, AHB, ADC and also for CLKOUT and TRACE functions.

Files

file  fsl_clock.h
 

Macros

#define FLEXCOMM_CLOCKS
 Clock ip name array for FLEXCOMM. More...
 

Enumerations

enum  CHIP_SYSCON_MAINCLKSRC_T {
  SYSCON_MAINCLKSRC_FRO12M,
  SYSCON_MAINCLKSRC_OSC32K,
  SYSCON_MAINCLKSRC_XTAL32M,
  SYSCON_MAINCLKSRC_FRO32M,
  SYSCON_MAINCLKSRC_FRO48M,
  SYSCON_MAINCLKSRC_EXT,
  SYSCON_MAINCLKSRC_FRO1M
}
 
enum  CHIP_SYSCON_FRGCLKSRC_T {
  SYSCON_FRGCLKSRC_MAINCLK,
  SYSCON_FRGCLKSRC_OSC32M,
  SYSCON_FRGCLKSRC_FRO48MHZ,
  SYSCON_FRGCLKSRC_NONE
}
 Fractional Divider clock sources. More...
 
enum  clock_name_t { ,
  kCLOCK_MainClk = (1 << 16),
  kCLOCK_CoreSysClk,
  kCLOCK_BusClk,
  kCLOCK_Xtal32k,
  kCLOCK_Xtal32M,
  kCLOCK_Fro32k,
  kCLOCK_Fro1M,
  kCLOCK_Fro12M,
  kCLOCK_Fro32M,
  kCLOCK_Fro48M,
  kCLOCK_Fro64M,
  kCLOCK_ExtClk,
  kCLOCK_WdtClk,
  kCLOCK_Frg
}
 
enum  main_clock_src_t
 
enum  clkout_clock_src_t
 
enum  wdt_clock_src_t
 
enum  frg_clock_src_t
 
enum  apb_clock_src_t
 
enum  fmeas_clock_src_t
 
enum  spifi_clock_src_t
 
enum  adc_clock_src_t
 
enum  pwm_clock_source_t {
  kCLOCK_PWMOsc32Mclk = 0x0,
  kCLOCK_PWMFro48Mclk = 0x1,
  kCLOCK_PWMNoClkSel = 0x2,
  kCLOCK_PWMTestClk = 0x3
}
 PWM Clock source selection values. More...
 

Functions

uint32_t CLOCK_GetFreq (clock_name_t clock)
 Obtains frequency of specified clock. More...
 
void CLOCK_AttachClk (clock_attach_id_t connection)
 Selects clock source using <name>SEL register in syscon. More...
 
void CLOCK_SetClkDiv (clock_div_name_t div_name, uint32_t divided_by_value, bool reset)
 Selects clock divider using <name>DIV register in syscon. More...
 
void CLOCK_EnableClock (clock_ip_name_t clk)
 Enables specific AHB clock channel. More...
 
void CLOCK_DisableClock (clock_ip_name_t clk)
 Disables specific AHB clock channel. More...
 
uint32_t CLOCK_GetApbCLkFreq (void)
 Obtains frequency of APB Bus clock. More...
 
uint32_t CLOCK_GetSpifiClkFreq (void)
 Return Frequency of Spifi Clock. More...
 
void CLOCK_uDelay (uint32_t delayUs)
 Delay execution by busy waiting. More...
 

Macro Definition Documentation

#define FLEXCOMM_CLOCKS
Value:
{ \
kCLOCK_Usart0, kCLOCK_Usart1, \
kCLOCK_I2c0, kCLOCK_I2c1, \
kCLOCK_Spi0, kCLOCK_Spi1, \
kCLOCK_I2c2 \
}

Enumeration Type Documentation

Clock sources for main system clock.

Enumerator
SYSCON_MAINCLKSRC_FRO12M 

FRO 12MHz.

SYSCON_MAINCLKSRC_OSC32K 

OSC 32kHz.

SYSCON_MAINCLKSRC_XTAL32M 

XTAL 32MHz.

SYSCON_MAINCLKSRC_FRO32M 

FRO 32MHz.

SYSCON_MAINCLKSRC_FRO48M 

FRO 48MHz.

SYSCON_MAINCLKSRC_EXT 

External clock.

SYSCON_MAINCLKSRC_FRO1M 

FRO 1MHz.

Enumerator
SYSCON_FRGCLKSRC_MAINCLK 

Main Clock.

SYSCON_FRGCLKSRC_OSC32M 

32MHz Clock (XTAL or FRO)

SYSCON_FRGCLKSRC_FRO48MHZ 

FRO 48-MHz.

SYSCON_FRGCLKSRC_NONE 

FRO 48-MHz.

Enumerator
kCLOCK_MainClk 

MAIN_CLK.

kCLOCK_CoreSysClk 

Core/system clock.

kCLOCK_BusClk 

AHB bus clock.

kCLOCK_Xtal32k 

32kHz crystal oscillator

kCLOCK_Xtal32M 

32MHz crystal oscillator

kCLOCK_Fro32k 

32kHz free running oscillator

kCLOCK_Fro1M 

1MHz Free Running Oscillator

kCLOCK_Fro12M 

12MHz Free Running Oscillator

kCLOCK_Fro32M 

32MHz Free Running Oscillator

kCLOCK_Fro48M 

48MHz Free Running Oscillator

kCLOCK_Fro64M 

64Mhz Free Running Oscillator

kCLOCK_ExtClk 

External Clock.

kCLOCK_WdtClk 

Watchdog Clock.

kCLOCK_Frg 

Fractional divider.

Clock source selections for the Main Clock

Clock source selections for CLKOUT

Clock source definition for Watchdog timer

Clock source definition for fractional divider

Clock source definition for the APB

Clock source definition for frequency measure

Clock source selection for SPIFI

Clock definition for ADC

Enumerator
kCLOCK_PWMOsc32Mclk 

32MHz FRO or XTAL clock

kCLOCK_PWMFro48Mclk 

FRO 48MHz clock.

kCLOCK_PWMNoClkSel 

No clock selected - Shutdown functional PWM clock for power saving.

kCLOCK_PWMTestClk 

Test clock input - Shutdown functional PWM clock for power saving.

Function Documentation

uint32_t CLOCK_GetFreq ( clock_name_t  clock)
Parameters
clock_name_tspecify clock to be read
Returns
uint32_t frequency
Note
void CLOCK_AttachClk ( clock_attach_id_t  connection)
Parameters
clock_attach_id_tspecify clock mapping
Returns
none
Note
void CLOCK_SetClkDiv ( clock_div_name_t  div_name,
uint32_t  divided_by_value,
bool  reset 
)
Parameters
clock_div_name_tspecifies which DIV register we are accessing
uint32_tspecifies divisor
booltrue if a syscon clock reset should also be carried out
Returns
none
Note
void CLOCK_EnableClock ( clock_ip_name_t  clk)
Parameters
clock_ip_name_tspecifies which peripheral clock we are controlling
Returns
none
Note
clock_ip_name_t is a typedef clone of clock_name_t
void CLOCK_DisableClock ( clock_ip_name_t  clk)
Parameters
clock_ip_name_tspecifies which peripheral clock we are controlling
Returns
none
Note
clock_ip_name_t is a typedef clone of clock_name_t
uint32_t CLOCK_GetApbCLkFreq ( void  )
Parameters
none
Returns
uint32_t frequency
Note
uint32_t CLOCK_GetSpifiClkFreq ( void  )
Returns
Frequency of Spifi.
void CLOCK_uDelay ( uint32_t  delayUs)
Parameters
delayUsdelay duration in micro seconds
Returns
none