跳转至

DPMU

DPMU模块主要负责芯片的模拟PMU的控制、时钟门控和复位、PLL、系统唤醒、IO引脚复用的切换控制等功能,该模块和SCU模块一起提供芯片的时钟控制等基本功能。因为系统模拟部分对芯片工作非常重要,不推荐用户自行配置,建议使用我司提供SDK中的默认配置,本文档不阐述模拟PMU相关的寄存器说明,仅针对复位、时钟门控、IO引脚复用等寄存器做说明。

DPMU寄存器映射

DPMU寄存器映射基地址为0x40030000,详见表DPMU-1。

表DPMU-1 DPMU寄存器映射

偏移量 名称 位宽 类型 复位值 描述
0x00 CFG_LOCK_CFG 32 R/W 0x00000000 配置锁定寄存器
0x10 SYS_RESET_CFG 32 R/W 0x00000000 系统复位配置寄存器
0x14 SYS_SOFTRST_CFG 32 R/W 0x00000000 系统软件复位配置寄存器
0x20 SYS_CLK_SEL_CFG 32 R/W 0x00000004 系统时钟选择配置寄存器
0x30 PLL_CFG 32 R/W 0x00001407 PLL配置寄存器
0x34 AON_CLK_PARAM_CFG 32 R/W 0x00204080 时钟分频配置寄存器
0x40 AON_CLK_PARAM_EN_CFG 32 R/W 0x00000000 时钟分频使能配置寄存器
0x50 AON_CLKGATE_CFG 32 R/W 0x0000007F 时钟门控配置寄存器
0x70 AON_RESET_CFG 32 R/W 0x0000001F 复位配置寄存器
0x140 IOREUSE_CFG0 32 R/W 0x00000000 IO复用配置寄存器0
0x144 IOREUSE_CFG1 32 R/W 0x00000000 IO复用配置寄存器1
0x14C OD_CFG0 32 R/W 0x00000000 IO开漏状态配置寄存器0
0x150 PD_CFG0 32 R/W 0x00000000 IO下拉状态配置寄存器0
0x158 PU_CFG0 32 R/W 0x00000000 IO上拉状态配置寄存器0
0x160 DS_CFG0 32 R/W 0x00000000 IO驱动能力配置寄存器0
0x164 DS_CFG1 32 R/W 0x00000000 IO驱动能力配置寄存器1
0x190 AD_CFG0 32 R/W 0x00000000 IO复用AD配置寄存器0
0x194 OD_CFG1 32 R/W 0x00000000 IO开漏状态配置寄存器1
0x198 PD_CFG1 32 R/W 0x00000000 IO下拉状态配置寄存器1
0x19C PU_CFG1 32 R/W 0x00000000 IO上拉状态配置寄存器1
0x1A0 DS_CFG2 32 R/W 0x00000000 IO驱动能力配置寄存器2
0x1C0 RST_STATE_REG 32 R/W 0x00000001 复位状态寄存器

配置锁定寄存器(CFG_LOCK_CFG)

偏移量:0x00

复位值:0x00000000

位域 名称 复位值 类型 描述
31:0 CFG_LOCK_CFG 0x00000000 R/W 寄存器LOCK命令。软件配置其他寄存器时需先向此寄存器写0x51AC0FFE时解锁。读此寄存器时:
1:已解锁,可以写入;
0:未解锁,不能写入。

系统复位配置寄存器(SYS_RESET_CFG)

偏移量:0x10

复位值:0x00000000

