跳转至

系统控制单元SCU

系统控制单元主要负责芯片的时钟来源、部分时钟信号的产生与控制、中断控制等功能,该模块和DPMU模块一起提供芯片的时钟控制等基本功能。

SCU寄存器映射

系统控制单元寄存器映射基地址为0x40000000,详见表SCU-1。

表SCU-1 系统控制单元寄存器映射

偏移量 名称 位宽 类型 复位值 描述
0x00 SYS_CTRL_CFG 32 R/W 0x00000401 系统控制寄存器
0x0C EXT_INT_CFG 32 R/W 0x00000000 外部中断配置寄存器
0x50 SYSCFG_LOCK_CFG 32 R/W 0x00000000 系统锁定配置寄存器
0x58 CKCFG_LOCK_CFG 32 R/W 0x00000000 时钟配置锁定配置寄存器
0x80 CLKDIV_PARAM0_CFG 32 R/W 0x1001808C 分频参数寄存器0
0x84 CLKDIV_PARAM1_CFG 32 R/W 0x00008208 分频参数寄存器1
0xB0 CLK_DIV_PARAM_EN_CFG 32 R/W 0x00000000 分频参数使能寄存器
0x11C SYS_CLKGATE_CFG0 32 R/W 0x00000FFC 系统时钟门控配置寄存器
0x124 AHB_CLKGATE_CFG 32 R/W 0x0000007F AHB总线模块时钟门控配置寄存器
0x128 APB0_CLKGATE_CFG 32 R/W 0x00007FFF APB0总线模块时钟门控配置寄存器
0x12C APB1_CLKGATE_CFG 32 R/W 0x000001FF APB1总线模块时钟门控配置寄存器
0x178 SCU_STATE_REG 32 R/W 0x00000001 SCU状态寄存器
0x190 AHB_RESET_CFG 32 R/W 0x0000007E AHB总线模块软件复位配置寄存器
0x194 APB0_RESET_CFG 32 R/W 0x00000FFF APB0总线模块软件复位配置寄存器
0x198 APB1_RESET_CFG 32 R/W 0x000001FF APB1总线模块软件复位配置寄存器
0x1DC WAKEUP_MASK_CFG 32 R/W 0x00000000 唤醒Mask配置寄存器
0x1F4 INT_STATE_REG 32 R/W 0x00000000 中断状态寄存器

系统控制寄存器(SYS_CTRL_CFG)

偏移量:0x00

复位值:0x00000401

位域 名称 复位值 类型 描述
31:11 Reserved 0x0 RW Reserved
10 DTR_CLK_SEL 0x1 RW DTR控制器时钟来源:
0:PLL倍频前的时钟
1:PLL时钟
9 RUN_IN_FLASH_EN 0x1 RW 控制系统程序在FLASH中运行(使能Flash XIP功能):
1:在FLASH中运行
0:不在FLASH中运行
8:5 Reserved 0x1 RW Reserved
4:1 NMI_INT_CTRL 0x0 RW 将CPU快速中断配置为如下中断源:
0:Reserved
1:INT_IWDG
2:INT_WWDG
3:INT_EXT0
4:INT_EXT1
5:INT_TIMER0
6:INT_TIMER1
7:INT_UART0
8:INT_UART1
9:INT_UART2
10:INT_GPIO0
11:INT_GPIO1
12:INT_GPIO2
13:INT_VDT
14:Reserved
15:INT_ADC
0 SPI_BOOT 0x1 RW Flash对应的QSPI控制器BOOT模式使能:
0:Flash对应的QSPI控制器为正常模式,非启动模式,用于读写Flash中的数据
1:Flash对应的QSPI控制器为BOOT模式,从Flash中读取代码并执行
芯片上电后会通过上电时采集的相关引脚的高低电平状态,控制系统的BOOT方式,若设定了当前系统从Flash中启动,则当系统完成启动后,需要把该SPI_BOOT位配置为0,Flash对应的QSPI控制器才能恢复到正常模式,才能正常读写Flash中的数据

外部中断配置寄存器(EXT_INT_CFG)

偏移量:0x0C

复位值:0x00000000

