CI130X SDK API手册  2.2.0
本手册用于描述CI130X SDK各个组件和驱动API
结构体 | 宏定义 | 函数 | 变量
ci130x_dpmu.c 文件参考
#include "ci130x_dpmu.h"
#include "sdk_default_config.h"
#include "ci130x_core_eclic.h"
#include "ci_log.h"
#include "ci130x_mailbox_bnpu.h"

结构体

struct  pll_cfg0_t
 
struct  pll_set_t
 
union  pll_set_t::pll_reg0
 

宏定义

#define SOFTWARE_RESET_KEY   0xdeadbeef
 
#define SYS_CLK_SEL_PLL_CLK   (0x1 << 2)
 
#define SYS_CLK_SEL_SRC_CLK   (~(0x1 <<2))
 
#define DIV_MASK4   0xf
 
#define DIV_MASK6   0x3f
 
#define DIV_MASK7   0x7f
 

函数

static uint32_t dpmu_enter_critical (void)
 延迟函数 更多...
 
static void dpmu_exit_critical (uint32_t base_pri)
 
void dpmu_unlock_cfg_config (void)
 解锁dpmu配置寄存器 更多...
 
void dpmu_lock_cfg_config (void)
 锁定dpmu配置寄存器 更多...
 
int32_t dpmu_pll_set_high_freq_verify (const pll_set_t *pll_set)
 
uint32_t dpmu_get_pll_frequency ()
 获取系统主频 更多...
 
void dpmu_set_src_source (Dpmu_Src_Source_Sel_t sel)
 选择SRC时钟的来源 更多...
 
void dpmu_use_rc (void)
 设置使用SRC时钟作为系统时钟 更多...
 
void dpmu_pll_config (uint32_t in_clk, uint32_t out_clk)
 配置系统主频 更多...
 
int32_t dpmu_set_device_gate (uint32_t device_base, int32_t gate)
 设置时钟开关 更多...
 
void dpmu_set_iwdg_halt ()
 设置iwatchdog计数和复位受到CPU HALTED信号控制 更多...
 
void dpmu_clean_iwdg_halt ()
 设置watchdog计数和复位不受CPU HALTED信号控制 更多...
 
void dpmu_iwdg_reset_none_config (void)
 IWDG模块检测到系统喂狗异常时的复位范围:无复位操作 更多...
 
void dpmu_iwdg_reset_system_config (void)
 IWDG模块检测到系统喂狗异常时的复位范围:复位全系统 更多...
 
void dpmu_iwdg_reset_bus_config (void)
 IWDG模块检测到系统喂狗异常时的复位范围:复位系统总线 更多...
 
void dpmu_twdg_reset_none_config (void)
 WWDG模块检测到系统喂狗异常时的复位范围:无复位操作 更多...
 
void dpmu_twdg_reset_sysytem_config (void)
 WWDG模块检测到系统喂狗异常时的复位范围:复位全系统 更多...
 
void dpmu_twdg_reset_bus_config (void)
 WWDG模块检测到系统喂狗异常时的复位范围:复位系统总线 更多...
 
void dpmu_software_reset_none_config (void)
 软件无复位操作 更多...
 
void dpmu_software_reset_system_config (void)
 软件复位全系统 更多...
 
void dpmu_software_reset_bus_config (void)
 软件复位系统总线 更多...
 
void dpmu_core_reset_none_config ()
 cpu内核发出复位请求时的复位范围:无复位操作 更多...
 
void dpmu_core_reset_system_config ()
 cpu内核发出复位请求时的复位范围:复位CPU内核 更多...
 
void dpmu_core_reset_bus_config ()
 cpu内核发出复位请求时的复位范围:复位系统总线 更多...
 
void dpmu_set_io_reuse (PinPad_Name pin, IOResue_FUNCTION io_function)
 配置管脚复用对应功能 更多...
 
void dpmu_set_adio_reuse (PinPad_Name pin, ADIOResue_MODE adio_mode)
 配置管脚数字模拟功能 更多...
 
void dpmu_set_ext_filter_config (Ext_Num num, FunctionalState flag, uint32_t param)
 设置pad输入信号(外部事件)滤波 更多...
 
void dpmu_set_io_open_drain (PinPad_Name pin, FunctionalState cmd)
 配置管脚开漏功能(例如IIC需要引脚配置成此功能) 更多...
 
void dpmu_set_io_pull (PinPad_Name pin, Dpmu_Io_Pull_t pull)
 配置管脚上下拉功能 更多...
 
void dpmu_set_io_direction (PinPad_Name pin, Dpmu_Io_Direction_t dir)
 配置管脚方向 更多...
 
void dpmu_set_io_schmitt_trigger (PinPad_Name pin, Dpmu_Io_Schmitt_Trigger_t schmitt_trigger)
 配置管脚触发器模式 更多...
 
void dpmu_set_io_slew_rate (PinPad_Name pin, Dpmu_Io_Slew_Rate_t slew_rate)
 配置管脚电压转换率模式 更多...
 
