Arrow / Mbed OS DAPLink Reset
Embed: (wiki syntax)

« Back to documentation index

CGU Public Functions

CGU Public Functions
[CGU (Clock Generation Unit)]

Functions

uint32_t CGU_Init (uint32_t wantedFreq)
 Clock generate initialize/de-initialize.
uint32_t CGU_ConfigPWR (CGU_PERIPHERAL_T PPType, FunctionalState en)
 Clock Generator and Clock Control.
uint32_t CGU_GetPCLKFrequency (CGU_PERIPHERAL_T Clock)
 Get peripheral clock frequency.
uint32_t CGU_SetXTALOSC (uint32_t ClockFrequency)
 Clock Source and Base Clock operation.
uint32_t CGU_SetDIV (CGU_ENTITY_T SelectDivider, uint32_t divisor)
 Set clock divider.
uint32_t CGU_SetPLL0 (void)
 Get current USB PLL clock from XTAL.
uint32_t CGU_SetPLL0audio (void)
 Get current Audio PLL clock from XTAL.
uint32_t CGU_SetPLL1 (uint32_t mult)
 Setting PLL1.
uint32_t CGU_EnableEntity (CGU_ENTITY_T ClockEntity, uint32_t en)
 Enable clock entity.
uint32_t CGU_EntityConnect (CGU_ENTITY_T ClockSource, CGU_ENTITY_T ClockEntity)
 Connect entity clock source.
uint32_t CGU_GetBaseStatus (CGU_ENTITY_T Base)
 Get current base status.
void CGU_UpdateClock (void)
 Update clock.
uint32_t CGU_RealFrequencyCompare (CGU_ENTITY_T Clock, CGU_ENTITY_T CompareToClock, uint32_t *m, uint32_t *d)
 Compare one source clock to another source clock.

Function Documentation

uint32_t CGU_ConfigPWR ( CGU_PERIPHERAL_T  PPType,
FunctionalState  en 
)

Clock Generator and Clock Control.

Clock Generator and Clock Control.

Parameters:
[in]PPTypeperipheral type, should be:

  • CGU_PERIPHERAL_ADC0 :ADC0
  • CGU_PERIPHERAL_ADC1 :ADC1
  • CGU_PERIPHERAL_AES :AES
  • CGU_PERIPHERAL_APB1_BUS :APB1 bus
  • CGU_PERIPHERAL_APB3_BUS :APB3 bus
  • CGU_PERIPHERAL_CAN :CAN
  • CGU_PERIPHERAL_CREG :CREG
  • CGU_PERIPHERAL_DAC :DAC
  • CGU_PERIPHERAL_DMA :DMA
  • CGU_PERIPHERAL_EMC :EMC
  • CGU_PERIPHERAL_ETHERNET :ETHERNET
  • CGU_PERIPHERAL_GPIO :GPIO
  • CGU_PERIPHERAL_I2C0 :I2C0
  • CGU_PERIPHERAL_I2C1 :I2C1
  • CGU_PERIPHERAL_I2S :I2S
  • CGU_PERIPHERAL_LCD :LCD
  • CGU_PERIPHERAL_M3CORE :M3 core
  • CGU_PERIPHERAL_M3_BUS :M3 bus
  • CGU_PERIPHERAL_MOTOCON :Motor control
  • CGU_PERIPHERAL_QEI :QEI
  • CGU_PERIPHERAL_RITIMER :RIT timer
  • CGU_PERIPHERAL_SCT :SCT
  • CGU_PERIPHERAL_SCU :SCU
  • CGU_PERIPHERAL_SDIO :SDIO
  • CGU_PERIPHERAL_SPIFI :SPIFI
  • CGU_PERIPHERAL_SSP0 :SSP0
  • CGU_PERIPHERAL_SSP1 :SSP1
  • CGU_PERIPHERAL_TIMER0 :TIMER0
  • CGU_PERIPHERAL_TIMER1 :TIMER1
  • CGU_PERIPHERAL_TIMER2 :TIMER2
  • CGU_PERIPHERAL_TIMER3 :TIMER3
  • CGU_PERIPHERAL_UART0 :UART0
  • CGU_PERIPHERAL_UART1 :UART1
  • CGU_PERIPHERAL_UART2 :UART2
  • CGU_PERIPHERAL_UART3 :UART3
  • CGU_PERIPHERAL_USB0 :USB0
  • CGU_PERIPHERAL_USB1 :USB1
  • CGU_PERIPHERAL_WWDT :WWDT