位域 名称 复位值 类型 描述
31:4 Reserved 0x0 RW Reserved
3 EXT1_INT_EN 0x0 RW 外部中断1中断使能:
1:发生外部中断请求时产生对应中断
0:中断不使能
2 EXT0_INT_EN 0x0 RW 外部中断0中断使能:
1:发生外部中断请求时产生对应中断
0:中断不使能
1 EXT1_INT_STATE 0x0 RW 外部中断1状态位:
1:发生外部中断请求
0:未发生外部中断请求
该位写1清除
0 EXT0_INT_STATE 0x0 RW 外部中断0状态位:
1:发生外部中断请求
0:未发生外部中断请求
该位写1清除

系统锁定配置寄存器(SYSCFG_LOCK_CFG)

偏移量:0x50

复位值:0x00000000

位域 名称 复位值 类型 描述
31:0 SYSCFG_LOCK 0x0 RW 软件配置系统时需先向此寄存器写0x51AC0FFE解锁,才能写入系统控制单元各寄存器的配置。读此寄存器的值有以下含义:
1:本寄存器已解锁,可以写入
0:本寄存器未解锁,不能写入

时钟配置锁定配置寄存器(CKCFG_LOCK_CFG)

偏移量:0x58

复位值:0x00000000

位域 名称 复位值 类型 描述
31:0 CKCFG_LOCK 0x0 RW 软件配置PLL和时钟门控相关寄存器时需要先向此寄存器写0x51AC0FFE解锁,然后才能进行配置,写其他任意值锁定。读此寄存器的值有以下含义:
1:本寄存器已解锁,可以写入
0:本寄存器未解锁,不能写入。

分频参数寄存器0(CLKDIV_PARAM0_CFG)

偏移量:0x80

复位值:0x1001808C

位域 名称 复位值 类型 描述
31 Reserved 0x0 RW Reserved
30:24 TIMER_GPWM_DIV 0x10 RW TIMER和PWM模块的时钟分频参数
23:12 ST_DIV 0x18 RW CPU内核滴答(SysTick)时钟的分频参数
11:9 DTR_RAM_DIV 0x0 RW DTR Flash模块中RAM的时钟分频参数
8:6 DTR_DIV 0x2 RW DTR Flash模块的时钟分频参数
5:0 ADC_DIV 0xC RW ADC模块的时钟分频参数

分频参数寄存器1(CLKDIV_PARAM1_CFG)

偏移量:0x84

复位值:0x00008208

位域 名称 复位值 类型 描述
31:12 Reserved 0x0 RW Reserved
11:6 UART1_DIV 0x8 RW UART1模块的时钟分频参数
5:0 UART0_DIV 0x8 RW UART0模块的时钟分频参数

分频参数使能寄存器(CLK_DIV_PARAM_EN_CFG)

偏移量:0xB0

复位值:0x00000000

位域 名称 复位值 类型 描述
31:11 Reserved 0x0 RW Reserved
10 SRC2_MCLK_DIV_EN 0x0 RW 分频参数SRC2_MCLK_DIV的更新使能:
1:使能
0:不使能
9 SRC1_MCLK_DIV_EN 0x0 RW 分频参数SRC1_MCLK_DIV的更新使能:
1:使能
0:不使能
8 SRC0_MCLK_DIV_EN 0x0 RW 分频参数SRC0_MCLK_DIV的更新使能:
1:使能
0:不使能
7 Reserved 0x0 RW Reserved
6 UART1_DIV_EN 0x0 RW 分频参数UART1_DIV的更新使能:
1:使能
0:不使能
5 UART0_DIV_EN 0x0 RW 分频参数UART0_DIV的更新使能:
1:使能
0:不使能
4 TIMER_GPWM_DIV_EN 0x0 RW 分频参数TIMER_GPWM_DIV的更新使能:
1:使能
0:不使能
3 ST_DIV_EN 0x0 RW 分频参数ST_DIV的更新使能:
1:使能
0:不使能
2 DTR_RAM_DIV_EN 0x0 RW 分频参数DTR_RAM_DIV的更新使能:
1:使能
0:不使能
1 DTR_DIV_EN 0x0 RW 分频参数DTR_DIV的更新使能:
1:使能
0:不使能
0 Reserved 0x0 RW Reserved

系统时钟门控配置寄存器(SYS_CLKGATE_CFG0)

偏移量:0x11C

复位值:0x00000FFC