位域 名称 复位值 类型 描述
31:10 Reserved 0 R/W Reserved
9:8 wwdg_rst_sel 0 R/W WWDG模块检测到系统喂狗异常时的复位范围:
2’b10:复位全系统(PLL\CPU\外设\SCU内部时钟分频器被复位)
2’b11:复位系统总线(CPU\外设\SCU内部时钟分频器被复位)
other value:无复位操作
7:6 iwdg_rst_sel 0 R/W IWDG模块检测到系统喂狗异常时的复位范围:
2’b10:复位全系统(PLL\CPU\外设\SCU内部时钟分频器被复位)
2’b11:复位系统总线(CPU\外设\SCU内部时钟分频器被复位)
other value:无复位操作
5:4 soft_rst_sel 0 R/W 软件复位的复位范围:
2’b10:复位全系统(PLL\CPU\外设\SCU内部时钟分频器被复位)
2’b11:复位系统总线(CPU\外设\SCU内部时钟分频器被复位)
other value:无复位操作
3:2 Reserved 0 R/W Reserved
1:0 cpu_rstreq_rst_sel 0 R/W CPU内核发出复位请求时的复位范围:
2’b10:复位CPU内核
2’b11:复位系统总线(CPU\外设\SCU内部时钟分频器被复位)
other value:无复位操作

系统软件复位配置寄存器(SYS_SOFTRST_CFG)

偏移量:0x14

复位值:0x00000000

位域 名称 复位值 类型 描述
31:0 SOFT_SOFTRST_CFG 0 R/W 为提供软件可操作的系统复位方式,设置此寄存器,当软件写入参数与固定特征值0xdeadbeef匹配时,产生软件复位请求

系统时钟选择配置寄存器(SYS_CLK_SEL_CFG)

偏移量:0x20

复位值:0x00000004

位域 名称 复位值 类型 描述
31:3 Reserved 0 R/W Reserved
2 sys_clk_sel 0x1 R/W 系统时钟选择:
0:采用系统SRC时钟,该时钟来源由本寄存器1:0位的配置决定
1:PLL产生的时钟
1:0 src_clk_sel 0 R/W 系统SRC时钟来源选择:
2’b01:内部RC振荡器产生的时钟
2’b11:外部晶体振荡器产生的时钟
other:Reserved

PLL配置寄存器(PLL_CFG)

偏移量:0x30

复位值:0x00001407

位域 名称 复位值 类型 描述
31:15 Reserved 0 R/W Reserved
14 BYPASS 0x0 R/W PLL时钟bypass使能:
0:输出PLL处理(倍频、分频)后的时钟
1:输出PLL处理前的时钟
13:6 M 0x50 R/W PLL系数M
5:2 N 0x1 R/W PLL系数N
1:0 OD 0x3 R/W PLL系数OD

PLL倍频频率可以按以下公式计算: PLL时钟 = 输入时钟 × M的值/N的值 × 1/NO 其中,NO = 2的(OD的值)次方

时钟分频配置寄存器(AON_CLK_PARAM_CFG)

偏移量:0x34

复位值:0x00204080

位域 名称 复位值 类型 描述
31:24 Reserved 0 R/W Reserved
23:17 timer_pwm_div 0x10 R/W TIMER和PWM模块的时钟分频系数
16:10 iwdg_div 0x10 R/W IWDG模块时钟分频系数
9:6 apb_div 0x2 R/W APB总线时钟分频系数,该分频影响APB总线上的全部外设
5:0 ipcore_div 0x0 R/W IP内核时钟分频系数

时钟分频使能配置寄存器(AON_CLK_PARAM_EN_CFG)

偏移量:0x40

复位值:0x00000000

位域 名称 复位值 类型 描述
31:5 Reserved 0 R/W Reserved
4 timer_gpwm_div_en 0x0 R/W TIMER和PWM模块时钟分频系数更新使能:
0:不更新
1:更新
该位配置为1生效后,自动清除为0
3 iwdg_div_en 0x0 R/W IWDG模块时钟分频系数更新使能:
0:不更新
1:更新
该位配置为1生效后,自动清除为0
2 apb_div_en 0x0 R/W APB总线时钟分频系数更新使能:
0:不更新
1:更新
该位配置为1生效后,自动清除为0
1 ipcore_div_en 0x0 R/W IP内核时钟分频系数更新使能:
0:不更新
1:更新
该位配置为1生效后,自动清除为0
0 pll_cfg_en 0x0 R/W PLL配置更新使能:
0:不更新
1:更新
该位配置为1生效后,自动清除为0