[in]enstatus, should be:

  • ENABLE: Enable power
  • DISABLE: Disable power
Returns:
Configure status, could be:
  • CGU_ERROR_SUCCESS: successful
  • Other: error

Definition at line 329 of file lpc43xx_cgu.c.

uint32_t CGU_EnableEntity ( CGU_ENTITY_T  ClockEntity,
uint32_t  en 
)

Enable clock entity.

Parameters:
[in]ClockEntityClock entity, should be:

  • CGU_CLKSRC_32KHZ_OSC :32Khz oscillator
  • CGU_CLKSRC_IRC :IRC clock
  • CGU_CLKSRC_ENET_RX_CLK :Ethernet receive clock
  • CGU_CLKSRC_ENET_TX_CLK :Ethernet transmit clock
  • CGU_CLKSRC_GP_CLKIN :General purpose input clock
  • CGU_CLKSRC_XTAL_OSC :Crystal oscillator
  • CGU_CLKSRC_PLL0 :PLL0 clock
  • CGU_CLKSRC_PLL1 :PLL1 clock
  • CGU_CLKSRC_IDIVA :Integer divider register A
  • CGU_CLKSRC_IDIVB :Integer divider register B
  • CGU_CLKSRC_IDIVC :Integer divider register C
  • CGU_CLKSRC_IDIVD :Integer divider register D
  • CGU_CLKSRC_IDIVE :Integer divider register E
  • CGU_BASE_SAFE :Base safe clock (always on)for WDT
  • CGU_BASE_USB0 :Base clock for USB0
  • CGU_BASE_PERIPH :Base clock for Peripheral bus
  • CGU_BASE_USB1 :Base clock for USB1
  • CGU_BASE_M4 :System base clock for ARM Cortex-M3 core and APB peripheral blocks #0 and #2
  • CGU_BASE_SPIFI :Base clock for SPIFI
  • CGU_BASE_PHY_RX :Base clock for Ethernet PHY Rx
  • CGU_BASE_PHY_TX :Base clock for Ethernet PHY Tx
  • CGU_BASE_APB1 :Base clock for APB peripheral block #1
  • CGU_BASE_APB3 :Base clock for APB peripheral block #3
  • CGU_BASE_LCD :Base clock for LCD
  • CGU_BASE_SDIO :Base clock for SDIO card reader
  • CGU_BASE_SSP0 :Base clock for SSP0
  • CGU_BASE_SSP1 :Base clock for SSP1
  • CGU_BASE_UART0 :Base clock for UART0
  • CGU_BASE_UART1 :Base clock for UART1
  • CGU_BASE_UART2 :Base clock for UART2
  • CGU_BASE_UART3 :Base clock for UART3
  • CGU_BASE_CLKOUT :Base clock for CLKOUT pin
[in]enstatus, should be:

  • ENABLE: Enable power
  • DISABLE: Disable power
Returns:
Setting status, could be:
  • CGU_ERROR_SUCCESS: successful
  • CGU_ERROR_INVALID_ENTITY: Invalid entity

Definition at line 637 of file lpc43xx_cgu.c.

uint32_t CGU_EntityConnect ( CGU_ENTITY_T  ClockSource,
CGU_ENTITY_T  ClockEntity 
)

Connect entity clock source.