位域 名称 复位值 类型 描述
31:12 Reserved 0x0 RW Reserved
11 ROM_CKEN 0x1 RW ROM模块的时钟门控:
0:关闭该时钟
1:打开该时钟
10 SRAM6_CLKEN 0x1 RW SRAM6模块的时钟门控:
0:关闭该时钟
1:打开该时钟
9 SRAM5_CLKEN 0x1 RW SRAM5模块的时钟门控:
0:关闭该时钟
1:打开该时钟
8 SRAM4_CLKEN 0x1 RW SRAM4模块的时钟门控:
0:关闭该时钟
1:打开该时钟
7 SRAM3_CLKEN 0x1 RW SRAM3模块的时钟门控:
0:关闭该时钟
1:打开该时钟
6 SRAM2_CLKEN 0x1 RW SRAM2模块的时钟门控:
0:关闭该时钟
1:打开该时钟
5 SRAM1_CLKEN 0x1 RW SRAM1模块的时钟门控:
0:关闭该时钟
1:打开该时钟
4 SRAM0_CLKEN 0x1 RW SRAM0模块的时钟门控:
0:关闭该时钟
1:打开该时钟
3 STCLK 0x1 RW 系统滴答时钟STCLK模块的时钟门控:
0:关闭该时钟
1:打开该时钟
2 CPU_CORECLK 0x1 RW CPU内核时钟模块的时钟门控:
0:关闭该时钟
1:打开该时钟
1 SLEEPDEEP 0x0 RW CPU处于深度睡眠时的时钟门控:
0:关闭该时钟
1:打开该时钟
0 SLEEPING 0x0 RW CPU睡眠时的时钟门控:
0:关闭该时钟
1:打开该时钟

注1:上述SRAM0到SRAM6共同组成芯片内部的640KB SRAM,正常使用时请全部设置时钟为打开状态 * ***注2:上述深度睡眠和睡眠是CPU的两种休眠模式,可以通过直接写CPU内置的寄存器实现,使用该模式时需提前打开对应的时钟,用户可自行查阅CPU的相关资料进行设置 **

AHB总线模块时钟门控配置寄存器(AHB_CLKGATE_CFG)

偏移量:0x124

复位值:0x0000007F

位域 名称 复位值 类型 描述
31:5 Reserved 0x3 RW Reserved
4 DTR_CKEN 0x1 RW DTR Flash模块的时钟门控:
0:关闭该时钟
1:打开该时钟
3 Reserved 0x1 RW Reserved
2 Reserved 0x1 RW Reserved
1 GDMA_CKEN 0x1 RW DMA模块的时钟门控:
0:关闭该时钟
1:打开该时钟
0 Reserved 0x1 RW Reserved

APB0总线模块时钟门控配置寄存器(APB0_CLKGATE_CFG)

偏移量:0x128

复位值:0x00007FFF

位域 名称 复位值 类型 描述
31:14 Reserved 0x3 RW Reserved
13 WWDG_CPU_HALT_CKEN 0x1 RW 窗口看门狗WWDG模块在CPU处于HALT状态时的时钟门控:
0:关闭该时钟
1:打开该时钟
12 CODEC_DA_CKEN 0x1 RW CODEC模块DAC的时钟门控:
0:关闭该时钟
1:打开该时钟
11 CODEC_AD_CKEN 0x1 RW CODEC模块ADC的时钟门控:
0:关闭该时钟
1:打开该时钟
10 TIMER3_CKEN 0x1 RW TIMER3模块的时钟门控:
0:关闭该时钟
1:打开该时钟
9 TIMER2_CKEN 0x1 RW TIMER2模块的时钟门控:
0:关闭该时钟
1:打开该时钟
8 TIMER1_CKEN 0x1 RW TIMER1模块的时钟门控:
0:关闭该时钟
1:打开该时钟
7 TIMER0_CKEN 0x1 RW TIMER0模块的时钟门控:
0:关闭该时钟
1:打开该时钟
6 Reserved 0x1 RW Reserved
5 GPWM2_CKEN 0x1 RW PWM2模块的时钟门控:
0:关闭该时钟
1:打开该时钟
4 GPWM1_CKEN 0x1 RW PWM1模块的时钟门控:
0:关闭该时钟
1:打开该时钟
3 GPWM0_CKEN 0x1 RW PWM0模块的时钟门控:
0:关闭该时钟
1:打开该时钟
2 Reserved 0x1 RW Reserved
1 IIC_CKEN 0x1 RW IIC模块的时钟门控:
0:关闭该时钟
1:打开该时钟
0 WWDG_CKEN 0x1 RW WWDG模块的时钟门控:
0:关闭该时钟
1:打开该时钟

