bf0_hal_pmu.h

Defines

PMU_HPSYS_LDO_VREF_DEFAULT
HAL_PMU_DISABLE_LPSYS_LDO()
PMU_LPSYS_PSW_RET_LDO
PMU_LPSYS_PSW_BUCK2
PMU_LPSYS_PSW_LPSYS_LDO
PMU_BLESYS_PSW_RET_LDO
PMU_BLESYS_PSW_BUCK2
PMU_BLESYS_PSW_LPSYS_LDO
PMU_WAKEUP_SRC_RTC

wakeup source RTC

PMU_WAKEUP_SRC_PIN0

wakeup source PIN0

PMU_WAKEUP_SRC_PIN1

wakeup source PIN1

PMU_WAKEUP_SRC_PIN2

wakeup source PIN2

PMU_WAKEUP_SRC_PIN3

wakeup source PIN3

PMU_WAKEUP_SRC_PIN4

wakeup source PIN4

PMU_WAKEUP_SRC_PIN5

wakeup source PIN5

HAL_PMU_SELECT_LPSYS_PWR(psw)

Select LPSYS Power Switch.

Parameters:
  • psw – [in] power switch flag, see PMU_LPSYS_PSW

Return values:

None –

HAL_PMU_SELECT_BLESYS_PWR(psw)

Select LPSYS Power Switch.

Parameters:
  • psw – [in] power switch flag, see PMU_LPSYS_PSW

Return values:

None –

HAL_PMU_SET_BG1_VREF12(val)

Config bandgap1 VREF12.

Parameters:
  • val – [in] vandgap1 vref12 value

Return values:

None –

HAL_PMU_SET_HPSYS_LDO_VREF(val)

Config HPSYS LDO VREF.

Parameters:
  • val – [in] HPSYS LDO VREF value

Return values:

None –

HAL_PMU_SET_HPSYS_LDO_VREF2(val)

Config HPSYS LDO VREF2.

Parameters:
  • val – [in] HPSYS LDO VREF2 value

Return values:

None –

HAL_PMU_SET_BUCK1_CCH(val)

Config BUCK1 CCH.

Parameters:
  • val – [in] BUCK1 CCH value

Return values:

None –

HAL_PMU_HPSYS_POWER_OFF()

Turn off HCPU power switch entirely during standby.

Return values:

None –

HAL_PMU_HPSYS_POWER_ON()

Turn off HCPU power switch entirely during standby.

Return values:

None –

HAL_PMU_SWITCH_VRET()

Vret switch to 0.7v when standby.

Return values:

None –

HAL_PMU_SWITCH_VRET_LOWER()

Vret switch to 0.65v when standby.

Return values:

None –

HAL_PMU_SET_LDO_RDY_DELAY(delay)

Set the delay time of LDO ready.

Return values:

None –

HAL_PMU_SET_HXT3_RDY_DELAY(delay)

Set the delay time of xTal48M ready.

Return values:

None –

HAL_PMU_LXT_ENABLED()

Check weather LXT is enabled.

Return values:

True – if LXT enabled, False if using RC10k

HAL_PMU_LXT_DISABLED()

Check weather LXT is disabled.

Return values:

True – if using RC10k, False if using LXT

HAL_PMU_CLEAR_WSR(wsr)

Clear PMU wakeup source register.

Parameters:
  • wsr – [in]

Return values:

wsr – wakeup source register value

HAL_PMU_GET_WSR()

Get wakeup source.

Return values:

wsr – wakeup source register value

HAL_PMU_GET_WSR_PIN()
HAL_PMU_GET_WER()

Get wakeup enable.

Returns:

wakeup enable register value

HAL_PMU_LPSYS_DS_USE_BUCK2()

Configure Deep Sleep use BUCK2.

Return values:

None –

HAL_PMU_ENABLE_BUCK2_LOW_PWR()

Enable BUCK2 low power mode.

Return values:

None –

HAL_PMU_SET_BUCK2_LOW_VOLTAGE()

Configure BUCK2 to low voltage mode.

Return values:

None –

HAL_PMU_SET_BUCK2_HIGH_VOLTAGE()

Configure BUCK2 to high voltage mode.

Return values:

None –

HAL_PMU_ENABLE_BOR()

Enums

enum PMU_BootModeTypeDef

PMU boot mode

Values:

enumerator PMU_COLD_BOOT

code boot mode

enumerator PMU_HIBERNATE_BOOT

boot from hibernate mode, can be wakeup by RTC and PIN

enumerator PMU_SHUTDOWN_BOOT

boot from shutdown mode, can be wakeup by RTC and PIN, but RTC wakeup time is not precise

enumerator PMU_REBOOT_BOOT

boot from reboot

enum PMU_LpClockTypeDef

Values:

enumerator PMU_LPCLK_RC10
enumerator PMU_LPCLK_XT32

RC10K as LP clock

enumerator PMU_LPCLK_RC32

XTAL32K as LP clock

enum PMU_PinModeTypeDef

PMU pin wakeup mode, should be consistent with AON_PinModeTypeDef

Values:

enumerator PMU_PIN_MODE_HIGH

high level to trigger pin wakeup

enumerator PMU_PIN_MODE_LOW

low level to trigger pin wakeup

enumerator PMU_PIN_MODE_POS_EDGE

postive edge to trigger pin wakeup

enumerator PMU_PIN_MODE_NEG_EDGE

negative edge to trigger pin wakeup

Functions

HAL_StatusTypeDef HAL_PMU_EnablePinWakeup(uint8_t pin, uint8_t mode)

Enable pin wakeup for hibernate.

