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

宏定义

#define SYSCFG_UNLOCK_MAGIC   0x51ac0ffe
 
#define CKCFG_UNLOCK_MAGIC   0x51ac0ffe
 
#define RSTCFG_UNLOCK_MAGIC   0x51ac0ffe
 
#define SOFTWARE_RESET_KEY   0xdeadbeef
 
#define DIV_MASK3   0x7
 
#define DIV_MASK6   0x3f
 
#define DIV_MASK7   0x7f
 
#define DIV_MASK10   0x3ff
 
#define DIV_MASK12   0xfff
 

函数

int32_t dpmu_set_device_reset (uint32_t device_base)
 配置外设复位 更多...
 
int32_t dpmu_set_device_reset_release (uint32_t device_base)
 配置外设复位释放 更多...
 
int32_t dpmu_set_device_gate (uint32_t device_base, int32_t gate)
 设置时钟开关 更多...
 
int32_t dpmu_set_div_parameter (uint32_t device_base, uint32_t div_num)
 
uint32_t dpmu_get_reset_state (void)
 获取复位状态 更多...
 
static uint32_t scu_enter_critical (void)
 延迟函数 更多...
 
static void scu_exit_critical (uint32_t base_pri)
 
void scu_unlock_system_config (void)
 解锁系统控制寄存器 更多...
 
void scu_unlock_clk_config (void)
 解锁时钟相关寄存器 更多...
 
void scu_unlock_reset_config (void)
 解锁复位相关寄存器 更多...
 
void scu_lock_system_config (void)
 锁定系统控制寄存器 更多...
 
void scu_lock_clk_config (void)
 锁定时钟相关寄存器 更多...
 
void scu_lock_reset_config (void)
 锁定复位寄存器 更多...
 
int32_t scu_set_system_clk_gate (Sys_Clk_Gate_t base, FunctionalState gate)
 设置系统时钟开关 更多...
 
int32_t scu_set_device_gate (uint32_t device_base, int32_t gate)
 设置外设时钟开关 更多...
 
void scu_set_wwdg_halt ()
 设置watchdog计数和复位受到CPU HALTED信号控制 更多...
 
void scu_clean_wwdg_halt ()
 设置watchdog计数和复位不受CPU HALTED信号控制 更多...
 
int32_t scu_set_ext_wakeup_int (Ext_Num num, FunctionalState cmd)
 设置外部事件中断唤醒 更多...
 
int32_t scu_clear_ext_int_state (Ext_Num num)
 清除外部事件中断唤醒状态 更多...
 
void scu_set_ext_filter_config (Ext_Num num, FunctionalState cmd, uint32_t param)
 设置pad输入信号(外部事件)滤波 更多...
 
int32_t scu_set_device_reset (uint32_t device_base)
 配置外设复位 更多...
 
int32_t scu_set_device_reset_release (uint32_t device_base)
 配置外设复位释放 更多...
 
int8_t scu_para_en_disable (uint32_t device_base)
 配置外设分频参数之前需将CLK_DIV_PARAM_EN_CFG寄存器相应位置0 更多...
 
int8_t scu_para_en_enable (uint32_t device_base)
 配置外设分频参数之后需将CLK_DIV_PARAM_EN_CFG寄存器相应位置1 更多...
 
int32_t scu_set_div_parameter (uint32_t device_base, uint32_t div_num)
 设置外设时钟分频 更多...
 
void scu_spiflash_no_boot_set (void)
 配置QSPI0 非boot 模式 更多...
 
void scu_set_dma_mode (DmaInt_Sel_t channel)
 设置 DMA chanel 中断开启 更多...
 
void scu_run_in_flash (void)
 设置程序在FLASH中运行 更多...
 
void scu_run_not_in_flash (void)
 设置程序不在FLASH中运行 更多...
 
void scu_sel_dtrflash_clk (Dtr_Clk_Sel_t clk)
 设置DTR控制器时钟来源 更多...
 