APB1总线模块时钟门控配置寄存器(APB1_CLKGATE_CFG)

偏移量:0x12C

复位值:0x000001FF

位域 名称 复位值 类型 描述
31:9 Reserved 0x3 RW Reserved
8:6 Reserved 0x7 RW Reserved
5 Reserved 0x1 RW Reserved
4 Reserved 0x1 RW Reserved
3 UART1_CKEN 0x1 RW UART1模块的时钟门控:
0:关闭该时钟
1:打开该时钟
2 UART0_CKEN 0x1 RW UART0模块的时钟门控:
0:关闭该时钟
1:打开该时钟
1 GPIO1_CKEN 0x1 RW GPIO1模块的时钟门控:
0:关闭该时钟
1:打开该时钟
0 GPIO0_CKEN 0x1 RW GPIO0模块的时钟门控:
0:关闭该时钟
1:打开该时钟

SCU状态寄存器(SCU_STATE_REG)

偏移量:0x178

复位值:0x00000001

位域 名称 复位值 类型 描述
31:5 Reserved 0x0 RW Reserved
4 CPU_DEEPSLEEP 0x0 RW CPU的深度睡眠状态查询:
0:不处于深度睡眠状态
1:处于深度睡眠状态
3 CPU_SLEEP 0x0 RW CPU的睡眠状态查询:
0:不处于睡眠状态
1:处于睡眠状态
2 PLL_LOCK_STATE 0x0 RW PLL的锁定状态查询:
0:不处于锁定状态
1:处于锁定状态
1 BOOT_MODE 0x0 RW 系统启动模式查询:
0:片内ROM启动
1:片内SRAM启动
0 Reserved 0x1 RW Reserved

AHB总线模块软件复位配置寄存器(AHB_RESET_CFG)

偏移量:0x190

复位值:0x0000007E

位域 名称 复位值 类型 描述
31:5 Reserved 0x3 RW Reserved
4 DTR_RSTEN 0x1 RW DTR Flash模块软件复位控制:
0:复位
1:不复位
3 Reserved 0x1 RW Reserved
2 Reserved 0x1 RW Reserved
1 GDMA_RSTEN 0x1 RW DMA模块软件复位控制:
0:复位
1:不复位
0 Reserved 0x1 RW Reserved

APB0总线模块软件复位配置寄存器(APB0_RESET_CFG)

偏移量:0x194

复位值:0x00000FFF

位域 名称 复位值 类型 描述
31:12 Reserved 0x0 RW Reserved
11 TIMER23_RSTEN 0x1 RW TIMER2和TIMER3模块软件复位控制:
0:复位
1:不复位
10 Reserved 0x1 RW Reserved
9 TIMER01_RSTEN 0x1 RW TIMER0和TIMER1模块软件复位控制:
0:复位
1:不复位
8 Reserved 0x1 RW Reserved
7 GPWM23_RSTEN 0x1 RW PWM2模块软件复位控制:
0:复位
1:不复位
6 Reserved 0x1 RW Reserved
5 GPWM01_RSTEN 0x1 RW PWM0和PWM1模块软件复位控制:
0:复位
1:不复位
4 Reserved 0x1 RW Reserved
3 CODEC_RSTEN 0x1 RW CODEC模块软件复位控制:
0:复位
1:不复位
2 Reserved 0x1 RW Reserved
1 IIC_RSTEN 0x1 RW IIC模块软件复位控制:
0:复位
1:不复位
0 WWDG_RSTEN 0x1 RW 窗口看门狗WWDG模块软件复位控制:
0:复位
1:不复位

APB1总线模块软件复位配置寄存器(APB1_RESET_CFG)

偏移量:0x198

复位值:0x000001FF

位域 名称 复位值 类型 描述
31:6 Reserved 0x0 RW Reserved
5 Reserved 0x1 RW Reserved
4 Reserved 0x1 RW Reserved
3 UART1_RSTEN 0x1 RW UART1模块软件复位控制:
0:复位
1:不复位
2 UART0_RSTEN 0x1 RW UART0模块软件复位控制:
0:复位
1:不复位
1 GPIO1_RSTEN 0x1 RW GPIO1模块软件复位控制:
0:复位
1:不复位
0 GPIO0_RSTEN 0x1 RW GPIO0模块软件复位控制:
0:复位
1:不复位