Parameters:
[in]ClockSourceClock source, should be:

  • CGU_CLKSRC_32KHZ_OSC :32Khz oscillator
  • CGU_CLKSRC_IRC :IRC clock
  • CGU_CLKSRC_ENET_RX_CLK :Ethernet receive clock
  • CGU_CLKSRC_ENET_TX_CLK :Ethernet transmit clock
  • CGU_CLKSRC_GP_CLKIN :General purpose input clock
  • CGU_CLKSRC_XTAL_OSC :Crystal oscillator
  • CGU_CLKSRC_PLL0 :PLL0 clock
  • CGU_CLKSRC_PLL1 :PLL1 clock
  • CGU_CLKSRC_IDIVA :Integer divider register A
  • CGU_CLKSRC_IDIVB :Integer divider register B
  • CGU_CLKSRC_IDIVC :Integer divider register C
  • CGU_CLKSRC_IDIVD :Integer divider register D
  • CGU_CLKSRC_IDIVE :Integer divider register E
[in]ClockEntityClock entity, should be:

  • CGU_CLKSRC_PLL0 :PLL0 clock
  • CGU_CLKSRC_PLL1 :PLL1 clock
  • CGU_CLKSRC_IDIVA :Integer divider register A
  • CGU_CLKSRC_IDIVB :Integer divider register B
  • CGU_CLKSRC_IDIVC :Integer divider register C
  • CGU_CLKSRC_IDIVD :Integer divider register D
  • CGU_CLKSRC_IDIVE :Integer divider register E
  • CGU_BASE_SAFE :Base safe clock (always on)for WDT
  • CGU_BASE_USB0 :Base clock for USB0
  • CGU_BASE_USB1 :Base clock for USB1
  • CGU_BASE_M4 :System base clock for ARM Cortex-M3 core and APB peripheral blocks #0 and #2
  • CGU_BASE_SPIFI :Base clock for SPIFI
  • CGU_BASE_PHY_RX :Base clock for Ethernet PHY Rx
  • CGU_BASE_PHY_TX :Base clock for Ethernet PHY Tx
  • CGU_BASE_APB1 :Base clock for APB peripheral block #1
  • CGU_BASE_APB3 :Base clock for APB peripheral block #3
  • CGU_BASE_LCD :Base clock for LCD
  • CGU_BASE_SDIO :Base clock for SDIO card reader
  • CGU_BASE_SSP0 :Base clock for SSP0
  • CGU_BASE_SSP1 :Base clock for SSP1
  • CGU_BASE_UART0 :Base clock for UART0
  • CGU_BASE_UART1 :Base clock for UART1
  • CGU_BASE_UART2 :Base clock for UART2
  • CGU_BASE_UART3 :Base clock for UART3
  • CGU_BASE_CLKOUT :Base clock for CLKOUT pin
Returns:
Setting status, could be:
  • CGU_ERROR_SUCCESS: successful
  • CGU_ERROR_CONNECT_TOGETHER: Error when 2 clock source connect together
  • CGU_ERROR_INVALID_CLOCK_SOURCE: Invalid clock source error
  • CGU_ERROR_INVALID_ENTITY: Invalid entity error

Definition at line 758 of file lpc43xx_cgu.c.

uint32_t CGU_GetBaseStatus ( CGU_ENTITY_T  Base )

Get current base status.

Parameters:
[in]BaseBase type, should be:

  • CGU_BASE_USB0 :Base clock for USB0
  • CGU_BASE_USB1 :Base clock for USB1
  • CGU_BASE_M4 :System base clock for ARM Cortex-M3 core and APB peripheral blocks #0 and #2
  • CGU_BASE_SPIFI :Base clock for SPIFI
  • CGU_BASE_APB1 :Base clock for APB peripheral block #1
  • CGU_BASE_APB3 :Base clock for APB peripheral block #3
  • CGU_BASE_SDIO :Base clock for SDIO card reader
  • CGU_BASE_SSP0 :Base clock for SSP0
  • CGU_BASE_SSP1 :Base clock for SSP1
  • CGU_BASE_UART0 :Base clock for UART0
  • CGU_BASE_UART1 :Base clock for UART1
  • CGU_BASE_UART2 :Base clock for UART2
  • CGU_BASE_UART3 :Base clock for UART3
Returns:
Always return 0

Definition at line 931 of file lpc43xx_cgu.c.

