bf0_hal_rcc.h
Header file of RCC HAL module.
- Author
Sifli software development team
- Attention
Defines
-
CORE_ID_DEFAULT
-
CORE_ID_HCPU
HCPU
-
CORE_ID_LCPU
LCPU
-
CORE_ID_CURRENT
-
RCC_SYSCLK_HRC48
-
RCC_SYSCLK_HXT48
-
RCC_SYSCLK_CLK_LP
-
RCC_SYSCLK_DLL1
-
RCC_CLK_FLASH_SYSCLK
-
RCC_CLK_SRC_SYS
-
RCC_CLK_SRC_DLL1
-
RCC_CLK_SRC_DLL2
-
RCC_CLK_SRC_DLL3
-
RCC_CLK_FLASH_DLL2
-
RCC_CLK_FLASH_DLL3
-
RCC_CLK_PSRAM_SYSCLK
-
RCC_CLK_PSRAM_DLL2
-
RCC_CLK_PSRAM_DLL3
-
RCC_CLK_USART_HRC48
-
RCC_CLK_USART_HXT48
-
RCC_CLK_I2S_SYSCLK
-
RCC_CLK_I2S_DLL2
-
RCC_CLK_MPI_SD_SYSCLK
-
RCC_CLK_MPI_SD_DLL2
-
RCC_CLK_MPI_SD_DLL3
-
RCC_CLK_MOD_SYS
-
RCC_CLK_MOD_PSRAM
-
RCC_CLK_MOD_FLASH1
-
RCC_CLK_MOD_FLASH2
-
RCC_CLK_MOD_FLASH3
-
RCC_CLK_MOD_UART1
-
RCC_CLK_MOD_UART2
-
RCC_CLK_MOD_UART3
-
RCC_CLK_MOD_UART4
-
RCC_CLK_MOD_UART5
-
RCC_CLK_TICK_CLK_LP
-
RCC_CLK_TICK_HRC48
-
RCC_CLK_TICK_HXT48
-
RCC_MOD_I2S_ALL
-
HAL_RCC_HCPU_reset(modules, reset)
Reset RCC module for HCPU.
- 参数:
modules – modules to be reset, defined in hpsys_rcc.h, HPSYS_RCC_RSTR_XXX
reset – 1: reset(bit set), 0:Release reset(bit clear).
- 返回值:
None –
-
HAL_RCC_HCPU_reset2(modules, reset)
-
HAL_RCC_HCPU_enable(modules, enabled)
enable/disable RCC module for HCPU.
- 参数:
modules – modules to be enabled/disabled. defined in hpsys_rcc.h, HPSYS_RCC_ENR_XXX
enabled – 1: enable(bit set), 0:disable(bit clear).
- 返回值:
None –
-
HAL_RCC_HCPU_enable2(modules, enabled)
-
HAL_RCC_HCPU_RELEASE_ALL()
Release all HPSYS modules.
- 返回值:
None –
-
HAL_RCC_LCPU_reset(modules, reset)
Reset RCC module for LCPU.
- 参数:
modules – modules to be reset, defined in lpsys_rcc.h, LPSYS_RCC_RSTR_XXX
reset – 1: reset(bit set), 0:Release reset(bit clear).
- 返回值:
None –
-
HAL_RCC_LCPU_RELEASE_ALL()
Release all LPSYS modules.
- 返回值:
void –
-
HAL_RCC_LCPU_enable(modules, enabled)
enable/disable RCC module for LCPU.
- 参数:
modules – modules to be enabled/disabled. defined in lpsys_rcc.h, LPSYS_RCC_ENR_XXX
enabled – 1: enable(bit set), 0:disable(bit clear).
- 返回值:
None –
-
HAL_RCC_LCPU_enable2(modules, enabled)
-
HAL_RCC_BCPU_reset(modules)
Reset RCC module for BCPU.
- 参数:
modules – modules to be reset, defined in ble_rcc.h, BLE_RCC_RSTR_XXX
- 返回值:
None –
-
HAL_RCC_BCPU_enable(modules, enabled)
enable/disable RCC module for BCPU.
- 参数:
modules – modules to be enabled/disabled. defined in ble_rcc.h, BLE_RCC_ENR_XXX
enabled – 1: enable(bit set), 0:disable(bit clear).
- 返回值:
None –
-
HAL_RCC_BCPU_ClockSelect(clk_module, src)
Select clock source for BCPU HW module.
- 参数:
clk_module – module for clock
src – clock 0:RCC_SYSCLK_HRC48, 1:RCC_SYSCLK_HXT48
- 返回值:
None –
Enums
-
enum RCC_MODULE_TYPE
Values:
-
enumerator RCC_MOD_DMAC1
-
enumerator RCC_MOD_DMAC2
-
enumerator RCC_MOD_MAILBOX1
-
enumerator RCC_MOD_MAILBOX2
-
enumerator RCC_MOD_PINMUX1
-
enumerator RCC_MOD_PINMUX2
-
enumerator RCC_MOD_USART1
-
enumerator RCC_MOD_USART2
-
enumerator RCC_MOD_USART3
-
enumerator RCC_MOD_USART4
-
enumerator RCC_MOD_USART5
-
enumerator RCC_MOD_EZIP
-
enumerator RCC_MOD_EPIC
-
enumerator RCC_MOD_LCDC1
-
enumerator RCC_MOD_LCDC2
-
enumerator RCC_MOD_I2S1
-
enumerator RCC_MOD_I2S2
-
enumerator RCC_MOD_SYSCFG1
-
enumerator RCC_MOD_SYSCFG2
-
enumerator RCC_MOD_EFUSEC
-
enumerator RCC_MOD_AES
-
enumerator RCC_MOD_CRC
-
enumerator RCC_MOD_TRNG
-
enumerator RCC_MOD_GPTIM1
-
enumerator RCC_MOD_GPTIM2
-
enumerator RCC_MOD_GPTIM3
-
enumerator RCC_MOD_GPTIM4
-
enumerator RCC_MOD_GPTIM5
-
enumerator RCC_MOD_BTIM1
-
enumerator RCC_MOD_BTIM2
-
enumerator RCC_MOD_BTIM3
-
enumerator RCC_MOD_BTIM4
-
enumerator RCC_MOD_WDT1
-
enumerator RCC_MOD_WDT2
-
enumerator RCC_MOD_SPI1
-
enumerator RCC_MOD_SPI2
-
enumerator RCC_MOD_SPI3
-
enumerator RCC_MOD_SPI4
-
enumerator RCC_MOD_EXTDMA
-
enumerator RCC_MOD_PSRAMC
-
enumerator RCC_MOD_NNACC
-
enumerator RCC_MOD_PDM1
-
enumerator RCC_MOD_PDM2
-
enumerator RCC_MOD_I2C1
-
enumerator RCC_MOD_I2C2
-
enumerator RCC_MOD_I2C3
-
enumerator RCC_MOD_I2C4
-
enumerator RCC_MOD_I2C5
-
enumerator RCC_MOD_I2C6
-
enumerator RCC_MOD_DSIHOST
-
enumerator RCC_MOD_DSIPHY
-
enumerator RCC_MOD_DSI
-
enumerator RCC_MOD_PTC1
-
enumerator RCC_MOD_PTC2
-
enumerator RCC_MOD_GPIO1
-
enumerator RCC_MOD_GPIO2
-
enumerator RCC_MOD_QSPI1
-
enumerator RCC_MOD_QSPI2
-
enumerator RCC_MOD_QSPI3
-
enumerator RCC_MOD_QSPI4
-
enumerator RCC_MOD_SDMMC1
-
enumerator RCC_MOD_SDMMC2
-
enumerator RCC_MOD_USBC
-
enumerator RCC_MOD_BUSMON1
-
enumerator RCC_MOD_BUSMON2
-
enumerator RCC_MOD_KEYPAD
-
enumerator RCC_MOD_GPDAC
-
enumerator RCC_MOD_ATIM1
-
enumerator RCC_MOD_ATIM2
-
enumerator RCC_MOD_GAU
-
enumerator RCC_MOD_FLASHC1
-
enumerator RCC_MOD_FLASHC2
-
enumerator RCC_MOD_FLASHC3
-
enumerator RCC_MOD_TSEN
-
enumerator RCC_MOD_LPCOMP
-
enumerator RCC_MOD_SDADC
-
enumerator RCC_MOD_GPADC
-
enumerator RCC_MOD_PATCH
-
enumerator RCC_MOD_MAC
-
enumerator RCC_MOD_PHY
-
enumerator RCC_MOD_RFC
-
enumerator RCC_MOD_DMAC1
Functions
-
void HAL_RCC_HCPU_ClockSelect(int clk_module, int src)
Select clock source for HCPU HW module.
- 参数:
clk_module – module for clock, RCC_CLK_MOD_XXX
src – clock source.
- 返回值:
None –
-
int HAL_RCC_HCPU_GetClockSrc(int clk_module)
Get clock source of HCPU HW module.
- 参数:
clk_module – module for clock, RCC_CLK_MOD_XXX
- 返回值:
clock – source,
-
void HAL_RCC_HCPU_SetDiv(int div, int pdiv1, int pdiv2)
Set divider for clock of HCPU.
- 参数:
div – main divider HCLK=HPCLK/div
pdiv1 – divider for pclk1= HCLK/ (2^PDIV1) default 1
pdiv2 – divider for pclk2= HCLK/ (2^PDIV2) default 5
- 返回值:
None –
-
void HAL_RCC_HCPU_GetDiv(int *div, int *pdiv1, int *pdiv2)
Get divider for clock of HCPU.
- 参数:
div – pointer to main divider, HCLK=HPCLK/div
pdiv1 – pointer to divider for pclk1= HCLK/ (2^PDIV1) default 1
pdiv2 – pointer to divider for pclk2= HCLK/ (2^PDIV2) default 5
- 返回值:
None –
-
HAL_StatusTypeDef HAL_RCC_HCPU_EnableDLL1(uint32_t freq)
Enable DLL1.
- 参数:
freq – Freqency of DLL1
- 返回值:
HAL_OK – if successful, Otherwise HAL_ERROR
-
HAL_StatusTypeDef HAL_RCC_HCPU_DisableDLL1(void)
Disable DLL1.
- 返回值:
HAL_OK – if successful, Otherwise HAL_ERROR
-
uint32_t HAL_RCC_HCPU_GetDLL1Freq(void)
Get DLL1 freqency.
- 返回值:
Frequency – of DLL1, 0 if not enabled
-
HAL_StatusTypeDef HAL_RCC_HCPU_EnableDLL2(uint32_t freq)
Enable DLL2.
- 参数:
freq – Freqency of DLL2
- 返回值:
HAL_OK – if successful, Otherwise HAL_ERROR
-
HAL_StatusTypeDef HAL_RCC_HCPU_DisableDLL2(void)
Disable DLL2.
- 返回值:
HAL_OK – if successful, Otherwise HAL_ERROR
-
uint32_t HAL_RCC_HCPU_GetDLL2Freq(void)
Get DLL2 freqency.
- 返回值:
Frequency – of DLL2, 0 if not enabled
-
uint32_t HAL_RCC_HCPU_GetDLL3Freq(void)
-
HAL_StatusTypeDef HAL_RCC_HCPU_EnableDLL3(uint32_t freq)
Enable DLL3.
- 参数:
freq – Freqency of DLL3
- 返回值:
HAL_OK – if successful, Otherwise HAL_ERROR
-
HAL_StatusTypeDef HAL_RCC_HCPU_DisableDLL3(void)
Disable DLL3.
- 返回值:
HAL_OK – if successful, Otherwise HAL_ERROR
-
void HAL_RCC_LCPU_ClockSelect(int clk_module, int src)
Select clock source for LCPU HW module.
- 参数:
clk_module – module for clock, RCC_CLK_MOD_XXX
src – clock 0:RCC_SYSCLK_HRC48, 1:RCC_SYSCLK_HXT48
- 返回值:
None –
-
int HAL_RCC_LCPU_GetClockSrc(int clk_module)
Get clock source of LCPU HW module.
- 参数:
clk_module – module for clock, RCC_CLK_MOD_XXX
- 返回值:
clock – source,
-
void HAL_RCC_LCPU_SetDiv(int div, int pdiv1, int pdiv2)
Set divider for clock of LCPU.
- 参数:
div – main divider HCLK=LPCLK/div
pdiv1 – divider for pclk1= HCLK/ (2^PDIV1) default 1
pdiv2 – divider for pclk2= HCLK/ (2^PDIV2) default 3
- 返回值:
None –
-
void HAL_RCC_LCPU_GetDiv(int *div, int *pdiv1, int *pdiv2)
Get divider for clock of LCPU.
- 参数:
div – pointer to hclk divider
pdiv1 – pointer to pclk1 divider
pdiv2 – pointer to pclk2 divider
- 返回值:
None –
-
void HAL_RCC_BCPU_SetDiv(int div, int pdiv, int macdiv, int macfreq)
Set divider for clock of BCPU.
- 参数:
div – main divider HCLK=BLECLK(48M)/div
pdiv – divider for pclk, HCLK not divided; 100 - HCLK divided by 2; 101 - divided by 4; 110 - divided by 8; 111 - divided by 16
macdiv – divider for MACCLK = HCLK / MACDIV
macfreq – frequency of BLE MAC master clock
- 返回值:
None –
-
uint32_t HAL_RCC_GetHCLKFreq(int core_id)
Get HCLK freq.
- 参数:
core_id – Core ID
- 返回值:
HCLK – Frequency for Core ID
-
uint32_t HAL_RCC_GetSysCLKFreq(int core_id)
Get SYSCLK freq.
- 参数:
core_id – Core ID,
- 返回值:
SYSCLK – Frequency for Core ID
-
uint32_t HAL_RCC_GetPCLKFreq(int core_id, int is_pclk1)
Get PCLK freq.
- 参数:
core_id – Core ID
is_pclk1 – 1: Get pclk1, 0: not PCLK1
- 返回值:
PCLK – freq for specific CORE.
-
void HAL_RCC_ReleaseLCPU(void)
Release LCPU.
- 返回值:
void –
-
void HAL_RCC_ResetLCPU(void)
Reset LCPU.
- 返回值:
void –
-
void HAL_RCC_Reset_and_Halt_LCPU(uint8_t is_init)
Reset and halt LCPU.
- 参数:
is_init – Is in init state.
- 返回值:
void –
-
void HAL_RCC_ResetBluetoothRF(void)
Reset BLE RF.
- 返回值:
void –
-
void HAL_RCC_SetMacFreq(void)
Set Mac freq.
- 返回值:
void –
-
void HAL_RCC_ResetModule(RCC_MODULE_TYPE module)
Reset module.
- 参数:
module – module name
- 返回值:
void –
-
void HAL_RCC_EnableModule(RCC_MODULE_TYPE module)
Enable module if it’s disabled.
If module is already enabled, it has no effect
- 参数:
module – module name
- 返回值:
void –
-
void HAL_RCC_DisableModule(RCC_MODULE_TYPE module)
Disable module.
If module is already disabled, it has no effect
- 参数:
module – module name
- 返回值:
void –
-
HAL_StatusTypeDef HAL_RCC_CalibrateRC48(void)
Calibrate RC48.
Must be called after XTAL48 is ready
- 返回值:
HAL_OK – if successful, Otherwise HAL_ERROR
-
HAL_StatusTypeDef HAL_RCC_SetModuleFreq(RCC_MODULE_TYPE module, uint32_t freq)
-
uint32_t HAL_RCC_GetModuleFreq(RCC_MODULE_TYPE module)
-
void HAL_RCC_Init(void)
RCC Init.
Disable some modules by default. If the function is called by HCPU, HPSYS_RCC is configured and HPSYS modules are disabled. If the function is called by LCPU, LPSYS_RCC is configured and LPSYS modules are disabled.
- 返回:
void
-
void HAL_RCC_MspInit(void)
Chip specific RCC initialization function.
It’s called by HAL_RCC_Init. It’s implemented as weak symbol internally, so can be re-implemented by user as required.
- 返回:
void