唤醒Mask配置寄存器(WAKEUP_MASK_CFG)

偏移量:0x1DC

复位值:0x00000000

位域 名称 复位值 类型 描述
31:17 Reserved 0x0 RW Reserved
16 Reserved 0x0 RW Reserved
15 Reserved 0x0 RW Reserved
14 VDT_INT 0x0 RW VDT模块中断唤醒使能:
0:禁止
1:使能
13 Reserved 0x0 RW Reserved
12 Reserved 0x0 RW Reserved
11 GPIO1_INT 0x0 RW GPIO1模块中断唤醒使能:
0:禁止
1:使能
10 GPIO0_INT 0x0 RW GPIO0模块中断唤醒使能:
0:禁止
1:使能
9 Reserved 0x0 RW Reserved
8 UART1_INT 0x0 RW UART1模块中断唤醒使能:
0:禁止
1:使能
7 UART0_INT 0x0 RW UART0模块中断唤醒使能:
0:禁止
1:使能
6 TIMER1_INT 0x0 RW TIMER1模块中断唤醒使能:
0:禁止
1:使能
5 TIMER0_INT 0x0 RW TIMER0模块中断唤醒使能:
0:禁止
1:使能
4 WWDG_INT 0x0 RW 窗口看门狗WWDG模块中断唤醒使能:
0:禁止
1:使能
3 IWDG_INT 0x0 RW 独立看门狗IWDG模块中断唤醒使能:
0:禁止
1:使能
2 Reserved 0x0 RW Reserved
1 Reserved 0x0 RW Reserved
0 SCU_INT 0x0 RW SCU模块中断唤醒使能:
0:禁止
1:使能

中断状态寄存器(INT_STATE_REG)

偏移量:0x1F4

复位值:0x00000000

位域 名称 复位值 类型 描述
31:17 Reserved 0x0 W1C Reserved
16 Reserved 0x0 W1C Reserved
15 Reserved 0x0 W1C Reserved
14 Reserved 0x0 W1C Reserved
13 Reserved 0x0 W1C Reserved
12 Reserved 0x0 W1C Reserved
11 GPIO1_INT_WAKE 0x0 W1C GPIO1模块中断唤醒状态:
0:中断未引起系统唤醒
1:中断引起系统唤醒,向该位写1清除该状态
10 GPIO0_INT_WAKE 0x0 W1C GPIO0模块中断唤醒状态:
0:中断未引起系统唤醒
1:中断引起系统唤醒,向该位写1清除该状态
9 Reserved 0x0 W1C Reserved
8 UART1_INT_WAKE 0x0 W1C UART1模块中断唤醒状态:
0:中断未引起系统唤醒
1:中断引起系统唤醒,向该位写1清除该状态
7 UART0_INT_WAKE 0x0 W1C UART0模块中断唤醒状态:
0:中断未引起系统唤醒
1:中断引起系统唤醒,向该位写1清除该状态
6 TIMER1_INT_WAKE 0x0 W1C TIMER1模块中断唤醒状态:
0:中断未引起系统唤醒
1:中断引起系统唤醒,向该位写1清除该状态
5 TIMER0_INT_WAKE 0x0 W1C TIMER0模块中断唤醒状态:
0:中断未引起系统唤醒
1:中断引起系统唤醒,向该位写1清除该状态
4 WWDG_INT_WAKE 0x0 W1C 窗口看门狗WWDG模块中断唤醒状态:
0:中断未引起系统唤醒
1:中断引起系统唤醒,向该位写1清除该状态
3 IWDG_INT_WAKE 0x0 W1C 独立看门狗IWDG模块中断唤醒状态:
0:中断未引起系统唤醒
1:中断引起系统唤醒,向该位写1清除该状态
2 Reserved 0x0 W1C Reserved
1 Reserved 0x0 W1C Reserved
0 SCU_INT_WAKE 0x0 W1C SCU模块中断唤醒状态:
0:中断未引起系统唤醒
1:中断引起系统唤醒,向该位写1清除该状态