时钟门控配置寄存器(AON_CLKGATE_CFG)

偏移量:0x50

复位值:0x0000007F

位域 名称 复位值 类型 描述
31:6 Reserved 0x3 R/W Reserved
5 iwdg_cpu_halt_cken 0x1 R/W CPU处于halt状态时IWDG模块时钟门控使能:
0:自动关闭时钟
1:不自动关闭时钟
4 timer1_gpwm1_cken 0x1 R/W TIMER1和PWM1模块时钟门控使能:
0:关闭时钟
1:打开时钟
3 timer0_gpwm0_cken 0x1 R/W TIMER0和PWM0模块时钟门控使能:
0:关闭时钟
1:打开时钟
2 efuse_cken 0x1 R/W EFUSE模块时钟门控使能:
0:关闭时钟
1:打开时钟
1 iwdg_cken 0x1 R/W IWDG模块时钟门控使能:
0:关闭时钟
1:打开时钟
0 gpio_cken 0x1 R/W GPIO模块时钟门控使能:
0:关闭时钟
1:打开时钟

复位配置寄存器(AON_RESET_CFG)

偏移量:0x70

复位值:0x0000001F

位域 名称 复位值 类型 描述
31:5 Reserved 0x3 R/W Reserved
4 pll_rsten 0x1 R/W PLL模块复位使能:
0:复位
1:不复位
3 timer01_gpwm01_rsten 0x1 R/W TIMER0/1和PWM0/1模块复位使能:
0:复位
1:不复位
2 efuse_rsten 0x1 R/W EFUSE模块复位使能:
0:复位
1:不复位
1 iwdg_rsten 0x1 R/W IWDG模块复位使能:
0:复位
1:不复位
0 gpio_rsten 0x1 R/W GPIO模块复位使能:
0:复位
1:不复位

下述是IO相关的寄存器组,列举全部寄存器后再说明具体的使用方法。

IO复用配置寄存器0(IOREUSE_CFG0)

偏移量:0x140

复位值:0x00000000

位域 名称 复位值 类型 描述
31 Reserved 0 R/W Reserved
30:0 IOREUSE_CFG0 0x0 R/W IOREUSE_CFG0配置项,具体功能请参考下面的说明和表格

IO复用配置寄存器1(IOREUSE_CFG1)

偏移量:0x144

复位值:0x00000000

位域 名称 复位值 类型 描述
31:21 Reserved 0 R/W Reserved
20:0 IOREUSE_CFG1 0x0 R/W IOREUSE_CFG1配置项,具体功能请参考下面的说明和表格

IO开漏状态配置寄存器0(OD_CFG0)

偏移量:0x14C

复位值:0x00000000

位域 名称 复位值 类型 描述
31:15 Reserved 0 R/W Reserved
14:0 OD_CFG0 0x0 R/W OD_CFG0配置项,具体功能请参考下面的说明和表格

IO下拉状态配置寄存器0(PD_CFG0)

偏移量:0x150

复位值:0x00000000

位域 名称 复位值 类型 描述
31 Reserved 0 R/W Reserved
30:0 PD_CFG0 0x0 R/W PD_CFG0配置项,具体功能请参考下面的说明和表格

IO上拉状态配置寄存器0(PU_CFG0)

偏移量:0x158

复位值:0x00000000

位域 名称 复位值 类型 描述
31 Reserved 0 R/W Reserved
30:0 PU_CFG0 0x0 R/W PU_CFG0配置项,具体功能请参考下面的说明和表格

IO驱动能力配置寄存器0(DS_CFG0)

偏移量:0x160

复位值:0x00000000

位域 名称 复位值 类型 描述
31:0 DS_CFG0 0x0 R/W DS_CFG0配置项,具体功能请参考下面的说明和表格