void dpmu_set_io_driver_strength (PinPad_Name pin, Dpmu_Io_Driver_Strength_t driver_strength)
 配置管脚驱动强度 更多...
 
int32_t dpmu_set_device_reset (uint32_t device_base)
 配置外设复位 更多...
 
int32_t dpmu_set_device_reset_release (uint32_t device_base)
 配置外设复位释放 更多...
 
void dpmu_set_low_power_mode (Dpmu_Lowpower_Mode_t mode)
 
void dpmu_set_wakeup_int (int32_t wake_int_num, FunctionalState flag)
 低功耗唤醒源使能 更多...
 
void dpmu_wakeup_reset_cfg (Dpmu_Wakeup_Reset_Cfg_t model, FunctionalState flag)
 系统退出低功耗进入系统复位流程时是否复位模块 更多...
 
uint32_t dpmu_get_wakeup_state (void)
 获取唤醒状态 更多...
 
uint32_t dpmu_get_reset_state (void)
 获取复位状态 更多...
 
void dpmu_clean_reset_state (void)
 清除复位状态 更多...
 
void dpmu_para_en_enable (uint32_t device_base)
 配置外设分频参数之后需将AON_CLK_PARAM_EN_CFG寄存器相应位置1 更多...
 
void dpmu_para_en_disable (uint32_t device_base)
 配置外设分频参数之前需将AON_CLK_PARAM_EN_CFG寄存器相应位置0 更多...
 
int32_t dpmu_set_div_parameter (uint32_t device_base, uint32_t div_num)
 
void dpmu_osc_pad_cfg_en (Dpmu_Xtal_Mode_t mode, FunctionalState cmd)
 
void dpmu_osc_pad_cfg_fma (uint8_t num)
 晶振IO频率和驱动能力选择 更多...
 
void dpmu_pmu_trim_en (bool en)
 PMU trim使能 更多...
 
void dpmu_set_pmu_trim_value (uint8_t val)
 设置pmu trim信号 更多...
 
uint8_t dpmu_get_pmu_trim_value (void)
 设置pmu trim信号 更多...
 
void dpmu_pmu_div_resistance_en (bool en)
 PMU分压电阻使能 更多...
 
void dpmu_set_vdt_mask (bool en)
 设置VDT中断屏蔽 更多...
 
void dpmu_vdt_lv_set (Dpmu_Vdt_Lv_t lv)
 设置PMU的低电压检测档位 更多...
 
void dpmu_vdt_en (bool en)
 低电压检测使能 更多...
 
void dpmu_ldo2_en (bool en)
 LDO2输出使能 更多...
 
void dpmu_ldo3_en (bool en)
 LDO3输出使能 更多...
 
void dpmu_ldo1_lv_set (uint8_t lv)
 LDO1输出电压调整 更多...
 
void dpmu_ldo2_lv_set (uint8_t lv)
 LDO2输出电压调整 更多...
 
void dpmu_ldo3_lv_set (uint8_t lv)
 LDO3输出电压调整 更多...
 
void dpmu_config_update_en (Dpmu_Update_En_Num_t num)
 PMU update en配置 更多...
 
void dpmu_rc_freq_sel (Dpmu_Rc_Freq_Sel_t sel)
 RC频率段选择 更多...
 
void dpmu_set_rc_trim_c_value (uint8_t val)
 RC trim时粗调值设置 更多...
 
void dpmu_set_rc_trim_f_value (uint8_t val)
 RC trim时精调值设置 更多...
 
void dpmu_set_rc_en (bool en)
 RC 使能设置 更多...
 
void dpmu_set_rc_update_cfg (void)
 RC配置寄存器更新 更多...
 
void dpmu_osc_pad_for_gpio (FunctionalState en)
 配置晶振脚PA0、PA1功能选择(晶振/GPIO) 更多...
 

变量

const pll_set_t pll_12d288_upto_480
 
const pll_set_t pll_12d288_upto_475d136
 
const pll_set_t pll_12d288_upto_440
 
const pll_set_t pll_12d288_upto_400
 
const pll_set_t pll_12d288_upto_360
 

结构体说明

◆ pll_cfg0_t

struct pll_cfg0_t
成员变量
uint32_t bp:1
uint32_t m:8
uint32_t n:4
uint32_t od:2
uint32_t rev:17

◆ pll_set_t

struct pll_set_t
成员变量
union pll_reg0 reg0

◆ pll_set_t::pll_reg0

union pll_set_t::pll_reg0
成员变量
pll_cfg0_t reg0_bits
uint32_t reg0_int

宏定义说明

◆ DIV_MASK4

#define DIV_MASK4   0xf

◆ DIV_MASK6

#define DIV_MASK6   0x3f

◆ DIV_MASK7

#define DIV_MASK7   0x7f

◆ SOFTWARE_RESET_KEY

#define SOFTWARE_RESET_KEY   0xdeadbeef

◆ SYS_CLK_SEL_PLL_CLK

#define SYS_CLK_SEL_PLL_CLK   (0x1 << 2)

◆ SYS_CLK_SEL_SRC_CLK

#define SYS_CLK_SEL_SRC_CLK   (~(0x1 <<2))

