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

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