IO驱动能力配置寄存器1(DS_CFG1)

偏移量:0x164

复位值:0x00000000

位域 名称 复位值 类型 描述
31:0 DS_CFG1 0x0 R/W DS_CFG1配置项,具体功能请参考下面的说明和表格

IO复用AD配置寄存器0(AD_CFG0)

偏移量:0x190

复位值:0x00000003

位域 名称 复位值 类型 描述
31:12 Reserved 0 R/W Reserved
11:0 AD_CFG0 0x3 R/W AD_CFG0配置项,具体功能请参考下面的说明和表格

IO开漏状态配置寄存器1(OD_CFG1)

偏移量:0x194

复位值:0x00000000

位域 名称 复位值 类型 描述
31:16 Reserved 0 R/W Reserved
15:0 OD_CFG1 0x0 R/W OD_CFG1配置项,具体功能请参考下面的说明和表格

IO下拉状态配置寄存器1(PD_CFG1)

偏移量:0x198

复位值:0x00000000

位域 名称 复位值 类型 描述
31:16 Reserved 0 R/W Reserved
15:0 PD_CFG0 0x0 R/W PD_CFG0配置项,具体功能请参考下面的说明和表格

IO上拉状态配置寄存器1(PU_CFG1)

偏移量:0x19C

复位值:0x00000000

位域 名称 复位值 类型 描述
31:16 Reserved 0 R/W Reserved
15:0 PU_CFG1 0x0 R/W PU_CFG1配置项,具体功能请参考下面的说明和表格

IO驱动能力配置寄存器2(DS_CFG2)

偏移量:0x1A0

复位值:0x00000000

位域 名称 复位值 类型 描述
31:0 DS_CFG2 0x0 R/W DS_CFG2配置项,具体功能请参考下面的说明和表格

上述IO相关的寄存器组,每个位都是配置为1时有效,IO复用决定了对应的IO处于何种功能状态,AD复用决定对应的IO是否配置为模拟ADC输入口,上下拉和开漏寄存器决定了对应的IO是否开启内部上拉、下拉或开漏状态(IO开漏时支持外部5V输入),DS寄存器决定了对应的IO的驱动能力,有两位有效数据,当温度在25度,芯片工作在3.3V和1.1V电压情况下,DS值和对应的标称驱动能力如下表所示:

DS | Ioh(高电平2.4V时输出电流) | Iol(低电平2.4V时输入电流) :–: | :–: | :–: | 0 | 33.1mA | 19.3mA 1 | 39.7mA | 23.1mA 2 | 46.4mA | 26.9mA 3 | 53mA | 30.8mA

芯片各个IO和对应的IO配置寄存器的控制关系表如下图所示:

IO和寄存器位对应关系

图D-1 IO和寄存器位对应关系

上述IO复用配置中,该IO配置的IOREUSE寄存器位的值决定了该IO当前处于第几个工作模式,工作模式和IO的关系如下图所示:

IO功能复用关系

图D-2 IO功能复用关系

复位状态寄存器(RST_STATE_REG)

偏移量:0x1C0

复位值:0x00000001

位域 名称 复位值 类型 描述
31:6 Reserved 0 W1C Reserved
5 SOFT_RST_STATE 0x0 W1C 软件造成复位的状态位,1为复位状态,该位写1时清除为0
4 WWDG_RST_STATE 0x0 W1C WWDG造成复位的状态位,1为复位状态,该位写1时清除为0
3 IWDG_RST_STATE 0x0 W1C IWDG造成复位的状态位,1为复位状态,该位写1时清除为0
2 Reserved 0 W1C Reserved
1 CPU_REQ_RST_STATE 0x0 W1C CPU复位请求造成复位的状态位,1为复位状态,该位写1时清除为0
1 POWER_ON_RST_STATE 0x1 W1C 上电造成复位的状态位,1为复位状态,该位写1时清除为0