Parameters:
  • pin – pin number, its range differs from each chips, sf32lb55x: 0~5, sf32lb57x: 0~13, others: 0~1, i.e. 0~(PMUC_WSR_PIN_NUM-1) see macro PMUC_WSR_PIN_NUM defined in pmuc.h

  • mode – pin wakeup mode, 0: high level, 1: low level, 2: positive edge, 3: negative edge

Return values:

status –

HAL_StatusTypeDef HAL_PMU_DisablePinWakeup(uint8_t pin)

Disable pin wakeup for hibernate.

Parameters:
  • pin – pin number, its range differs from each chips, sf32lb55x: 0~5, sf32lb57x: 0~13, others: 0~1, i.e. 0~(PMUC_WSR_PIN_NUM-1) see macro PMUC_WSR_PIN_NUM defined in pmuc.h

Return values:

status –

HAL_StatusTypeDef HAL_PMU_EnablePinWakeup2(pin_pad pad, uint8_t mode)

Enable pin wakeup for hibernate.

Parameters:
  • pad – pad

  • mode – pin wakeup mode, 0: high level, 1: low level, 2: positive edge, 3: negative edge

Return values:

status –

HAL_StatusTypeDef HAL_PMU_DisablePinWakeup2(pin_pad pad)

Disable pin wakeup for hibernate.

Parameters:
  • pad – pad

Return values:

status –

HAL_StatusTypeDef HAL_PMU_EnableRtcWakeup(void)

Enable RTC wakeup for hibernate.

Return values:

status –

HAL_StatusTypeDef HAL_PMU_DisableRtcWakeup(void)

Disable RTC wakeup for hibernate.

Return values:

status –

void HAL_PMU_EnterHibernate(void)

Make system enter hibernate mode.

The function would wait for hibernation and not return. System can be woken up RTC and PIN precisely

Return values:

void –

void HAL_PMU_EnterShutdown(void)

Make system enter shutdown mode.

The function would wait for shutdown and not return. System can be woken up RTC and PIN, but RTC wakeup time is not accurate.

Return values:

void –

HAL_StatusTypeDef HAL_PMU_CheckBootMode(PMU_BootModeTypeDef *boot_mode, uint32_t *wakeup_src)

Check PMU boot mode.

It should be called only once after boot. PMU status would be cleared afterwards.

Parameters:
Return values:

status –

HAL_StatusTypeDef HAL_PMU_EnableXTAL32(void)

Enable XTAL32K.

Return values:

status –

HAL_StatusTypeDef HAL_PMU_DisableXTAL32(void)

Disable XTAL32K.

Return values:

status –

HAL_StatusTypeDef HAL_PMU_RC10Kconfig(void)

Update RC10K configuration.

It should be called only once after boot. It will optimize RC10K performance for each chip.

Return values:

status –

HAL_StatusTypeDef HAL_PMU_LXTReady(void)

Check whether Low power crystal is ready.

Return values:

status –

HAL_StatusTypeDef HAL_PMU_EnableRC32K(int enable)

Enable RC32K.

Parameters:
  • enable – [in] 1: enable RC32K , 0: disable RC32K

Return values:

status –

HAL_StatusTypeDef HAL_PMU_RC32KReady(void)

Check whether rc32k is ready.

Return values:

status –

HAL_StatusTypeDef HAL_PMU_LpCLockSelect(PMU_LpClockTypeDef lp_clock)

Select low power clock.

Parameters:
  • lp_clock – [in] low power clock source

Return values:

status –

HAL_StatusTypeDef HAL_PMU_EnableRC48(void)

Enable RC48M.

Return values:

status –

HAL_StatusTypeDef HAL_PMU_EnableBuck2(void)

Enable BUCK2.

Return values:

status –

HAL_StatusTypeDef HAL_PMU_EnableDLL(int enable)

Enable DLL buf, need by all DLLs, need to turn off when go low power, but need to make sure all DLL is turned off.

Parameters:
  • enable – [in] 1: enable DLL , 0: disable DLL

Return values:

status –

HAL_StatusTypeDef HAL_PMU_EnableAudio(int enable)

Enable audio buf, need to turn off when go low power.

Parameters:
  • enable – [in] 1: enable Audio , 0: disable Audio

Return values:

status –

void HAL_PMU_Reboot(void)

Reboot system.

Not support by Z0. The function would wait for reboot and not return. Need to call HAL_PMU_CheckBootMode to clear reboot bit after reboot. Boot mode is cold boot for reboot.

Return values:

void –

void HAL_PMU_SET_HXT_CBANK(uint32_t value)

Set CABANK SEL after crystal calibration.

Parameters:
  • value – [in] HXT CBANK register value

Return values:

void –

void HAL_PMU_SetWdt(uint32_t instance)

Enable watchdog as reboot cause.

Parameters:
  • instance – [in] Base address of watch dog

Return values:

void –

void HAL_PMU_LoadCalData(void)

Load PMU calibration data to PMU register.

Returns:

void

HAL_StatusTypeDef HAL_PMU_GetHpsysVoutRef(uint8_t *vout_ref)

Get HPSYS LDO (1.1V) calibration data.

Parameters:
  • vout_ref – [inout] pointer to data

Return values:

hal – status

HAL_StatusTypeDef HAL_PMU_GetHpsysVoutRef2(uint8_t *vout_ref)

Get HPSYS LDO (1.2V) calibration data.

Parameters:
  • vout_ref – [inout] pointer to data

Return values:

hal – status

void HAL_PMU_Init(void)

Init PMU.

Return values:

void –