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_HRC100
- 
RCC_SYSCLK_DBL96
- 
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_PERI_HRC48
- 
RCC_CLK_PERI_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_FLASH1
- 
RCC_CLK_MOD_FLASH2
- 
RCC_CLK_MOD_FLASH3
- 
RCC_CLK_MOD_PSRAM1
- 
RCC_CLK_MOD_PSRAM2
- 
RCC_CLK_MOD_PSRAM
- 
RCC_CLK_MOD_SDMMC
- 
RCC_CLK_MOD_HP_PERI
- 
RCC_CLK_MOD_LP_PERI
- 
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_LCPU_ClockSelectDBL96()
- LPSYS clock source switch to DBL96. - 返回值:
- None – 
 
- 
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_DMAC3
 - 
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_USART6
 - 
enumerator RCC_MOD_EZIP
 - 
enumerator RCC_MOD_RESERVED
 - 
enumerator RCC_MOD_EPIC
 - 
enumerator RCC_MOD_LCDC1
 - 
enumerator RCC_MOD_LCDC2
 - 
enumerator RCC_MOD_I2S1
 - 
enumerator RCC_MOD_I2S2
 - 
enumerator RCC_MOD_I2S3
 - 
enumerator RCC_MOD_SYSCFG1
 - 
enumerator RCC_MOD_SYSCFG2
 - 
enumerator RCC_MOD_EFUSEC
 - 
enumerator RCC_MOD_AES
 - 
enumerator RCC_MOD_CRC1
 - 
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_SPI1
 - 
enumerator RCC_MOD_SPI2
 - 
enumerator RCC_MOD_SPI3
 - 
enumerator RCC_MOD_SPI4
 - 
enumerator RCC_MOD_EXTDMA
 - 
enumerator RCC_MOD_NNACC1
 - 
enumerator RCC_MOD_NNACC2
 - 
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_I2C7
 - 
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_MPI1
 - 
enumerator RCC_MOD_MPI2
 - 
enumerator RCC_MOD_MPI3
 - 
enumerator RCC_MOD_MPI4
 - 
enumerator RCC_MOD_MPI5
 - 
enumerator RCC_MOD_SDMMC1
 - 
enumerator RCC_MOD_SDMMC2
 - 
enumerator RCC_MOD_USBC
 - 
enumerator RCC_MOD_BUSMON1
 - 
enumerator RCC_MOD_BUSMON2
 - 
enumerator RCC_MOD_BUSMON3
 - 
enumerator RCC_MOD_ATIM1
 - 
enumerator RCC_MOD_ATIM2
 - 
enumerator RCC_MOD_FFT1
 - 
enumerator RCC_MOD_FFT2
 - 
enumerator RCC_MOD_FACC1
 - 
enumerator RCC_MOD_FACC2
 - 
enumerator RCC_MOD_CAN1
 - 
enumerator RCC_MOD_CAN2
 - 
enumerator RCC_MOD_AUDCODEC_HP
 - 
enumerator RCC_MOD_AUDCODEC_LP
 - 
enumerator RCC_MOD_AUDPRC
 - 
enumerator RCC_MOD_GPU
 - 
enumerator RCC_MOD_JENC
 - 
enumerator RCC_MOD_JDEC
 - 
enumerator RCC_MOD_ACPU
 - 
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_CRC2
 - 
enumerator RCC_MOD_SCI
 - 
enumerator RCC_MOD_SECU1
 - 
enumerator RCC_MOD_SECU2
 - 
enumerator RCC_MOD_AUDCODEC
 
- 
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 
 
- 
void HAL_RCC_HCPU_SetDeepWFIDiv(int8_t div, int8_t pdiv1, int8_t pdiv2)
- Set divider for clock of HCPU in deep WFI mode. - 参数:
- 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_GetDeepWFIDiv(int *div, int *pdiv1, int *pdiv2)
- Get deepWFI divider for HCPU clock. - 参数:
- 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 – 
 
- 
void HAL_RCC_HCPU_DeepWFIClockSelect(bool sys_clk, uint32_t sys_clk_src)
- Select clock source for HCPU in deep WFI mode. - 参数:
- sys_clk – whether use sys clock, true: use sys clock, false: use LP clock 
- sys_clk_src – sys clock source, such as RCC_SYSCLK_HXT48 
 
- 返回值:
- None – 
 
- 
void HAL_RCC_Reset_DMAC2_and_MPI5()
- 
HAL_StatusTypeDef HAL_RCC_HCPU_ConfigHCLK(uint32_t freq_in_mhz)
- Config HPSYS HCLK. - Only 240MHz, 288MHz and 312MHz are supported. DLL1 is used as clock source - 参数:
- freq_in_mhz – Frequency in MHz 
 
- 返回值:
- HAL_OK – if successful, Otherwise HAL_ERROR 
 