uint32_t CGU_GetPCLKFrequency ( CGU_PERIPHERAL_T  Clock )

Get peripheral clock frequency.

Parameters:
[in]ClockPeripheral type, should be:

  • CGU_PERIPHERAL_ADC0 :ADC0
  • CGU_PERIPHERAL_ADC1 :ADC1
  • CGU_PERIPHERAL_AES :AES
  • CGU_PERIPHERAL_APB1_BUS :APB1 bus
  • CGU_PERIPHERAL_APB3_BUS :APB3 bus
  • CGU_PERIPHERAL_CAN :CAN
  • CGU_PERIPHERAL_CREG :CREG
  • CGU_PERIPHERAL_DAC :DAC
  • CGU_PERIPHERAL_DMA :DMA
  • CGU_PERIPHERAL_EMC :EMC
  • CGU_PERIPHERAL_ETHERNET :ETHERNET
  • CGU_PERIPHERAL_GPIO :GPIO
  • CGU_PERIPHERAL_I2C0 :I2C0
  • CGU_PERIPHERAL_I2C1 :I2C1
  • CGU_PERIPHERAL_I2S :I2S
  • CGU_PERIPHERAL_LCD :LCD
  • CGU_PERIPHERAL_M3CORE :M3 core
  • CGU_PERIPHERAL_M3_BUS :M3 bus
  • CGU_PERIPHERAL_MOTOCON :Motor control
  • CGU_PERIPHERAL_QEI :QEI
  • CGU_PERIPHERAL_RITIMER :RIT timer
  • CGU_PERIPHERAL_SCT :SCT
  • CGU_PERIPHERAL_SCU :SCU
  • CGU_PERIPHERAL_SDIO :SDIO
  • CGU_PERIPHERAL_SPIFI :SPIFI
  • CGU_PERIPHERAL_SSP0 :SSP0
  • CGU_PERIPHERAL_SSP1 :SSP1
  • CGU_PERIPHERAL_TIMER0 :TIMER0
  • CGU_PERIPHERAL_TIMER1 :TIMER1
  • CGU_PERIPHERAL_TIMER2 :TIMER2
  • CGU_PERIPHERAL_TIMER3 :TIMER3
  • CGU_PERIPHERAL_UART0 :UART0
  • CGU_PERIPHERAL_UART1 :UART1
  • CGU_PERIPHERAL_UART2 :UART2
  • CGU_PERIPHERAL_UART3 :UART3
  • CGU_PERIPHERAL_USB0 :USB0
  • CGU_PERIPHERAL_USB1 :USB1
  • CGU_PERIPHERAL_WWDT :WWDT
Returns:
Return frequently value

Definition at line 447 of file lpc43xx_cgu.c.

uint32_t CGU_Init ( uint32_t  wantedFreq )

Clock generate initialize/de-initialize.

Clock generate initialize/de-initialize.

Parameters:
[in]None
Returns:
Initialize status, could be:
  • CGU_ERROR_SUCCESS: successful
  • Other: error

Definition at line 239 of file lpc43xx_cgu.c.

uint32_t CGU_RealFrequencyCompare ( CGU_ENTITY_T  Clock,
CGU_ENTITY_T  CompareToClock,
uint32_t *  m,
uint32_t *  d 
)

Compare one source clock to another source clock.