void scu_wait_pll_lock_state ()
 等待 PLL 处于 LOCK 状态 更多...
 
void scu_iis_src_config (IIS_Src_Config_t *config, IIS_Mclk_Source_t src)
 设置IIS MCLK 时钟来源 SRC 时钟(0、1、2)的分频 更多...
 
void scu_iis_mclk_Config (IIS_Mclk_Config_t *config)
 设置IIS MCLK(0、1、2) 时钟参数 更多...
 
void scu_iis_clk_config (IISNumx device, IIS_Clk_Source_t clk_source)
 设置IIS(0、1、2)时钟参数 更多...
 
void scu_iis_pad_clk_config (IIS_Clk_Source_t clk_source, IIS_Clk_Mode_t mode)
 设置 IIS PAD CLK 时钟参数 更多...
 
void scu_iis_pad_mclk_config (IIS_Mclk_Source_t src, IIS_Clk_Mode_t mode)
 设置IIS PAD MCLK时钟参数 更多...
 
void scu_iis_codec_mclk_config (Codec_Channel_t channel, IIS_Mclk_Source_t src)
 设置CODEC MCLK 时钟参数 更多...
 
void scu_iis_pdm_mclk_config (IIS_Mclk_Source_t src)
 设置 PDM MCLK 时钟参数 更多...
 
void scu_iis_codec_dac_data_config (Codec_Dac_Data_Sel_t src)
 设置 codec dac IIS 输出数据来源 更多...
 
void scu_iis_pad_data_config (Pad_IIS_Data_Sel_t src)
 设置 pad IIS输出数据来源选择 更多...
 
void iis_clk_config (IIS_Clk_ConfigTypedef *config)
 IIS时钟配置。 master模式时,配置iis的sck和lrck来源,codec和pdm的mclk来源,iis pad输出的mclk和sck lrck来源。 slave模式时,iis时钟从外部输入,配置iis pad为输入模式 更多...
 
int32_t scu_get_system_reset_state (void)
 获取系统复位状态 更多...
 
void scu_rc_trim_en (bool en)
 RC trim使能 更多...
 
uint8_t scu_get_rc_trim_state (void)
 获取RC trim状态设置 更多...
 
uint8_t scu_get_rc_trim_c_value (void)
 获取RC trim的粗调值 更多...
 
uint8_t scu_get_rc_trim_f_value (void)
 获取RC trim的细调值 更多...
 
void scu_rc_trim_state_clear (void)
 清除RC trim的状态 更多...
 
void scu_nmi_irq_cfg (Nmi_Irq_t irq)
 nmi中断使能 更多...
 

宏定义说明

◆ CKCFG_UNLOCK_MAGIC

#define CKCFG_UNLOCK_MAGIC   0x51ac0ffe

◆ DIV_MASK10

#define DIV_MASK10   0x3ff

◆ DIV_MASK12

#define DIV_MASK12   0xfff

◆ DIV_MASK3

#define DIV_MASK3   0x7

◆ DIV_MASK6

#define DIV_MASK6   0x3f

◆ DIV_MASK7

#define DIV_MASK7   0x7f

◆ RSTCFG_UNLOCK_MAGIC

#define RSTCFG_UNLOCK_MAGIC   0x51ac0ffe

◆ SOFTWARE_RESET_KEY

#define SOFTWARE_RESET_KEY   0xdeadbeef

◆ SYSCFG_UNLOCK_MAGIC

#define SYSCFG_UNLOCK_MAGIC   0x51ac0ffe

函数说明

◆ dpmu_get_reset_state()

uint32_t dpmu_get_reset_state ( void  )

获取复位状态

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

◆ 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 
)

◆ scu_enter_critical()

static uint32_t scu_enter_critical ( void  )
static

延迟函数

参数
cnt延迟时间 毫秒
返回

◆ scu_exit_critical()

static void scu_exit_critical ( uint32_t  base_pri)
static