bf0_hal_pmu.h
Header file of RCC HAL module.
- Author
Sifli software development team
- Attention
Defines
-
PMU_HPSYS_LDO_VREF_DEFAULT
-
HAL_PMU_DISABLE_LPSYS_LDO()
-
PMUC_WSR_PIN_ALL
-
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.
- 参数:
psw – [in] power switch flag, see PMU_LPSYS_PSW
- 返回值:
None –
-
HAL_PMU_SELECT_BLESYS_PWR(psw)
Select LPSYS Power Switch.
- 参数:
psw – [in] power switch flag, see PMU_LPSYS_PSW
- 返回值:
None –
-
HAL_PMU_SET_BG1_VREF12(val)
Config bandgap1 VREF12.
- 参数:
val – [in] vandgap1 vref12 value
- 返回值:
None –
-
HAL_PMU_SET_HPSYS_LDO_VREF(val)
Config HPSYS LDO VREF.
- 参数:
val – [in] HPSYS LDO VREF value
- 返回值:
None –
-
HAL_PMU_SET_HPSYS_LDO_VREF2(val)
Config HPSYS LDO VREF2.
- 参数:
val – [in] HPSYS LDO VREF2 value
- 返回值:
None –
-
HAL_PMU_SET_BUCK1_CCH(val)
Config BUCK1 CCH.
- 参数:
val – [in] BUCK1 CCH value
- 返回值:
None –
-
HAL_PMU_HPSYS_POWER_OFF()
Turn off HCPU power switch entirely during standby.
- 返回值:
None –
-
HAL_PMU_HPSYS_POWER_ON()
Turn off HCPU power switch entirely during standby.
- 返回值:
None –
-
HAL_PMU_SWITCH_VRET()
Vret switch to 0.7v when standby.
- 返回值:
None –
-
HAL_PMU_SWITCH_VRET_LOWER()
Vret switch to 0.65v when standby.
- 返回值:
None –
-
HAL_PMU_SET_LDO_RDY_DELAY(delay)
Set the delay time of LDO ready.
- 返回值:
None –
-
HAL_PMU_SET_HXT3_RDY_DELAY(delay)
Set the delay time of xTal48M ready.
- 返回值:
None –
-
HAL_PMU_LXT_ENABLED()
Check weather LXT is enabled.
- 返回值:
True – if LXT enabled, False if using RC10k
-
HAL_PMU_LXT_DISABLED()
Check weather LXT is disabled.
- 返回值:
True – if using RC10k, False if using LXT
-
HAL_PMU_CLEAR_WSR(wsr)
Clear PMU wakeup source register.
- 参数:
wsr – [in]
- 返回值:
wsr – wakeup source register value
-
HAL_PMU_GET_WSR()
Get wakeup source.
- 返回值:
wsr – wakeup source register value
-
HAL_PMU_SET_BUCK2_LOW_VOLTAGE()
-
HAL_PMU_SET_BUCK2_HIGH_VOLTAGE()
-
HAL_PMU_ENABLE_BOR()
Typedefs
-
typedef struct __PMU_ChgHandleTypeDef PMU_ChgHandleTypeDef
Charger Handle Type definition
-
typedef void (*PMU_ChgCallbackTypeDef)(PMU_ChgHandleTypeDef *handle, uint32_t status)
Charger Callback Type Def
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
-
enumerator PMU_COLD_BOOT
-
enum PMU_LpClockTypeDef
Values:
-
enumerator PMU_LPCLK_RC10
-
enumerator PMU_LPCLK_XT32
RC10K as LP clock
-
enumerator PMU_LPCLK_RC32
XTAL32K as LP clock
-
enumerator PMU_LPCLK_RC10
-
enum HAL_PMU_ChgStateTypeDef
Charger State Type
Values:
-
enumerator HAL_PMU_CHG_STATE_RESET
-
enumerator HAL_PMU_CHG_STATE_READY
-
enumerator HAL_PMU_CHG_STATE_BUSY
An internal process is ongoing
-
enumerator HAL_PMU_CHG_STATE_TIMEOUT
Timeout state
-
enumerator HAL_PMU_CHG_STATE_ERROR
CHG state error
-
enumerator HAL_PMU_CHG_STATE_SUSPEND
CHG process is suspended
-
enumerator HAL_PMU_CHG_STATE_RESET
-
enum HAL_PMU_ChgHwStateTypeDef
Hardware state machine, must be consistent with the value of register CHG_SR.CHG_STATE
Values:
-
enumerator HAL_PMU_CHG_HW_ST_OFF
-
enumerator HAL_PMU_CHG_HW_ST_PWRUP
-
enumerator HAL_PMU_CHG_HW_ST_IDLE
-
enumerator HAL_PMU_CHG_HW_ST_PRECC
-
enumerator HAL_PMU_CHG_HW_ST_CC
-
enumerator HAL_PMU_CHG_HW_ST_CV
-
enumerator HAL_PMU_CHG_HW_ST_EOC
-
enumerator HAL_PMU_CHG_HW_ST_OFF
-
enum PMU_ChgIrqTrigModeTypeDef
Charger IRQ Trigger Mode Type Definition
Values:
-
enumerator PMU_CHG_IRQ_TRIG_MODE_HIGH
event status is high
-
enumerator PMU_CHG_IRQ_TRIG_MODE_LOW
event status is low
-
enumerator PMU_CHG_IRQ_TRIG_MODE_POS_EDGE
event status goes from low to high
-
enumerator PMU_CHG_IRQ_TRIG_MODE_NEG_EDGE
event status goes from high to low
-
enumerator PMU_CHG_IRQ_TRIG_MODE_DOUBLE_EDGE
event status goes from high to low, or low to high
-
enumerator PMU_CHG_IRQ_TRIG_MODE_DISABLE
not trigger interrupt
-
enumerator PMU_CHG_IRQ_TRIG_MODE_HIGH
-
enum PMU_ChgIrqStatusTypeDef
Charger IRQ Status Type Definition
Values:
-
enumerator PMU_CHG_IRQ_VBUS_RDY
VBUS Ready
-
enumerator PMU_CHG_IRQ_VBAT_HIGH
VBAT High
-
enumerator PMU_CHG_IRQ_ABOVE_REP
Above Rep
-
enumerator PMU_CHG_IRQ_ABOVE_CC
Above CC
-
enumerator PMU_CHG_IRQ_CC
CC
-
enumerator PMU_CHG_IRQ_CV
CV
-
enumerator PMU_CHG_IRQ_EOC
End of Charging
-
enumerator PMU_CHG_IRQ_VBUS_RDY
Functions
-
HAL_StatusTypeDef HAL_PMU_EnablePinWakeup(uint8_t pin, uint8_t mode)
Enable pin wakeup for hibernate.
- 参数:
pin – pin number, its range differs from each chips, sf32lb55x: 0~5, others: 0~1
mode – pin wakeup mode, 0: high level, 1: low level, 2: positive edge, 3: negative edge
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_DisablePinWakeup(uint8_t pin)
Disable pin wakeup for hibernate.
- 参数:
pin – pin number, range: 0~5
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_EnableRtcWakeup(void)
Enable RTC wakeup for hibernate.
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_DisableRtcWakeup(void)
Disable RTC wakeup for hibernate.
- 返回值:
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
- 返回值:
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.
- 返回值:
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.
- 参数:
boot_mode – [out] boot mode
wakeup_src – [out] wakeup source if boot mode is PMU_HIBERNATE_BOOT or PMU_SHUTDOWN_BOOT, see PMU wakeup source
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_EnableXTAL32(void)
Enable XTAL32K.
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_DisableXTAL32(void)
Disable XTAL32K.
- 返回值:
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.
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_LXTReady(void)
Check whether Low power crystal is ready.
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_EnableRC32K(int enable)
Enable RC32K.
- 参数:
enable – [in] 1: enable RC32K , 0: disable RC32K
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_RC32KReady(void)
Check whether rc32k is ready.
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_LpCLockSelect(PMU_LpClockTypeDef lp_clock)
Select low power clock.
- 参数:
lp_clock – [in] low power clock source
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_EnableRC48(void)
Enable RC48M.
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_EnableBuck2(void)
Enable BUCK2.
- 返回值:
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.
- 参数:
enable – [in] 1: enable DLL , 0: disable DLL
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_EnableAudio(int enable)
Enable audio buf, need to turn off when go low power.
- 参数:
enable – [in] 1: enable Audio , 0: disable Audio
- 返回值:
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.
- 返回值:
void –
-
void HAL_PMU_SET_HXT_CBANK(uint32_t value)
Set CABANK SEL after crystal calibration.
- 参数:
value – [in] HXT CBANK register value
- 返回值:
void –
-
void HAL_PMU_SetWdt(uint32_t instance)
Enable watchdog as reboot cause.
- 参数:
instance – [in] Base address of watch dog
- 返回值:
void –
-
HAL_StatusTypeDef HAL_PMU_ChgInit(PMU_ChgHandleTypeDef *handle, PMU_ChgCalParamTypeDef *cal_param)
Init charger.
This function shoud be called before other APIs
- 参数:
handle – [in] charger handle
cal_param – [in] calibration param
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_ChgEnable(PMU_ChgHandleTypeDef *handle, bool en)
Enable or disable charger.
- 参数:
handle – [in] charger handle
en – [in] true: enable charger, false: disable charger
- 返回值:
status –
-
uint32_t HAL_PMU_ChgConfigCcCurrent(PMU_ChgHandleTypeDef *handle, uint32_t current)
Configure charger CC current.
- 参数:
handle – [in] charger handle
current – [in] CC current in mA
- 返回值:
actual – CC current configured to charger
-
float HAL_PMU_ChgConfigPreCcCurrent(PMU_ChgHandleTypeDef *handle, float current)
Configure PRECC current.
- 参数:
handle – [in] charger handle
current – [in] PRECC current in mA
- 返回值:
actual – PRECC current configured to charger
-
uint32_t HAL_PMU_ChgConfigTargetVolt(PMU_ChgHandleTypeDef *handle, uint32_t volt_mv)
Configure charging full target voltage.
- 参数:
handle – [in] charger handle
volt_mv – [in] target voltage in mV
- 返回值:
actual – target voltage(mV) configured to charger
-
uint32_t HAL_PMU_ChgConfigRepVolt(PMU_ChgHandleTypeDef *handle, uint32_t volt_mv)
Configure charging REP voltage.
- 参数:
handle – [in] charger handle
volt_mv – [in] rep voltage in mV
- 返回值:
actual – rep voltage(mV) configured to charger
-
uint32_t HAL_PMU_ChgConfigVbatHighVolt(PMU_ChgHandleTypeDef *handle, uint32_t volt_mv)
Configure charging vbat high voltage.
- 参数:
handle – [in] charger handle
volt_mv – [in] vbat high voltage in mV
- 返回值:
actual – vbat high voltage(mV) configured to charger
-
HAL_StatusTypeDef HAL_PMU_ChgConfigIRQ(PMU_ChgHandleTypeDef *handle, PMU_ChgIrqStatusTypeDef irq, PMU_ChgIrqTrigModeTypeDef trig_mode)
Enable/disable IRQ in specified trig mode.
- 参数:
handle – [in] charger handle
irq – [in] irq needs to be enabled or disabled
trig_mode – [in] irq trig mode or disable
- 返回值:
status –
-
void HAL_PMU_ChgRegisterCallback(PMU_ChgHandleTypeDef *handle, PMU_ChgCallbackTypeDef callback)
Register charger IRQ callback which is called when IRQ is triggered.
- 参数:
handle – [in] charger handle
callback – [in] callback
- 返回值:
actual – rep voltage(mV) configured to charger
-
HAL_StatusTypeDef HAL_PMU_IRQHandler(PMU_ChgHandleTypeDef *handle)
PMU IRQ Handler.
It should be callbed by IRQ handler registered in vector table
- 参数:
handle – [in] charger handle
- 返回值:
status –
-
int8_t HAL_PMU_ChgReadStatus(PMU_ChgHandleTypeDef *handle, PMU_ChgIrqStatusTypeDef irq)
Read raw charger event status.
- 参数:
handle – [in] charger handle
irq – [in] event type
- 返回值:
event – status, 0 or 1
-
HAL_StatusTypeDef HAL_PMU_ChgStartForceCharging(PMU_ChgHandleTypeDef *handle)
Start force charging.
HAL_PMU_ChgStopForceCharging should be called to stop force charging completely.
- 参数:
handle – [in] charger handle
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_ChgSuspendForceCharging(PMU_ChgHandleTypeDef *handle)
Suspend force charging.
Charging is stopped temporarily, but force control is not disbled. HAL_PMU_ChgStopForceCharging should be called to disable force control completely.
- 参数:
handle – [in] charger handle
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_ChgResumeForceCharging(PMU_ChgHandleTypeDef *handle)
Resume force charging.
- 参数:
handle – [in] charger handle
- 返回值:
status –
-
HAL_StatusTypeDef HAL_PMU_ChgStopForceCharging(PMU_ChgHandleTypeDef *handle)
Stop force charging.
- 参数:
handle – [in] charger handle
- 返回值:
status –
-
HAL_PMU_ChgHwStateTypeDef HAL_PMU_ChgGetHwState(PMU_ChgHandleTypeDef *handle)
Read hardware state.
- 参数:
handle – [in] charger handle
- 返回值:
hardware – state
-
uint8_t HAL_PMU_ChgConfigEocCc(PMU_ChgHandleTypeDef *handle, uint8_t percent)
Configure EOC Current.
- 参数:
handle – [in] charger handle
percent – [in] percentage of CC Curent, e.g. 10 is 10% of CC Current range: [4, 36]
- 返回值:
actual – percentage, 0 for invalid input
-
HAL_StatusTypeDef HAL_PMU_ConfigPeriLdo(PMU_PeriLdoTypeDef ldo, bool en, bool wait)
Open and close peripheral LDO.
- 参数:
ldo – [in] which LDO needs to be opened or closed
en – [in] true: open, false: close
wait – [in] true: wait for stable, false: no wait for stable
- 返回值:
hal – status
-
void HAL_PMU_LoadCalData(void)
Load PMU calibration data to PMU register.
- 返回:
void
-
HAL_StatusTypeDef HAL_PMU_GetHpsysVoutRef(uint8_t *vout_ref)
Get HPSYS LDO (1.1V) calibration data.
- 参数:
vout_ref – [inout] pointer to data
- 返回值:
hal – status
-
HAL_StatusTypeDef HAL_PMU_GetHpsysVoutRef2(uint8_t *vout_ref)
Get HPSYS LDO (1.2V) calibration data.
- 参数:
vout_ref – [inout] pointer to data
- 返回值:
hal – status
-
void HAL_PMU_Init(void)
Init PMU.
- 返回值:
void –
-
struct PMU_ChgCalParamTypeDef
- #include <bf0_hal_pmu.h>
Charger Calibration Parameters
-
struct __PMU_ChgHandleTypeDef
- #include <bf0_hal_pmu.h>
Charger Handle Structure Definition
Public Members
-
HAL_PMU_ChgStateTypeDef state
-
uint8_t cv_vctrl
-
float vbat_step
-
PMU_ChgCallbackTypeDef callback
-
HAL_PMU_ChgStateTypeDef state