Parameters:
[in]ClockClock entity that will be compared to second source, should be:

  • CGU_CLKSRC_32KHZ_OSC :32Khz crystal oscillator
  • CGU_CLKSRC_ENET_RX_CLK :Ethernet receive clock
  • CGU_CLKSRC_ENET_TX_CLK :Ethernet transmit clock
  • CGU_CLKSRC_GP_CLKIN :General purpose input clock
  • CGU_CLKSRC_XTAL_OSC :Crystal oscillator
  • CGU_CLKSRC_PLL0 :PLL0 clock
  • CGU_CLKSRC_PLL1 :PLL1 clock
  • CGU_CLKSRC_IDIVA :Integer divider register A
  • CGU_CLKSRC_IDIVB :Integer divider register B
  • CGU_CLKSRC_IDIVC :Integer divider register C
  • CGU_CLKSRC_IDIVD :Integer divider register D
  • CGU_CLKSRC_IDIVE :Integer divider register E
  • CGU_BASE_SAFE :Base safe clock (always on)for WDT
  • CGU_BASE_USB0 :Base clock for USB0
  • CGU_BASE_USB1 :Base clock for USB1
  • CGU_BASE_M4 :System base clock for ARM Cortex-M3 core and APB peripheral blocks #0 and #2
  • CGU_BASE_SPIFI :Base clock for SPIFI
  • CGU_BASE_PHY_RX :Base clock for Ethernet PHY Rx
  • CGU_BASE_PHY_TX :Base clock for Ethernet PHY Tx
  • CGU_BASE_APB1 :Base clock for APB peripheral block #1
  • CGU_BASE_APB3 :Base clock for APB peripheral block #3
  • CGU_BASE_LCD :Base clock for LCD
  • CGU_BASE_SDIO :Base clock for SDIO card reader
  • CGU_BASE_SSP0 :Base clock for SSP0
  • CGU_BASE_SSP1 :Base clock for SSP1
  • CGU_BASE_UART0 :Base clock for UART0
  • CGU_BASE_UART1 :Base clock for UART1
  • CGU_BASE_UART2 :Base clock for UART2
  • CGU_BASE_UART3 :Base clock for UART3
  • CGU_BASE_CLKOUT :Base clock for CLKOUT pin
[in]CompareToClockClock source that to be compared to first source, should be different to first source.
[in]mMultiple value pointer
[in]dDivider value pointer
Returns:
Compare status, could be:
  • (-1): fail
  • 0: successful
Note:
Formula used to compare: FClock = m*FCompareToClock/d

Definition at line 1115 of file lpc43xx_cgu.c.

uint32_t CGU_SetDIV ( CGU_ENTITY_T  SelectDivider,
uint32_t  divisor 
)

Set clock divider.

Parameters:
[in]SelectDividerClock source, should be:

  • CGU_CLKSRC_IDIVA :Integer divider register A
  • CGU_CLKSRC_IDIVB :Integer divider register B
  • CGU_CLKSRC_IDIVC :Integer divider register C
  • CGU_CLKSRC_IDIVD :Integer divider register D
  • CGU_CLKSRC_IDIVE :Integer divider register E
[in]divisorDivisor value, should be: 0..255
Returns:
Setting status, could be:
  • CGU_ERROR_SUCCESS: successful
  • CGU_ERROR_INVALID_ENTITY: Invalid entity

Definition at line 572 of file lpc43xx_cgu.c.

uint32_t CGU_SetPLL0 ( void   )

Get current USB PLL clock from XTAL.

Parameters:
[in]None
Returns:
Returned clock value

Definition at line 808 of file lpc43xx_cgu.c.

uint32_t CGU_SetPLL0audio ( void   )

Get current Audio PLL clock from XTAL.

Parameters:
[in]None
Returns:
Returned clock value

Definition at line 827 of file lpc43xx_cgu.c.

uint32_t CGU_SetPLL1 ( uint32_t  mult )

Setting PLL1.

Parameters:
[in]multMultiple value
Returns:
Setting status, could be:
  • CGU_ERROR_SUCCESS: successful
  • CGU_ERROR_INVALID_PARAM: Invalid parameter error

Definition at line 873 of file lpc43xx_cgu.c.

uint32_t CGU_SetXTALOSC ( uint32_t  ClockFrequency )

Clock Source and Base Clock operation.

Clock Source and Base Clock operation.

Parameters:
[in]ClockFrequencyXTAL Frequency value
Returns:
Setting status, could be:
  • CGU_ERROR_SUCCESS: successful
  • CGU_ERROR_FREQ_OUTOF_RANGE: XTAL value set is out of range

Definition at line 541 of file lpc43xx_cgu.c.

void CGU_UpdateClock ( void   )

Update clock.

Parameters:
[in]None
Returns:
None

Definition at line 491 of file lpc43xx_cgu.c.