函数说明

◆ dpmu_clean_reset_state()

void dpmu_clean_reset_state ( void  )

清除复位状态

返回
state: 清除状态寄存器值

◆ dpmu_enter_critical()

static uint32_t dpmu_enter_critical ( void  )
static

延迟函数

参数
cnt延迟时间 毫秒
返回

◆ dpmu_exit_critical()

static void dpmu_exit_critical ( uint32_t  base_pri)
static

◆ dpmu_get_reset_state()

uint32_t dpmu_get_reset_state ( void  )

获取复位状态

返回
state: 复位状态寄存器值

◆ dpmu_get_wakeup_state()

uint32_t dpmu_get_wakeup_state ( void  )

获取唤醒状态

返回
state: 唤醒状态寄存器值

◆ dpmu_osc_pad_cfg_en()

void dpmu_osc_pad_cfg_en ( Dpmu_Xtal_Mode_t  mode,
FunctionalState  cmd 
)

◆ dpmu_para_en_disable()

void dpmu_para_en_disable ( uint32_t  device_base)

配置外设分频参数之前需将AON_CLK_PARAM_EN_CFG寄存器相应位置0

参数
device_base,设备基地址
返回值
RETURN_OK配置完成
RETURN_ERR参数错误

◆ dpmu_para_en_enable()

void dpmu_para_en_enable ( uint32_t  device_base)

配置外设分频参数之后需将AON_CLK_PARAM_EN_CFG寄存器相应位置1

参数
device_base,设备基地址
返回值
RETURN_OK配置完成
RETURN_ERR参数错误

◆ dpmu_pll_set_high_freq_verify()

int32_t dpmu_pll_set_high_freq_verify ( const pll_set_t pll_set)

◆ dpmu_set_device_gate()

int32_t dpmu_set_device_gate ( uint32_t  device_base,
int32_t  gate 
)

设置时钟开关

参数
device_base,需要设置的外设基址
gate,DISABLE :关闭 ,ENABLE :打开
返回
PARA_ERROR: 参数错误 ,RETURN_OK:配置完成

◆ dpmu_set_device_reset()

int32_t dpmu_set_device_reset ( uint32_t  device_base)

配置外设复位

注解
配合dpmu_set_device_reset_release 使用,先reset,然后release,外设复位完成
参数
device_base,设备基地址
返回
PARA_ERROR: 参数错误 ,RETURN_OK:配置完成

◆ dpmu_set_device_reset_release()

int32_t dpmu_set_device_reset_release ( uint32_t  device_base)

配置外设复位释放

注解
配合dpmu_set_device_reset 使用,先reset,然后release,外设复位完成
参数
device_base,设备基地址
返回
PARA_ERROR: 参数错误 ,RETURN_OK:配置完成

◆ dpmu_set_div_parameter()

int32_t dpmu_set_div_parameter ( uint32_t  device_base,
uint32_t  div_num 
)

◆ dpmu_set_low_power_mode()

void dpmu_set_low_power_mode ( Dpmu_Lowpower_Mode_t  mode)

◆ dpmu_set_wakeup_int()

void dpmu_set_wakeup_int ( int32_t  wake_int_num,
FunctionalState  flag 
)

低功耗唤醒源使能

参数
wake_int_num,唤醒源共8组,可配置 0 ~ 7
flag,ENABLE,使能。DISABLE,不使能

◆ dpmu_wakeup_reset_cfg()

void dpmu_wakeup_reset_cfg ( Dpmu_Wakeup_Reset_Cfg_t  model,
FunctionalState  flag 
)

系统退出低功耗进入系统复位流程时是否复位模块

参数
model,复位的模块
flag,ENABLE,复位。DISABLE,不复位

变量说明

◆ pll_12d288_upto_360

const pll_set_t pll_12d288_upto_360
初始值:
=
{
.reg0=
{
.reg0_bits =
{
.od = 2,
.n = 1,
.m = 117,
.bp = 0,
.rev = 0,
},
},
}

◆ pll_12d288_upto_400

const pll_set_t pll_12d288_upto_400
初始值:
=
{
.reg0=
{
.reg0_bits =
{
.od = 2,
.n = 1,
.m = 130,
.bp = 0,
.rev = 0,
},
},
}

◆ pll_12d288_upto_440

const pll_set_t pll_12d288_upto_440
初始值:
=
{
.reg0=
{
.reg0_bits =
{
.od = 2,
.n = 1,
.m = 143,
.bp = 0,
.rev = 0,
},
},
}

◆ pll_12d288_upto_475d136

const pll_set_t pll_12d288_upto_475d136
初始值:
=
{
.reg0=
{
.reg0_bits =
{
.od = 1,
.n = 3,
.m = 232,
.bp = 0,
.rev = 0,
},
},
}

◆ pll_12d288_upto_480

const pll_set_t pll_12d288_upto_480
初始值:
=
{
.reg0=
{
.reg0_bits =
{
.od = 1,
.n = 3,
.m = 78*3,
.bp = 0,
.rev = 0,
},
},
}