01-3 系统
系统
复位
概述
复位管理模块对整个芯片的复位、各功能模块的复位进行统一的管理,包括:
- 上电复位的管理和控制
- 外部复位的管理和控制
- WatchDog复位管理和控制
- 安全系统复位管理和控制
- 系统软复位、功能模块单独软复位控制
- 复位信号同步到各模块对应时钟域
- 生成芯片内部各功能模块的复位信号
复位控制
复位信号控制如图1所示。
图 1 复位信号控制图

POR
|
芯片内部上电复位(Power-On-Reset)模块。
|
External reset
|
来自管脚的外部复位信号。
|
POR_ENABLE
|
来自管脚,选择POR复位生效还是External reset生效。
|
wdg_rst_req
|
WatchDog复位请求。
|
sec_rst_req
|
安全系统复位请求。
|
sys_rst_req
|
全局软复位请求信号,源自系统控制器。
|
xx_rst_req
|
子模块单独软复位请求信号,源自CRG控制寄存器。
|
xx_rst_n、sys_rst_n、全局硬复位
|
复位信号。
|
复位信号分类如表1所示。
表 1 复位信号分类表
复位信号类型
|
产生方式
|
用途
|
全局硬复位
|
WatchDog复位请求、安全系统复位请求以及外部复位和内部上电复位POR模块
|
对SOC系统进行全局复位。
|
全局软复位sys_rst_n
|
软件配置系统控制器的全局软复位寄存器
|
复位SOC系统中的所有模块,除了时钟复位电路,测试电路和部分不会被软复位的寄存器。
|
子模块复位xx_rst_n
|
软件配置CRG控制寄存器的子模块复位控制寄存器
|
SOC系统各子模块的单独复位。
|
内部复位和外部复位示意图如图2所示。
图 2 内部复位和外部复位示意图

- POR_ENABLE管脚接1时,选择POR复位生效,外部复位不生效,SYS_RSTN_OUT管脚固定输出复位sys_rst_n。
- POR_ENABLE管脚接0时,选择外部复位生效,POR复位不生效。
须知:
Hi3516CV610-10B/20S/20G无外部复位管脚。
复位配置
上电复位
完成上电复位过程必须同时满足以下条件:
- 内部POR模块产生一个低电平脉冲;且低电平维持时间大于12个XIN晶振时钟周期。
- 晶振时钟输入管脚XIN输入的时钟稳定。
系统复位
实现系统复位有以下途径:
- 上电复位。
- 外部复位。
- WatchDog复位。
- 安全系统复位。
- 全局软复位,通过系统控制器控制。
模块软复位
软复位控制通过配置相应的CRG控制器来实现,具体配置请参见每个模块的复位寄存器描述。
须知:
- 系统软复位请求发出后,整芯片必须等待至少约20ms才完成复位撤销。在这20ms内不能再发系统软复位请求,否则系统状态混乱,可能无法完成复位操作。
- 各模块单独软复位不会自动撤销,例如某模块的复位是配置为1时,模块处于复位状态,必须再配置为0,该模块复位才会撤销。
时钟
概述
时钟管理模块对芯片时钟输入、时钟生成和控制进行统一的管理,包括:
- 时钟输入的管理和控制
- 时钟分频和控制
- 生成各模块的工作时钟
功能框图
时钟管理模块功能框图如图1所示。
图 1 时钟管理模块功能框图

注:图中XIN为PLL输入时钟,固定连接24MHz晶体。
时钟资源分布
时钟管理模块对源自芯片管脚的输入时钟和内部PLL进行配置、控制和管理,产生各模块所需的时钟资源,具体分布示意如图1所示。
图 1 时钟资源分布框图

主要模块可选时钟列表,如表1所示。(具体配置请参考各模块时钟选择寄存器描述)
表 1 主要模块可选时钟列表
模块
|
默认频点
|
所有频点
|
备注
|
A7
|
24MHz
|
24MHz
|
最大工作时钟不能超过950MHz。
|
396MHz
|
475MHz
|
594MHz
|
634MHz
|
792MHz
|
950MHz
|
CFG SYS
|
24MHz
|
24MHz
|
-
|
100MHz
|
DATA AXI
|
24MHz
|
24MHz
|
-
|
198MHz
|
MIPI RX CTRL0/1
|
100MHz
|
100MHz
|
MIPI RX CTRL 0/1独立可选
|
148.5MHz
|
198MHz
|
264MHz
|
297MHz
|
380MHz
|
475MHz
|
VICAP PPC
|
-
|
100MHz
|
Pixel Process Clock
|
148.5MHz
|
198MHz
|
264MHz
|
297MHz
|
380MHz
|
475MHz
|
VICAP ISP0
|
74.25MHz
|
74.25MHz
|
ISP时钟
|
100MHz
|
148.5MHz
|
198MHz
|
264MHz
|
297MHz
|
380MHz(仅离线模式可用)
|
475MHz(仅离线模式可用)
|
AIAO
|
2376MHz
|
2376MHz
|
实际工作频率为此时钟的分频
|
1900MHz
|
FMC
|
24MHz
|
24MHz
|
-
|
100MHz
|
-
|
148.5MHz
|
-
|
198MHz
|
SDR模式仅3.3V可选
|
237.5MHz
|
仅DDR模式可选
|
264MHz
|
仅DDR模式可选
|
297MHz
|
仅DDR模式可选
|
396MHz
|
仅DDR模式3.3V可选
|
SDIO0/eMMC
|
1600KHz
|
1600KHz
|
-
|
100MHz
|
198MHz
|
396MHz
|
594MHz
|
SDIO1
|
1600KHz
|
1600KHz
|
-
|
100MHz
|
198MHz
|
SENSOR0/1
|
74.25MHz
|
74.25MHz
|
SOC输出给sensor的参考时钟
|
72MHz
|
54MHz
|
50MHz
|
37.125MHz
|
36MHz
|
27MHz
|
25MHz
|
24MHz
|
12MHz
|
CRG寄存器概览
CRG寄存器概览如表1所示。
表 1 CRG寄存器概览(基址是0x1101_0000)
偏移地址
|
名称
|
描述
|
0x2000
|
PERI_CRG2048
|
SOC时钟选择寄存器
|
0x2020
|
PERI_CRG2056
|
SOC频率指示寄存器
|
0x2040
|
PERI_CRG2064
|
CPU频率模式及复位配置寄存器
|
0x2044
|
PERI_CRG2065
|
CPU_SUBSYS频率指示寄存器
|
0x204C
|
PERI_CRG2067
|
CPU CORE0/1复位配置寄存器
|
0x2050
|
PERI_CRG2068
|
CPU REE侧写权限控制寄存器
|
0x2240
|
PERI_CRG2192
|
CPU Debug(Coresight)时钟配置寄存器
|
0x2280
|
PERI_CRG2208
|
DDR时钟及复位配置寄存器
|
0x2A80
|
PERI_CRG2720
|
DMAC相关的时钟及软复位控制寄存器
|
0x35C0
|
PERI_CRG3440
|
SDIO0/eMMC接口时钟复位控制寄存器
|
0x35C4
|
PERI_CRG3441
|
SDIO0/eMMC p4 DLL控制寄存器
|
0x35C8
|
PERI_CRG3442
|
SDIO0/eMMC DRV DLL控制寄存器
|
0x35CC
|
PERI_CRG3443
|
SDIO0/eMMC SAM DLL控制寄存器
|
0x35D0
|
PERI_CRG3444
|
SDIO0/eMMC DS DLL控制寄存器
|
0x35D4
|
PERI_CRG3445
|
SDIO0/eMMC边沿检测时钟相位选择寄存器
|
0x35D8
|
PERI_CRG3446
|
SDIO0/eMMC状态寄存器
|
0x36C0
|
PERI_CRG3504
|
SDIO1接口时钟复位控制寄存器
|
0x36C4
|
PERI_CRG3505
|
SDIO1 p4 DLL控制寄存器
|
0x36C8
|
PERI_CRG3506
|
SDIO1 DRV DLL控制寄存器
|
0x36CC
|
PERI_CRG3507
|
SDIO1 SAM DLL控制寄存器
|
0x36D4
|
PERI_CRG3509
|
SDIO1边沿检测时钟相位选择寄存器
|
0x36D8
|
PERI_CRG3510
|
SDIO1状态寄存器
|
0x37CC
|
PERI_CRG3571
|
ETH接口相关的时钟及软复位控制寄存器
|
0x38C0
|
PERI_CRG3632
|
USB2.0 PHY时钟及软复位控制寄存器
|
0x38C8
|
PERI_CRG3634
|
USB2.0 控制器相关的时钟及软复位控制寄存器
|
0x3F40
|
PERI_CRG4048
|
FMC相关的时钟及软复位控制寄存器
|
0x3F44
|
PERI_CRG4049
|
FMC频率指示寄存器
|
0x4180
|
PERI_CRG4192
|
UART0时钟及复位控制寄存器
|
0x4188
|
PERI_CRG4194
|
UART1时钟及复位控制寄存器
|
0x4190
|
PERI_CRG4196
|
UART2时钟及复位控制寄存器
|
0x4280
|
PERI_CRG4256
|
I2C0时钟及复位控制寄存器
|
0x4288
|
PERI_CRG4258
|
I2C1时钟及复位控制寄存器
|
0x4290
|
PERI_CRG4260
|
I2C2时钟及复位控制寄存器
|
0x4480
|
PERI_CRG4384
|
SSP0时钟及复位控制寄存器
|
0x4488
|
PERI_CRG4386
|
SSP1时钟及复位控制寄存器
|
0x4598
|
PERI_CRG4454
|
PWM1时钟软复位控制寄存器
|
0x46C0
|
PERI_CRG4528
|
LSADC时钟软复位控制寄存器
|
0x4740
|
PERI_CRG4560
|
TSENSOR_CTRL时钟软复位控制寄存器
|
0x4750
|
PERI_CRG4564
|
TIMER01时钟软复位控制寄存器
|
0x4754
|
PERI_CRG4565
|
TIMER23时钟软复位控制寄存器
|
0x4768
|
PERI_CRG4570
|
GPIO时钟软复位控制寄存器
|
0x8440
|
PERI_CRG8464
|
SENSOR0时钟复位配置寄存器
|
0x8460
|
PERI_CRG8472
|
SENSOR1时钟复位配置寄存器
|
0x8540
|
PERI_CRG8528
|
MIPI_RX CTRL时钟复位配置寄存器
|
0x8560
|
PERI_CRG8536
|
MIPI_RX PIX0时钟复位配置寄存器
|
0x8580
|
PERI_CRG8544
|
MIPI_RX PIX1时钟复位配置寄存器
|
0x9140
|
PERI_CRG9296
|
VICAP时钟及复位控制寄存器
|
0x9144
|
PERI_CRG9297
|
VICAP复位状态寄存器
|
0x9150
|
PERI_CRG9300
|
VI ISP0时钟及复位控制寄存器
|
0x9154
|
PERI_CRG9301
|
VI ISP1时钟及复位控制寄存器
|
0x9160
|
PERI_CRG9304
|
VI CMOS0时钟及复位控制寄存器
|
0x9164
|
PERI_CRG9305
|
VI PORT0时钟及复位控制寄存器
|
0x9184
|
PERI_CRG9313
|
VI PORT1时钟及复位控制寄存器
|
0xA880
|
PERI_CRG10784
|
AIAO时钟复位控制寄存器
|
0xAA80
|
PERI_CRG10912
|
AUDIO CODEC时钟复位控制寄存器
|
CRG寄存器描述
PERI_CRG2048
PERI_CRG2048为SOC时钟选择寄存器。
Offset Address: 0x2000 Total Reset Value: 0x0000_1000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:11]
|
-
|
reserved
|
保留。
|
0x000002
|
[10:8]
|
RW
|
dataaxi_cksel
|
DATAAXI时钟选择。
000:24MHz;
001:198MHz;
其他:保留。
|
0x0
|
[7]
|
-
|
reserved
|
保留。
|
0x0
|
[6:4]
|
RW
|
cfgsys_cksel
|
CFGSYS时钟选择。
000:24MHz;
001:100MHz;
其他:保留。
|
0x0
|
[3:0]
|
-
|
reserved
|
保留。
|
0x0
|
PERI_CRG2056
PERI_CRG2056为SOC频率指示寄存器。
Offset Address: 0x2020 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:12]
|
-
|
reserved
|
保留。
|
0x00000
|
[11]
|
-
|
reserved
|
保留。
|
0x0
|
[10:8]
|
RO
|
dataaxi_sc_seled
|
DATAAXI时钟切换完成指示信号。
000:24MHz;
001:198MHz;
其他:保留。
|
0x0
|
[7]
|
-
|
reserved
|
保留。
|
0x0
|
[6:4]
|
RO
|
cfgsys_sc_seled
|
CFGSYS时钟切换完成指示信号。
000:24MHz;
001:100MHz;
其他:保留。
|
0x0
|
[3:0]
|
-
|
reserved
|
保留。
|
0x0
|
PERI_CRG2064
PERI_CRG2064为CPU频率模式及复位配置寄存器。
Offset Address: 0x2040 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:21]
|
-
|
reserved
|
保留。
|
0x000
|
[20:18]
|
RW
|
a7_cksel
|
A7时钟选择。
000:24MHz;
001:396MHz;
010:475MHz;
011:594MHz;
100:634MHz;
101:792MHz;
110:950MHz;
111:保留。
|
0x0
|
[17]
|
-
|
reserved
|
保留。
|
0x0
|
[16]
|
RW
|
cs_srst_req
|
CS的软复位请求。
0:撤销复位;
1:复位。
|
0x0
|
[15]
|
-
|
reserved
|
保留。
|
0x0
|
[14]
|
RW
|
socdbg_srst_req
|
SOCDBG的软复位请求。
0:撤销复位;
1:复位。
|
0x0
|
[13]
|
-
|
reserved
|
保留。
|
0x0
|
[12]
|
RW
|
l2_srst_req
|
L2的软复位请求。
0:撤销复位;
1:复位。
|
0x0
|
[11]
|
-
|
reserved
|
保留。
|
0x0
|
[10]
|
RW
|
arm_dbg1_srst_req
|
ARM DBG1的软复位请求。
0:撤销复位;
1:复位。
|
0x0
|
[9:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
arm_dbg0_srst_req
|
ARM DBG0的软复位请求。
0:撤销复位;
1:复位。
|
0x0
|
[3:0]
|
-
|
reserved
|
保留。
|
0x0
|
PERI_CRG2065
PERI_CRG2065为CPU_SUBSYS频率指示寄存器。
Offset Address: 0x2044 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:3]
|
-
|
reserved
|
保留。
|
0x00000000
|
[2:0]
|
RO
|
a7_sc_seled
|
A7 core时钟切换状态指示。
000:24MHz;
001:396MHz;
010:475MHz;
011:594MHz;
100:634MHz;
101:792MHz;
110:950MHz;
111:保留。
|
0x0
|
PERI_CRG2067
PERI_CRG2067为CPU CORE0/1复位配置寄存器。
Offset Address: 0x204C Total Reset Value: 0x0000_0100
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:9]
|
-
|
reserved
|
保留。
|
0x000000
|
[8]
|
RW
|
arm_core1_srst_req
|
ARM CORE1的软复位请求(安全、非安全访问可配)
0:撤销复位;
1:复位。
|
0x1
|
[7:5]
|
-
|
reserved
|
保留。
|
0x0
|
[4]
|
RW
|
arm_core0_srst_req
|
ARM CORE0的软复位请求(安全、非安全访问可配)
0:撤销复位;
1:复位。
|
0x0
|
[3:0]
|
-
|
reserved
|
保留。
|
0x0
|
PERI_CRG2068
PERI_CRG2068为CPU REE侧写权限控制寄存器。
Offset Address: 0x2050 Total Reset Value: 0x0000_000A
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RW
|
cpu_cfg_nonsec_wr_disable
|
CPU REE侧写权限配置信号。(固定在安全侧)
0xA:允许REE写;
其他:不允许REE写。
|
0xA
|
PERI_CRG2192
PERI_CRG2192为CPU Debug (Coresight)时钟配置寄存器。
Offset Address: 0x2240 Total Reset Value: 0x0100_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:25]
|
-
|
reserved
|
保留。
|
0x00
|
[24]
|
RW
|
soc_cs_ckgate_bypass
|
调试通路soc全局门控。
0:不旁路;
1:旁路自动门控。
|
0x1
|
[23:0]
|
-
|
reserved
|
保留。
|
0x000000
|
PERI_CRG2208
PERI_CRG2208为DDR时钟及复位配置寄存器。
Offset Address: 0x2280 Total Reset Value: 0x0000_0710
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:11]
|
-
|
reserved
|
保留。
|
0x000000
|
[10]
|
RW
|
ddr_apb_cken
|
DDR APB门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x1
|
[9]
|
RW
|
ddr_dfi_cken
|
DDRC的dfi_clk门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x1
|
[8]
|
-
|
reserved
|
保留。
|
0x1
|
[7:5]
|
-
|
reserved
|
保留。
|
0x0
|
[4]
|
RW
|
ddr_ref_div_srst_req
|
DDR REF时钟静态分频器的软复位请求。
0:撤销复位;
1:复位。
|
0x1
|
[3:0]
|
-
|
reserved
|
保留。
|
0x0
|
PERI_CRG2720
PERI_CRG2720为DMAC相关的时钟及软复位控制寄存器。
Offset Address: 0x2A80 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:6]
|
-
|
reserved
|
保留。
|
0x0000000
|
[5]
|
RW
|
edma_axi_cken
|
DMAC AXI时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[4]
|
RW
|
edma_apb_cken
|
DMAC APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
edma_srst_req
|
DMAC的软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG3440
PERI_CRG3440为SDIO0/eMMC接口时钟复位控制寄存器。
Offset Address: 0x35C0 Total Reset Value: 0x0007_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:27]
|
-
|
reserved
|
保留。
|
0x00
|
[26:24]
|
RW
|
sdio0_cksel
|
SDIO0/eMMC 4X时钟选择,接口时钟是这个时钟的4分频。
000:1.6MHz;
001:100MHz;
010:198MHz;
011:396MHz;
100:594MHz;
其他:保留。
|
0x0
|
[23:19]
|
-
|
reserved
|
保留。
|
0x00
|
[18]
|
RW
|
sdio0_mmc_tx_srst_req
|
SDIO0/eMMC TX 方向软复位请求。
0:不复位;
1:复位。
|
0x1
|
[17]
|
RW
|
sdio0_mmc_rx_srst_req
|
SDIO0/eMMC RX 方向软复位请求。
0:不复位;
1:复位。
|
0x1
|
[16]
|
RW
|
sdio0_mmc_srst_req
|
SDIO0/eMMC 的软复位请求。
0:不复位;
1:复位。
|
0x1
|
[15:2]
|
-
|
reserved
|
保留。
|
0x0000
|
[1]
|
RW
|
sdio0_mmc_hclk_cken
|
SDIO0/eMMC 总线时钟门控配置。
0:关闭;
1:打开。
|
0x0
|
[0]
|
RW
|
sdio0_mmc_cken
|
SDIO0/eMMC 时钟门控配置。
0:关闭;
1:打开。
|
0x0
|
PERI_CRG3441
PERI_CRG3441为SDIO0/eMMC p4 DLL控制寄存器。
Offset Address: 0x35C4 Total Reset Value: 0x0000_0003
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1]
|
RW
|
sdio0_mmc_dll_srst_req
|
SDIO0/eMMC DLL(Master和Slave)软复位请求。
0:不复位;
1:复位。
|
0x1
|
[0]
|
RW
|
sdio0_p4_dll_stop
|
DLL Master持续动态跟踪检测的使能信号。
0:动态检测,并根据检测参数实时校准相位;
1:Lock后停止动态检测,即DLL初始化后只检测一次。
|
0x1
|
PERI_CRG3442
PERI_CRG3442为SDIO0/eMMC DRV DLL控制寄存器。
Offset Address: 0x35C8 Total Reset Value: 0x0008_0400
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:20]
|
-
|
reserved
|
保留。
|
0x000
|
[19:15]
|
RW
|
sdio0_drv_clk_phase_sel
|
SDIO0/eMMC DRV 时钟相位配置。默认180°
0x00:0°;
0x01:11.25°;
0x02:22.5°;
…
0x1E:337.5°;
0x1F:348.75°。
|
0x10
|
[14:11]
|
RW
|
sdio0_drv_dll_tune
|
SDIO0/eMMC DRV DLL 时钟相位微调信号。
0x0:不校准;
0x1:增加1级delay;
0x2:增加2级delay;
0x3:增加3级delay;
...
0x7:增加7级delay;
0x8:不校准;
0x9:减少1级delay;
0xA:减少2级delay;
0xB:减少3级delay;
...
0xF:减少7级delay。
|
0x0
|
[10]
|
RW
|
sdio0_drv_dll_slave_en
|
SDIO0/eMMC DRV DLL Slave使能信号。
0:不使能DLL Slave;
1:使能DLL Slave。
|
0x1
|
[9]
|
RW
|
sdio0_drv_dll_bypass
|
SDIO0/eMMC DRV DLL Slave 旁路选择信号。
0:正常模式,输出时钟相对输入时钟移相,具体移相度数由SDIO0控制器相关寄存器配置;
1:旁路掉DRV DLL Slave。
|
0x0
|
[8]
|
RW
|
sdio0_drv_dll_mode
|
SDIO0/eMMC DRV DLL Slave模式选择信号。
0:正常模式;
1:由drv_dll_sel控制drv slave line级数。
|
0x0
|
[7:0]
|
RW
|
sdio0_drv_dll_ssel
|
SDIO0/eMMC DRV DLL Slave line级数选择。
其中[7:6]保留。
0x00:DLL slave设置1级delay cell
0x01:DLL slave设置1级delay cell
0x02:DLL slave设置2级delay cell
……
0x3F:DLL slave设置63级delay cell
|
0x00
|
PERI_CRG3443
PERI_CRG3443为SDIO0/eMMC SAM DLL控制寄存器。
Offset Address: 0x35CC Total Reset Value: 0x0000_0400
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:15]
|
-
|
reserved
|
保留。
|
0x00000
|
[14:11]
|
RW
|
sdio0_sam_dll_tune
|
SDIO0/eMMC SAM DLL 时钟相位微调信号:
0x0:不校准;
0x1:增加1级delay;
0x2:增加2级delay;
0x3:增加3级delay;
...
0x7:增加7级delay;
0x8:不校准;
0x9:减少1级delay;
0xA:减少2级delay;
0xB:减少3级delay;
...
0xF:减少7级delay。
|
0x0
|
[10]
|
RW
|
sdio0_sam_dll_slave_en
|
SDIO0/eMMC sam DLL Slave使能信号。
0:不使能DLL Slave;
1:使能DLL Slave。
|
0x1
|
[9]
|
-
|
reserved
|
保留。
|
0x0
|
[8]
|
RW
|
sdio0_sam_dll_mode
|
SDIO0/eMMC SAM DLL Slave模式选择信号。
0:正常模式;
1:由sam_dll_ssel控制sam slave line级数。
|
0x0
|
[7:0]
|
RW
|
sdio0_sam_dll_ssel
|
SDIO0/eMMC SAM DLL Slave line级数选择。
其中[7:6]保留。
0x00:DLL slave设置1级delay cell
0x01:DLL slave设置1级delay cell
0x02:DLL slave设置2级delay cell
……
0x3F:DLL slave设置63级delay cell
|
0x00
|
PERI_CRG3444
PERI_CRG3444为SDIO0/eMMC DS DLL控制寄存器。
Offset Address: 0x35D0 Total Reset Value: 0x0000_0400
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:15]
|
-
|
reserved
|
保留。
|
0x00000
|
[14:11]
|
RW
|
sdio0_ds_dll_tune
|
SDIO0/eMMC DS DLL时钟相位微调信号。
0x0:不校准;
0x1:增加1级delay;
0x2:增加2级delay;
0x3:增加3级delay;
...
0x7:增加7级delay;
0x8:不校准;
0x9:减少1级delay;
0xA:减少2级delay;
0xB:减少3级delay;
...
0xF:减少7级delay。
|
0x0
|
[10]
|
RW
|
sdio0_ds_dll_slave_en
|
SDIO0/eMMC DS DLL Slave使能信号。
0:不使能DLL Slave;
1:使能DLL Slave。
|
0x1
|
[9]
|
RW
|
sdio0_ds_dll_bypass
|
SDIO0/eMMC DS DLL Slave旁路选择信号。
0:正常模式,输出时钟相对输入时钟移相,具体移相度数由SDIO控制器相关寄存器配置;
1:旁路掉DRV DLL Slave。
|
0x0
|
[8]
|
RW
|
sdio0_ds_dll_mode
|
SDIO0/eMMC DS DLL Slave模式选择信号。
0:正常模式;
1:由ds_dll_ssel控制ds slave line级数。
|
0x0
|
[7:0]
|
RW
|
sdio0_ds_dll_ssel
|
SDIO0/eMMC DS DLL Slave line级数选择,其中[7]保留。
0x00:DLL slave设置0级delay cell
0x01:DLL slave设置1级delay cell
0x02:DLL slave设置2级delay cell
……
0x3F:DLL slave设置63级delay cell
……
|
0x00
|
PERI_CRG3445
PERI_CRG3445为SDIO0/eMMC边沿检测时钟相位选择寄存器。
Offset Address: 0x35D4 Total Reset Value: 0x0000_0008
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:5]
|
-
|
reserved
|
保留。
|
0x0000000
|
[4:0]
|
RW
|
sdio0_sample_b_cclk_sel
|
边沿检测时钟相位(相对于sample时钟)选择信号:
0x04: 45ºC
0x08: 90ºC(上电默认值)
……
0x1C: 315ºC
注意:[1:0] 必须为00。
|
0x08
|
PERI_CRG3446
PERI_CRG3446为SDIO0/eMMC状态寄存器。
Offset Address: 0x35D8 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:17]
|
-
|
reserved
|
保留。
|
0x0000
|
[16:13]
|
RO
|
reserved
|
保留。
|
0x0
|
[12]
|
RO
|
sdio0_sam_dll_ready
|
SDIO0/eMMC sam DLL ready信号。
0:DLL SLAVE not ready;
1:DLL SLAVE ready。
|
0x0
|
[11]
|
RO
|
sdio0_drv_dll_ready
|
SDIO0/eMMC drv DLL ready信号。
0:DLL SLAVE not ready;
1:DLL SLAVE ready。
|
0x0
|
[10]
|
RO
|
sdio0_ds_dll_ready
|
SDIO0/eMMC DS DLL ready信号。
0:DLL SLAVE not ready;
1:DLL SLAVE ready。
|
0x0
|
[9]
|
RO
|
sdio0_p4_dll_locked
|
SDIO0/eMMC P4 DLL lock信号。
0:DLL MASTER unlock;
1:DLL MASTER locked。
|
0x0
|
[8]
|
RO
|
sdio0_p4_dll_overflow
|
SDIO0/eMMC P4 DLL overflow信号。
0:DLL MASTER unoverflow;
1:DLL MASTER overflow。
|
0x0
|
[7:0]
|
RO
|
sdio0_p4_dll_mdly_tap
|
SDIO0/eMMC P4 DLL mdly_tap信号。
DLL MASTER LINE tap值。
|
0x00
|
PERI_CRG3504
PERI_CRG3504为SDIO1接口时钟复位控制寄存器。
Offset Address: 0x36C0 Total Reset Value: 0x0007_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:27]
|
-
|
reserved
|
保留。
|
0x00
|
[26:24]
|
RW
|
sdio1_cksel
|
SDIO1 4X时钟选择,接口时钟是这个时钟的4分频。
000:1.6MHz;
001:100MHz;
010:198MHz;
其他:保留。
|
0x0
|
[23:19]
|
-
|
reserved
|
保留。
|
0x00
|
[18]
|
RW
|
sdio1_mmc_tx_srst_req
|
SDIO1 TX 方向软复位请求。
0:不复位;
1:复位。
|
0x1
|
[17]
|
RW
|
sdio1_mmc_rx_srst_req
|
SDIO1 RX 方向软复位请求。
0:不复位;
1:复位。
|
0x1
|
[16]
|
RW
|
sdio1_mmc_srst_req
|
SDIO1 的软复位请求。
0:不复位;
1:复位。
|
0x1
|
[15:2]
|
-
|
reserved
|
保留。
|
0x0000
|
[1]
|
RW
|
sdio1_mmc_hclk_cken
|
SDIO1 总线时钟门控配置。
0:关闭;
1:打开。
|
0x0
|
[0]
|
RW
|
sdio1_mmc_cken
|
SDIO1 时钟门控配置。
0:关闭;
1:打开。
|
0x0
|
PERI_CRG3505
PERI_CRG3505为SDIO1 p4 DLL控制寄存器。
Offset Address: 0x36C4 Total Reset Value: 0x0000_0003
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1]
|
RW
|
sdio1_mmc_dll_srst_req
|
SDIO1 DLL(Master和Slave)软复位请求。
0:不复位;
1:复位。
|
0x1
|
[0]
|
RW
|
sdio1_p4_dll_stop
|
DLL Master持续动态跟踪检测的使能信号。
0:动态检测,并根据检测参数实时校准相位;
1:Lock后停止动态检测,即DLL初始化后只检测一次。
|
0x1
|
PERI_CRG3506
PERI_CRG3506为SDIO1 DRV DLL控制寄存器。
Offset Address: 0x36C8 Total Reset Value: 0x0008_0400
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:20]
|
-
|
reserved
|
保留。
|
0x000
|
[19:15]
|
RW
|
sdio1_drv_clk_phase_sel
|
SDIO1 DRV 时钟相位配置。默认180°
0x00:0°;
0x01:11.25°;
0x02:22.5°;
…
0x1E:337.5°;
0x1F:348.75°。
|
0x10
|
[14:11]
|
RW
|
sdio1_drv_dll_tune
|
SDIO1 DRV DLL 时钟相位微调信号:
0x0:不校准;
0x1:增加1级delay;
0x2:增加2级delay;
0x3:增加3级delay;
...
0x7:增加7级delay;
0x8:不校准;
0x9:减少1级delay;
0xA:减少2级delay;
0xB:减少3级delay;
...
0xF:减少7级delay。
|
0x0
|
[10]
|
RW
|
sdio1_drv_dll_slave_en
|
SDIO1 DRV DLL Slave使能信号。
0:不使能DLL Slave;
1:使能DLL Slave。
|
0x1
|
[9]
|
RW
|
sdio1_drv_dll_bypass
|
SDIO1 DRV DLL Slave 旁路选择信号。
0:正常模式,输出时钟相对输入时钟移相,具体移相度数由SDIO1控制器相关寄存器配置;
1:旁路掉DRV DLL Slave。
|
0x0
|
[8]
|
RW
|
sdio1_drv_dll_mode
|
SDIO1 DRV DLL Slave模式选择信号。
0:正常模式;
1:由drv_dll_sel控制drv slave line级数。
|
0x0
|
[7:0]
|
RW
|
sdio1_drv_dll_ssel
|
SDIO1 DRV DLL Slave line级数选择。
其中[7:6]保留。
0x00:DLL slave设置1级delay cell
0x01:DLL slave设置1级delay cell
0x02:DLL slave设置2级delay cell
……
0x3F:DLL slave设置63级delay cell
|
0x00
|
PERI_CRG3507
PERI_CRG3507为SDIO1 SAM DLL控制寄存器。
Offset Address: 0x36CC Total Reset Value: 0x0000_0400
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:15]
|
-
|
reserved
|
保留。
|
0x00000
|
[14:11]
|
RW
|
sdio1_sam_dll_tune
|
SDIO1 SAM DLL 时钟相位微调信号。
0x0:不校准;
0x1:增加1级delay;
0x2:增加2级delay;
0x3:增加3级delay;
...
0x7:增加7级delay;
0x8:不校准;
0x9:减少1级delay;
0xA:减少2级delay;
0xB:减少3级delay;
...
0xF:减少7级delay。
|
0x0
|
[10]
|
RW
|
sdio1_sam_dll_slave_en
|
SDIO1 SAM DLL Slave使能信号。
0:不使能DLL Slave;
1:使能DLL Slave。
|
0x1
|
[9]
|
-
|
reserved
|
保留。
|
0x0
|
[8]
|
RW
|
sdio1_sam_dll_mode
|
SDIO1 SAM DLL Slave模式选择信号。
0:正常模式;
1:由sam_dll_ssel控制sam slave line级数。
|
0x0
|
[7:0]
|
RW
|
sdio1_sam_dll_ssel
|
SDIO1 SAM DLL Slave line级数选择。
其中[7:6]保留。
0x00:DLL slave设置1级delay cell
0x01:DLL slave设置1级delay cell
0x02:DLL slave设置2级delay cell
……
0x3F:DLL slave设置63级delay cell
|
0x00
|
PERI_CRG3509
PERI_CRG3509为SDIO1边沿检测时钟相位选择寄存器。
Offset Address: 0x36D4 Total Reset Value: 0x0000_0008
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:5]
|
-
|
reserved
|
保留。
|
0x0000000
|
[4:0]
|
RW
|
sdio1_sample_b_cclk_sel
|
边沿检测时钟相位(相对于sample时钟)选择信号:
0x04: 45ºC
0x08: 90ºC(上电默认值)
……
0x1C: 315ºC
注意:[1:0] 必须为00。
|
0x08
|
PERI_CRG3510
PERI_CRG3510为SDIO1状态寄存器。
Offset Address: 0x36D8 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:13]
|
-
|
reserved
|
保留。
|
0x00000
|
[12]
|
RO
|
sdio1_sam_dll_ready
|
SDIO1 SAM DLL ready信号。
0:DLL SLAVE not ready;
1:DLL SLAVE ready。
|
0x0
|
[11]
|
RO
|
sdio1_drv_dll_ready
|
SDIO1 DRV DLL ready信号。
0:DLL SLAVE not ready;
1:DLL SLAVE ready。
|
0x0
|
[10]
|
-
|
reserved
|
保留。
|
0x0
|
[9]
|
RO
|
sdio1_p4_dll_locked
|
SDIO1 P4 DLL lock信号。
0:DLL MASTER unlock;
1:DLL MASTER locked。
|
0x0
|
[8]
|
RO
|
sdio1_p4_dll_overflow
|
SDIO1 P4 DLL overflow信号。
0:DLL MASTER unoverflow;
1:DLL MASTER overflow。
|
0x0
|
[7:0]
|
RO
|
sdio1_p4_dll_mdly_tap
|
SDIO1 P4 DLL mdly_tap信号。
DLL MASTER LINE tap值。
|
0x00
|
PERI_CRG3571
PERI_CRG3571为ETH接口相关的时钟及软复位控制寄存器。
Offset Address: 0x37CC Total Reset Value: 0x0000_0009
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7]
|
RW
|
ethcore_cksel
|
ETH 时钟源选择。
0:61MHz;
1:100MHz。
|
0x0
|
[6:4]
|
-
|
reserved
|
保留。
|
0x0
|
[3]
|
RW
|
fephy_srst_req
|
FEPHY软复位请求。
0:撤销复位;
1:复位。
|
0x1
|
[2]
|
RW
|
fephy_cken
|
FEPHY时钟门控。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[1]
|
RW
|
eth_cken
|
ETH时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[0]
|
RW
|
hrst_eth_s
|
ETH的软复位请求。
0:撤销复位;
1:复位。
|
0x1
|
PERI_CRG3632
PERI_CRG3632为USB2.0 PHY时钟及软复位控制寄存器。
Offset Address: 0x38C0 Total Reset Value: 0x0000_0033
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:6]
|
RO
|
reserved
|
保留。
|
0x0000000
|
[5]
|
RW
|
usb2_phy_ref_pll_cken
|
USB2.0 PHY0 PLL参考时钟门控。
0:关闭时钟;
1:打开时钟。
|
0x1
|
[4]
|
RW
|
usb2_phy_ref_xtal_cken
|
USB2.0 PHY0 XTAL参考时钟门控。
0:关闭时钟;
1:打开时钟。
|
0x1
|
[3]
|
RO
|
reserved
|
保留。
|
0x0
|
[2]
|
RW
|
usb2_phy_apb_rst_req
|
USB2.0 PHY0 寄存器软复位请求。
0:不复位;
1:复位。
|
0x0
|
[1]
|
RW
|
usb2_phy_utmi_rst_req
|
USB2.0 PHY0 数字软复位请求。
0:不复位;
1:复位。
|
0x1
|
[0]
|
RW
|
usb2_phy_rst_req
|
USB2.0 PHY0 全局软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG3634
PERI_CRG3634为USB2.0 控制器相关的时钟及软复位控制寄存器。
Offset Address: 0x38C8 Total Reset Value: 0x0001_0131
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:17]
|
RO
|
reserved
|
保留。
|
0x0000
|
[16]
|
RW
|
usb2_freeclk_cksel
|
USB2.0 控制器UTMI时钟源选择。
0:选择UTMI时钟;
1:选择FREE 60MHz时钟。
|
0x1
|
[15:9]
|
RO
|
reserved
|
保留。
|
0x00
|
[8]
|
RW
|
usb2_utmi_cken
|
USB2.0 控制器UTMI时钟门控。
0:关闭时钟;
1:打开时钟。
|
0x1
|
[7:6]
|
RO
|
reserved
|
保留。
|
0x0
|
[5]
|
RW
|
usb2_ref_cken
|
USB2.0 控制器REF时钟门控。
0:关闭时钟;
1:打开时钟。
|
0x1
|
[4]
|
RW
|
usb2_bus_cken
|
USB2.0 控制器BUS时钟门控。
0:关闭时钟;
1:打开时钟。
|
0x1
|
[3:1]
|
RO
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
usb2_srst_req
|
USB2.0 控制器软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG4048
PERI_CRG4048为FMC相关的时钟及软复位控制寄存器。
Offset Address: 0x3F40 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:15]
|
-
|
reserved
|
保留。
|
0x00000
|
[14:12]
|
RW
|
fmc_cksel
|
FMC 时钟源选择。(SDR模式下,PHY_CLK_OUT为原时钟的DIV2;DDR模式下,为原时钟的DIV4)
000:24MHz;
001:100MHz;
010:148.5MHz;
011:198MHz;(SDR模式仅3.3V可选)
100:237.5MHz;(仅DDR模式可选)
101:264MHz;(仅DDR模式可选)
110:297MHz;(仅DDR模式可选)
111:396MHz。(仅DDR模式3.3V可选)
|
0x0
|
[11:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
fmc_cken
|
FMC时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
fmc_srst_req
|
FMC的软复位请求。
0:撤销复位;
1:复位。
|
0x1
|
PERI_CRG4049
PERI_CRG4049为FMC频率指示寄存器。
Offset Address: 0x3F44 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:11]
|
-
|
reserved
|
保留。
|
0x000000
|
[10:8]
|
RO
|
fmc_sc_seled
|
FMC 时钟切换完成指示信号。
000:24MHz;
001:100MHz;
010:148.5MHz;
011:198MHz;(SDR模式仅3.3V可选)
100:237.5MHz;(仅DDR模式可选)
101:264MHz;(仅DDR模式可选)
110:297MHz;(仅DDR模式可选)
111:396MHz。(仅DDR模式3.3V可选)
|
0x0
|
[7:0]
|
-
|
reserved
|
保留。
|
0x00
|
PERI_CRG4192
PERI_CRG4192为UART0时钟及复位控制寄存器。
Offset Address: 0x4180 Total Reset Value: 0x0000_2001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:14]
|
-
|
reserved
|
保留。
|
0x00000
|
[13:12]
|
RW
|
uart0_cksel
|
UART0 时钟选择。
00:100MHz;
01:50MHz;
10:24MHz;
11:3MHz。
|
0x2
|
[11:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
uart0_cken
|
UART0时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
uart0_srst_req
|
UART0的软复位请求。
0:撤销复位;
1:复位。
|
0x1
|
PERI_CRG4194
PERI_CRG4194为UART1时钟及复位控制寄存器。
Offset Address: 0x4188 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:14]
|
-
|
reserved
|
保留。
|
0x00000
|
[13:12]
|
RW
|
uart1_cksel
|
UART1时钟选择。
00:100MHz;
01:50MHz;
10:24MHz;
11:3MHz。
|
0x0
|
[11:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
uart1_cken
|
UART1时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
uart1_srst_req
|
UART1的软复位请求。
0:撤销复位;
1:复位。
|
0x1
|
PERI_CRG4196
PERI_CRG4196为UART2时钟及复位控制寄存器。
Offset Address: 0x4190 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:14]
|
-
|
reserved
|
保留。
|
0x00000
|
[13:12]
|
RW
|
uart2_cksel
|
UART2 时钟选择。
00:100MHz;
01:50MHz;
10:24MHz;
11:3MHz。
|
0x0
|
[11:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
uart2_cken
|
UART2时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
uart2_srst_req
|
UART2的软复位请求。
0:撤销复位;
1:复位。
|
0x1
|
PERI_CRG4256
PERI_CRG4256为I2C0时钟及复位控制寄存器。
Offset Address: 0x4280 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:13]
|
-
|
reserved
|
保留。
|
0x00000
|
[12]
|
RW
|
i2c0_cksel
|
I2C0时钟选择。
0:50MHz;
1:100MHz。
|
0x0
|
[11:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
i2c0_cken
|
I2C0时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
i2c0_srst_req
|
I2C0的软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG4258
PERI_CRG4258为I2C1时钟及复位控制寄存器。
Offset Address: 0x4288 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:13]
|
-
|
reserved
|
保留。
|
0x00000
|
[12]
|
RW
|
i2c1_cksel
|
I2C1 时钟选择。
0:50MHz;
1:100MHz。
|
0x0
|
[11:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
i2c1_cken
|
I2C1时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
i2c1_srst_req
|
I2C1的软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG4260
PERI_CRG4260为I2C2时钟及复位控制寄存器。
Offset Address: 0x4290 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:13]
|
-
|
reserved
|
保留。
|
0x00000
|
[12]
|
RW
|
i2c2_cksel
|
I2C2 时钟选择。
0:50MHz;
1:100MHz。
|
0x0
|
[11:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
i2c2_cken
|
I2C2 时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
i2c2_srst_req
|
I2C2 的软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG4384
PERI_CRG4384为SSP0时钟及复位控制寄存器。
Offset Address: 0x4480 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:5]
|
-
|
reserved
|
保留。
|
0x0000000
|
[4]
|
RW
|
ssp0_cken
|
SSP0时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
ssp0_srst_req
|
SSP0的软复位请求。
0:撤销复位;
1:复位。
|
0x1
|
PERI_CRG4386
PERI_CRG4386为SSP1时钟及复位控制寄存器。
Offset Address: 0x4488 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:5]
|
-
|
reserved
|
保留。
|
0x0000000
|
[4]
|
RW
|
ssp1_cken
|
SSP1时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
ssp1_srst_req
|
SSP1的软复位请求。
0:撤销复位;
1:复位。
|
0x1
|
PERI_CRG4454
PERI_CRG4454为PWM1时钟软复位控制寄存器。
Offset Address: 0x4598 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:14]
|
-
|
reserved
|
保留。
|
0x00000
|
[13:12]
|
RW
|
pwm1_cksel
|
PWM1时钟选择。
00:1MHz;
01:24MHz;
10:198MHz;
11:保留。
|
0x0
|
[11:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
pwm1_cken
|
PWM1时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
pwm1_srst_req
|
PWM1的软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG4528
PERI_CRG4528为LSADC时钟软复位控制寄存器。
Offset Address: 0x46C0 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:5]
|
-
|
reserved
|
保留。
|
0x0000000
|
[4]
|
RW
|
lsadc_cken
|
LSADC时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
lsadc_srst_req
|
LSADC的软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG4560
PERI_CRG4560为TSENSOR_CTRL时钟软复位控制寄存器。
Offset Address: 0x4740 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:5]
|
-
|
reserved
|
保留。
|
0x0000000
|
[4]
|
RW
|
tsensor_ctrl_cken
|
TSENSOR_CTRL 工作时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
tsensor_ctrl_pclk_cken
|
TSENSOR_CTRL APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
PERI_CRG4564
PERI_CRG4564为TIMER01时钟软复位控制寄存器。
Offset Address: 0x4750 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:5]
|
-
|
reserved
|
保留。
|
0x0000000
|
[4]
|
RW
|
timer01_cken
|
TIMER01 工作时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
timer01_pclk_cken
|
TIMER01 APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
PERI_CRG4565
PERI_CRG4565为TIMER23时钟软复位控制寄存器。
Offset Address: 0x4754 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:5]
|
-
|
reserved
|
保留。
|
0x0000000
|
[4]
|
RW
|
timer23_cken
|
TIMER23 工作时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
timer23_pclk_cken
|
TIMER23 APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
PERI_CRG4570
PERI_CRG4570为GPIO时钟软复位控制寄存器。
Offset Address: 0x4768 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:11]
|
-
|
reserved
|
保留。
|
0x000000
|
[10]
|
RW
|
gpio10_pclk_cken
|
GPIO10 APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[9]
|
RW
|
gpio9_pclk_cken
|
GPIO9 APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[8]
|
RW
|
gpio8_pclk_cken
|
GPIO8 APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[7]
|
RW
|
gpio7_pclk_cken
|
GPIO7 APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[6]
|
RW
|
gpio6_pclk_cken
|
GPIO6 APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[5]
|
RW
|
gpio5_pclk_cken
|
GPIO5 APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[4]
|
RW
|
gpio4_pclk_cken
|
GPIO4 APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3]
|
RW
|
gpio3_pclk_cken
|
GPIO3 APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[2]
|
RW
|
gpio2_pclk_cken
|
GPIO2 APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[1]
|
RW
|
gpio1_pclk_cken
|
GPIO1 APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[0]
|
RW
|
gpio0_pclk_cken
|
GPIO0 APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x1
|
PERI_CRG8464
PERI_CRG8464为SENSOR0时钟复位配置寄存器。
Offset Address: 0x8440 Total Reset Value: 0x0000_0003
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:17]
|
-
|
reserved
|
保留。
|
0x0000
|
[16]
|
RW
|
clk_sensor0_pctrl
|
SENSOR0时钟相位控制。
0:时钟不取反;
1:时钟取反。
|
0x0
|
[15:12]
|
RW
|
sensor0_cksel
|
SENSOR0时钟(芯片输出给sensor的参考时钟)选择。
0x0:74.25MHz;
0x1:72MHz;
0x2:54MHz;
0x3:50MHz;
0x4:24MHz;
0x8:37.125MHz;
0x9:36MHz;
0xA:27MHz;
0xB:25MHz;
0xC:12MHz;
其他:保留。
|
0x0
|
[11:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
sensor0_cken
|
SENSOR0时钟(芯片输出给sensor的参考时钟)门控。
0:时钟关闭;
1:时钟打开。
|
0x0
|
[3:2]
|
-
|
reserved
|
保留。
|
0x0
|
[1]
|
RW
|
sensor0_ctrl_srst_req
|
SENSOR0 从模式控制模块软复位请求。
0:不复位;
1:复位。
|
0x1
|
[0]
|
RW
|
sensor0_srst_req
|
SENSOR0 软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG8472
PERI_CRG8472为SENSOR1时钟复位配置寄存器。
Offset Address: 0x8460 Total Reset Value: 0x0000_0003
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:17]
|
-
|
reserved
|
保留。
|
0x0000
|
[16]
|
RW
|
clk_sensor1_pctrl
|
SENSOR1时钟相位控制。
0:时钟不取反;
1:时钟取反。
|
0x0
|
[15:12]
|
RW
|
sensor1_cksel
|
SENSOR1时钟(芯片输出给sensor的参考时钟)选择。
0x0:74.25MHz;
0x1:72MHz;
0x2:54MHz;
0x3:50MHz;
0x4:24MHz;
0x8:37.125MHz;
0x9:36MHz;
0xA:27MHz;
0xB:25MHz;
0xC:12MHz;
其他:保留。
|
0x0
|
[11:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
sensor1_cken
|
SENSOR1时钟(芯片输出给sensor的参考时钟)门控。
0:时钟关闭;
1:时钟打开。
|
0x0
|
[3:2]
|
-
|
reserved
|
保留。
|
0x0
|
[1]
|
RW
|
sensor1_ctrl_srst_req
|
SENSOR1从模式控制模块软复位请求。
0:不复位;
1:复位。
|
0x1
|
[0]
|
RW
|
sensor1_srst_req
|
SENSOR1 软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG8528
PERI_CRG8528为MIPI_RX CTRL时钟复位配置寄存器。
Offset Address: 0x8540 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:22]
|
-
|
reserved
|
保留。
|
0x000
|
[21]
|
RW
|
mipirx_hs1_pctrl
|
MIPI PHY HS1接口时钟相位控制。默认正向。
0:时钟不取反;
1:时钟取反。
|
0x0
|
[20]
|
RW
|
mipirx_hs0_pctrl
|
MIPI PHY HS0接口时钟相位控制。默认正向。
0:时钟不取反;
1:时钟取反。
|
0x0
|
[19:6]
|
-
|
reserved
|
保留。
|
0x0000
|
[5]
|
RW
|
mipirx_bus_cken
|
MIPI 总线逻辑时钟门控。
0:时钟关闭;
1:时钟打开。
|
0x0
|
[4]
|
RW
|
cil_cken
|
MIPI CIL逻辑时钟门控。
0:时钟关闭;
1:时钟打开。
|
0x0
|
[3]
|
RW
|
cbar_cken
|
MIPI CBAR时钟门控。
0:时钟关闭;
1:时钟打开。
|
0x0
|
[2:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
mipirx_bus_srst_req
|
MIPI 总线逻辑软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG8536
PERI_CRG8536为MIPI_RX PIX0时钟复位配置寄存器。
Offset Address: 0x8560 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:5]
|
-
|
reserved
|
保留。
|
0x0000000
|
[4]
|
RW
|
mipi_pix0_cken
|
MIPI PIX0 时钟门控。
0:时钟关闭;
1:时钟打开。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
mipi_pix0_core_srst_req
|
MIPI PIX0的CORE逻辑软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG8544
PERI_CRG8544为MIPI_RX PIX1时钟复位配置寄存器。
Offset Address: 0x8580 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:5]
|
-
|
reserved
|
保留。
|
0x0000000
|
[4]
|
RW
|
mipi_pix1_cken
|
MIPI PIX1 时钟门控。
0:时钟关闭;
1:时钟打开。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
mipi_pix1_core_srst_req
|
MIPI PIX1的CORE逻辑软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG9296
PERI_CRG9296为VICAP时钟及复位控制寄存器。
Offset Address: 0x9140 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:15]
|
-
|
reserved
|
保留。
|
0x00000
|
[14:12]
|
RW
|
vi_sc_cksel
|
VI SC时钟选择。
000:保留;
001:100MHz;
010:148.5MHz;
011:198MHz;
100:264MHz;
101:297MHz;
110:380MHz;
111:475MHz。
|
0x0
|
[11:6]
|
-
|
reserved
|
保留。
|
0x00
|
[5]
|
RW
|
vi_bus_cken
|
VI BUS 时钟门控。
0:时钟关闭;
1:时钟打开。
|
0x0
|
[4]
|
RW
|
vi_sc_cken
|
VI SC时钟门控。
0:时钟关闭;
1:时钟打开。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
vicap_srst_req
|
VICAP 软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG9297
PERI_CRG9297为VICAP复位状态寄存器。
Offset Address: 0x9144 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留。
|
0x00000000
|
[0]
|
RO
|
vicap_softrst_state
|
VICAP复位状态。
0:复位未完成;
1:复位完成,可以撤销软复位。
|
0x0
|
PERI_CRG9300
PERI_CRG9300为VI ISP0时钟及复位控制寄存器。
Offset Address: 0x9150 Total Reset Value: 0x0000_0003
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:15]
|
-
|
reserved
|
保留。
|
0x00000
|
[14:12]
|
RW
|
isp0_cksel
|
ISP0时钟选择。
000:74.25MHz;
001:100MHz;
010:148.5MHz;
011:198MHz;
100:264MHz;
101:297MHz;
110:380MHz;
111:475MHz。
|
0x0
|
[11:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
isp0_cken
|
ISP0时钟门控。
0:时钟关闭;
1:时钟打开。
|
0x0
|
[3:2]
|
-
|
reserved
|
保留。
|
0x0
|
[1]
|
RW
|
isp0_core_srst_req
|
ISP0 core软复位请求。
0:不复位;
1:复位。
|
0x1
|
[0]
|
RW
|
isp0_cfg_srst_req
|
ISP0 cfg软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG9301
PERI_CRG9301为VI ISP1时钟及复位控制寄存器。
Offset Address: 0x9154 Total Reset Value: 0x0000_0003
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:2]
|
-
|
reserved
|
保留。
|
0x0
|
[1]
|
RW
|
isp1_core_srst_req
|
ISP1 core软复位请求。
0:不复位;
1:复位。
|
0x1
|
[0]
|
RW
|
isp1_cfg_srst_req
|
ISP1 cfg软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG9304
PERI_CRG9304为VI CMOS0时钟及复位控制寄存器。
Offset Address: 0x9160 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:21]
|
-
|
reserved
|
保留。
|
0x000
|
[20]
|
RW
|
vi_cmos_pctrl
|
VI CMOS时钟相位控制。
0:时钟不取反;
1:时钟取反。
|
0x0
|
[19:0]
|
-
|
reserved
|
保留。
|
0x00000
|
PERI_CRG9305
PERI_CRG9305为VI PORT0时钟及复位控制寄存器。
Offset Address: 0x9164 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:15]
|
-
|
reserved
|
保留。
|
0x00000
|
[14:12]
|
RW
|
vi_p0_cksel
|
MIPI CTRL Pixel0 时钟选择。
000:100MHz;
001:VI_PORT0(由MISC_CTRL的vi_port0_input_sel选择为CMOS 时钟);010:148.5MHz;
011:198MHz;
100:264MHz;
101:297MHz;
110:380MHz;
111:475MHz。
|
0x0
|
[11:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
vi0_cken
|
VI PORT0 时钟门控。
0:时钟关闭;
1:时钟打开。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
vi_p0_srst_req
|
VI PORT0软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG9313
PERI_CRG9313为VI PORT1时钟及复位控制寄存器。
Offset Address: 0x9184 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:15]
|
-
|
reserved
|
保留。
|
0x00000
|
[14:12]
|
RW
|
vi_p1_cksel
|
MIPI CTRL Pixel1 时钟选择。
000:100MHz;
001:VI_PORT1(由MISC_CTRL的vi_port1_input_sel选择为CMOS 时钟);
010:148.5MHz;
011:198MHz;
100:264MHz;
101:297MHz;
110:380MHz;
111:475MHz。
|
0x0
|
[11:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
vi1_cken
|
VI PORT1 时钟门控。
0:时钟关闭;
1:时钟打开。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
vi_p1_srst_req
|
VI PORT1软复位请求。
0:不复位;
1:复位。
|
0x1
|
PERI_CRG10784
PERI_CRG10784为AIAO时钟复位控制寄存器。
Offset Address: 0xA880 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:15]
|
-
|
reserved
|
保留。
|
0x00000
|
[14:13]
|
RW
|
aiao_cksel
|
AIAO控制器工作时钟选择。
00:24MHz;
01:50MHz;
10:100MHz;
11:保留。
|
0x0
|
[12]
|
RW
|
aiao_pll_cksel
|
AIAO 时钟选择配置寄存器。
0:2376MHz;
1:1900MHz。
|
0x0
|
[11:6]
|
-
|
reserved
|
保留。
|
0x00
|
[5]
|
RW
|
aiao_cken
|
AIAO 时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[4]
|
RW
|
aiao_pll_cken
|
AIAO PLL时钟门控。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
aiao_srst_req
|
AIAO 软复位请求。
0:撤销复位;
1:复位。
|
0x1
|
PERI_CRG10912
PERI_CRG10912为AUDIO CODEC时钟复位控制寄存器。
Offset Address: 0xAA80 Total Reset Value: 0x0000_0003
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:5]
|
-
|
reserved
|
保留。
|
0x0000000
|
[4]
|
RW
|
codec_apb_cken
|
AUDIO CODEC的APB时钟门控配置寄存器。
0:关闭时钟;
1:打开时钟。
|
0x0
|
[3:2]
|
-
|
reserved
|
保留。
|
0x0
|
[1]
|
RW
|
codec_ana_rst_req
|
AUDIO CODEC模拟部分复位请求。(复位时间至少持续0.5us)
0:撤销复位;
1:复位。
|
0x1
|
[0]
|
RW
|
codec_dig_rst_req
|
AUDIO CODEC数字逻辑复位请求。(复位时间至少持续0.5us)
0:撤销复位;
1:复位。
|
0x1
|
处理器子系统
该芯片采用ARM Cortex-A7双核处理器,具有以下特点:
- 处理器工作频率950MHz。
- 浮点加速引擎NEON。
- L1 Cache包含32KB Instruction Cache和32KB Data Cache。
- 双核共享128KB L2 Cache
- 支持内存管理单元(MMU)。
- 支持JTAG调试接口。
- 集成中断控制器GIC,支持96个中断源。
中断系统
芯片主CPU支持中断源,对应的中断映射如表1所示。
表 1 中断源分配表
中断向量位
|
中断源
|
中断向量位
|
中断源
|
0~31
|
CPU内部使用
|
76
|
ETH
|
32
|
SOFTWARE
|
77
|
FEPHY
|
33
|
SDK_SOFTWARE
|
78
|
FEPHY_WOL
|
34
|
ALL_PLL_LOCK
|
79
|
保留
|
35
|
WDG
|
80
|
USB2
|
36
|
TIMER01
|
81
|
保留
|
37
|
TIMER23
|
82
|
SPACC_TEE
|
38
|
SEC_TIMER01
|
83
|
SPACC_REE
|
39
|
SEC_TIMER23
|
84
|
PKE_TEE
|
40
|
保留
|
85
|
PKE_REE
|
41
|
保留
|
86
|
RKP_TEE
|
42
|
UART0
|
87
|
RKP_REE
|
43
|
UART1
|
88
|
KLAD_TEE
|
44
|
UART2
|
89
|
KLAD_REE
|
45
|
保留
|
90
|
SEC_ALARM
|
46
|
保留
|
91~94
|
保留
|
47
|
I2C0
|
95
|
AIAO
|
48
|
I2C1
|
96
|
MIPI_RX
|
49
|
I2C2
|
97
|
VICAP_INT0
|
50
|
保留
|
98
|
VICAP_INT1
|
51
|
SSP0
|
99
|
VIPROC
|
52
|
SSP1
|
100
|
保留
|
53
|
保留
|
101
|
VEDU
|
54
|
保留
|
102
|
JPGE
|
55
|
GPIO0
|
103
|
VPSS
|
56
|
GPIO1
|
104
|
VGS
|
57
|
GPIO2
|
105
|
保留
|
58
|
GPIO3
|
106
|
保留
|
59
|
GPIO4
|
107
|
NPU
|
60
|
GPIO5
|
108
|
IVE
|
61
|
GPIO6
|
109
|
GZIP
|
62
|
GPIO7
|
110~112
|
保留
|
63
|
GPIO8
|
113
|
DDRT
|
64
|
GPIO9
|
114
|
DDRC_ERR
|
65
|
GPIO10
|
115
|
DDRC_SEC
|
66
|
保留
|
116
|
保留
|
67
|
TSENSOR
|
117
|
A7_AXIERR
|
68
|
LSADC
|
118
|
A7_COMMTX0
|
69
|
RTC
|
119
|
A7_COMMRX0
|
70
|
保留
|
120
|
A7_PMUIRQ0
|
71
|
EDMA
|
121
|
A7_COMMTX1
|
72
|
EDMA_NS
|
122
|
A7_COMMRX1
|
73
|
FMC
|
123
|
A7_PMUIRQ1
|
74
|
SDIO0
|
124~127
|
保留
|
75
|
SDIO1
|
|
|
系统控制器
概述
系统控制器管理系统中的重要功能,并完成对外设的某些功能的配置。
特点
系统控制器具有以下特点:
- 提供对系统状态监控
- 提供通用外设寄存器
- 提供对关键寄存器的写保护功能
- 提供芯片的标识寄存器
功能描述
软复位控制
系统控制器支持对芯片全局软复位,使用reboot或者reset命令触发全局软复位。
芯片的标识寄存器
系统控制器提供了芯片标识(ID)寄存器CHIP_ID,软件可以通过CHIP_ID来识别芯片型号。
系统控制器寄存器
系统控制器寄存器概览
系统控制器寄存器概览如表1所示。
表 1 系统控制器(SYS CTRL)寄存器概览(基址是0x1102_0000)
偏移地址
|
名称
|
描述
|
0x0014
|
SELF_BOOT_FLAG
|
系统自举控制寄存器
|
0x0018
|
SYSSTAT
|
系统状态寄存器
|
0x001C
|
SOFTINT
|
软中断寄存器
|
0x0020
|
SOFTTYPE
|
软中断向量寄存器
|
0x0250
|
USE_POR_RREG0
|
仅POR可复位的USER专用寄存器0
|
0x0254
|
USE_POR_RREG1
|
仅POR可复位的USER专用寄存器1
|
0x0258
|
USE_POR_RREG2
|
仅POR可复位的USER专用寄存器2
|
0x025C
|
USE_POR_RREG3
|
仅POR可复位的USER专用寄存器3
|
0x0EE0
|
CHIP_ID
|
芯片ID寄存器
|
0x0EEC
|
VENDOR_ID
|
厂商ID寄存器
|
0x1030
|
SDK_SOFTINT
|
软中断寄存器
|
0x1034
|
SDK_SOFTTYPE
|
软中断向量寄存器
|
0x1100
|
CUSTOMER_ID0
|
CUSTOMER_ID0寄存器
|
0x1104
|
CUSTOMER_ID1
|
CUSTOMER_ID1寄存器
|
0x1108
|
CUSTOMER_ID2
|
CUSTOMER_ID2寄存器
|
0x110C
|
CUSTOMER_ID3
|
CUSTOMER_ID3寄存器
|
0x1200
|
CHIP_UNIQUE_ID0
|
CHIP_UNIQUE_ID0寄存器
|
0x1204
|
CHIP_UNIQUE_ID1
|
CHIP_UNIQUE_ID1寄存器
|
0x1208
|
CHIP_UNIQUE_ID2
|
CHIP_UNIQUE_ID2寄存器
|
0x120C
|
CHIP_UNIQUE_ID3
|
CHIP_UNIQUE_ID3寄存器
|
0x1210
|
CHIP_UNIQUE_ID4
|
CHIP_UNIQUE_ID4寄存器
|
0x1214
|
CHIP_UNIQUE_ID5
|
CHIP_UNIQUE_ID5寄存器
|
0x1300
|
USERREG0
|
USER专用寄存器0
|
0x1304
|
USERREG1
|
USER专用寄存器1
|
0x1308
|
USERREG2
|
USER专用寄存器2
|
0x130C
|
USERREG3
|
USER专用寄存器3
|
0x1310
|
USERREG4
|
USER专用寄存器4
|
0x1314
|
USERREG5
|
USER专用寄存器5
|
0x1318
|
USERREG6
|
USER专用寄存器6
|
0x131C
|
USERREG7
|
USER专用寄存器7
|
0x1320
|
USERREG8
|
USER专用寄存器8
|
0x1324
|
USERREG9
|
USER专用寄存器9
|
0x1328
|
USERREG10
|
USER专用寄存器10
|
0x132C
|
USERREG11
|
USER专用寄存器11
|
0x1330
|
USERREG12
|
USER专用寄存器12
|
0x1334
|
USERREG13
|
USER专用寄存器13
|
0x1338
|
USERREG14
|
USER专用寄存器14
|
0x133C
|
USERREG15
|
USER专用寄存器15
|
系统控制器寄存器描述
SELF_BOOT_FLAG
SELF_BOOT_FLAG为系统自举控制寄存器。
Offset Address: 0x0014 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
RO
|
softresreq
|
保留。
|
0x000000
|
[7:0]
|
RO
|
self_boot_flag
|
系统自举方式选择。
0x00:正常FLASH启动;
0x01:UART非裸烧;
0x04:SD Card非裸烧;
0x10:UART裸烧;
0x11:从UART裸烧到DDR;
0x20:USB Device裸烧;
0x40:SD Card裸烧;
其它:保留。
|
0x00
|
SYSSTAT
SYSSTAT为系统状态寄存器。
Offset Address: 0x0018 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:16]
|
-
|
reserved
|
保留。
|
0x0
|
[15]
|
RO
|
por_enable
|
复位方案选择。
0:外部复位;
1:内部POR复位。
|
0x0
|
[14:12]
|
-
|
reserved
|
保留。
|
0x0
|
[11]
|
RO
|
sfc_emmc_boot_mode
|
当从SPI NOR FLASH启动时,表示SPI NOR FLASH启动地址模式选择。
0:3Byte地址模式;
1:4Byte地址模式。
当从SPI NAND FLASH启动时,表示SPI NAND FLASH启动模式选择。
0:1线启动模式;
1:4线启动模式。
当从eMMC启动时,表示eMMC启动模式选择。
0:4Bit启动模式;
1:8Bit启动模式。
|
0x0
|
[10:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RO
|
fast_boot_mode
|
BOOT模式选择。
0:Normal Flash 启动模式;
1:串口烧写模式;
Normal Flash启动模式和串口烧写模式下根据boot_sel[1:0]选择启动/烧写介质。
|
0x0
|
[3:2]
|
RO
|
boot_sel
|
启动介质选择。
00:从SPI Nor Flash启动;
01:从SPI Nand Flash启动;
11:从eMMC启动;
其他:保留。
|
0x0
|
[1:0]
|
-
|
reserved
|
保留。
|
0x0
|
SOFTINT
SOFTINT为软中断寄存器。
Offset Address: 0x001C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留。
|
0x00000000
|
[0]
|
RW
|
software_int
|
向此位写入1产生软件中断。
|
0x0
|
SOFTTYPE
SOFTTYPE为软中断向量寄存器。
Offset Address: 0x0020 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
software_int_vector
|
软件中断向量。
|
0x00000000
|
USER_POR_REG0
USER_POR_REG0为仅POR可复位的USER专用寄存器0。该寄存器不会被系统软复位所复位。
Offset Address: 0x0250 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_por_reg0
|
用户专用寄存器0。
|
0x00000000
|
USER_POR_REG1
USER_POR_REG1为仅POR可复位的USER专用寄存器1。该寄存器不会被系统软复位所复位。
Offset Address: 0x0254 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_por_reg1
|
用户专用寄存器1。
|
0x00000000
|
USER_POR_REG2
USER_POR_REG2为仅POR可复位的USER专用寄存器2。该寄存器不会被系统软复位所复位。
Offset Address: 0x0258 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_por_reg2
|
用户专用寄存器2。
|
0x00000000
|
USER_POR_REG3
USER_POR_REG3为仅POR可复位的USER专用寄存器3。该寄存器不会被系统软复位所复位。
Offset Address: 0x025C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_por_reg3
|
用户专用寄存器3。
|
0x00000000
|
CHIP_ID
CHIP_ID为芯片ID寄存器。
Offset Address: 0x0EE0 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
chip_id
|
芯片ID寄存器,为OTP回读值。
|
0x00000000
|
VENDOR_ID
VENDOR_ID为厂商ID寄存器。
Offset Address: 0x0EEC Total Reset Value: 0x0000_0035
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
vendor_id
|
厂商ID寄存器,固定为0x35。
|
0x00000035
|
SDK_SOFTINT
SDK_SOFTINT为软中断寄存器。
Offset Address: 0x1030 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留
|
0x00000000
|
[0]
|
RW
|
sdk_software_int
|
向此位写入1产生软件中断。
|
0x0
|
SDK_SOFTTYPE
SDK_SOFTTYPE为软中断向量寄存器。
Offset Address: 0x1034 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
sdk_software_int_vector
|
软件中断向量。
|
0x00000000
|
CUSTOMER_ID0
CUSTOMER_ID0为CUSTOMER_ID0寄存器。
Offset Address: 0x1100 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
customer_id0
|
CUSTOMER_ID0至CUSTOMER_ID3拼接,bit[127:0]组合。
CUSTOMER_ID[31:0]
|
0x00000000
|
CUSTOMER_ID1
CUSTOMER_ID1为CUSTOMER_ID1寄存器。
Offset Address: 0x1104 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
customer_id1
|
CUSTOMER_ID0至CUSTOMER_ID3拼接,bit[127:0]组合。
CUSTOMER_ID[63:32]
|
0x00000000
|
CUSTOMER_ID2
CUSTOMER_ID2为CUSTOMER_ID2寄存器。
Offset Address: 0x1108 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
customer_id2
|
CUSTOMER_ID0至CUSTOMER_ID3拼接,bit[127:0]组合。
CUSTOMER_ID[95:64]
|
0x00000000
|
CUSTOMER_ID3
CUSTOMER_ID3为CUSTOMER_ID3寄存器。
Offset Address: 0x110C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
customer_id3
|
CUSTOMER_ID0至CUSTOMER_ID3拼接,bit[127:0]组合。
CUSTOMER_ID[127:96]
|
0x00000000
|
CHIP_UNIQUE_ID0
CHIP_UNIQUE_ID0为CHIP_UNIQUE_ID0寄存器。
Offset Address: 0x1200 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
chip_unique_id0
|
CHIP_UNIQUE_ID0至CHIP_UNIQUE_ID5拼接,bit[191:0]组合。
CHIP_UNIQUE_ID[31:0]
|
0x00000000
|
CHIP_UNIQUE_ID1
CHIP_UNIQUE_ID1为CHIP_UNIQUE_ID1寄存器。
Offset Address: 0x1204 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
chip_unique_id1
|
CHIP_UNIQUE_ID0至CHIP_UNIQUE_ID5拼接,bit[191:0]组合。
CHIP_UNIQUE_ID[63:32]
|
0x00000000
|
CHIP_UNIQUE_ID2
CHIP_UNIQUE_ID2为CHIP_UNIQUE_ID2寄存器。
Offset Address: 0x1208 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
chip_unique_id2
|
CHIP_UNIQUE_ID0至CHIP_UNIQUE_ID5拼接,bit[191:0]组合。
CHIP_UNIQUE_ID[95:64]
|
0x00000000
|
CHIP_UNIQUE_ID3
CHIP_UNIQUE_ID3为CHIP_UNIQUE_ID3寄存器。
Offset Address: 0x120C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
chip_unique_id3
|
CHIP_UNIQUE_ID0至CHIP_UNIQUE_ID5拼接,bit[191:0]组合。
CHIP_UNIQUE_ID[127:96]
|
0x00000000
|
CHIP_UNIQUE_ID4
CHIP_UNIQUE_ID4为CHIP_UNIQUE_ID4寄存器。
Offset Address: 0x1210 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
chip_unique_id4
|
CHIP_UNIQUE_ID0至CHIP_UNIQUE_ID5拼接,bit[191:0]组合。
CHIP_UNIQUE_ID[159:128]
|
0x00000000
|
CHIP_UNIQUE_ID5
CHIP_UNIQUE_ID5为CHIP_UNIQUE_ID5寄存器。
Offset Address: 0x1214 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
chip_unique_id5
|
CHIP_UNIQUE_ID0至CHIP_UNIQUE_ID5拼接,bit[191:0]组合。
CHIP_UNIQUE_ID[191:160]
|
0x00000000
|
USERREG0
USERREG0为USER专用寄存器0。
Offset Address: 0x1300 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg0
|
用户专用寄存器0。
|
0x00000000
|
USERREG1
USERREG1为USER专用寄存器1。
Offset Address: 0x1304 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg1
|
用户专用寄存器1。
|
0x00000000
|
USERREG2
USERREG2为USER专用寄存器2。
Offset Address: 0x1308 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg2
|
用户专用寄存器2。
|
0x00000000
|
USERREG3
USERREG3为USER专用寄存器3。
Offset Address: 0x130C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg3
|
用户专用寄存器3。
|
0x00000000
|
USERREG4
USERREG4为USER专用寄存器4。
Offset Address: 0x1310 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg4
|
用户专用寄存器4。
|
0x00000000
|
USERREG5
USERREG5为USER专用寄存器5。
Offset Address: 0x1314 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg5
|
用户专用寄存器5。
|
0x00000000
|
USERREG6
USERREG6为USER专用寄存器6。
Offset Address: 0x1318 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg6
|
用户专用寄存器6。
|
0x00000000
|
USERREG7
USERREG7为USER专用寄存器7。
Offset Address: 0x131C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg7
|
用户专用寄存器7。
|
0x00000000
|
USERREG8
USERREG8为USER专用寄存器8。
Offset Address: 0x1320 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg8
|
用户专用寄存器8。
|
0x00000000
|
USERREG9
USERREG9为USER专用寄存器9。
Offset Address: 0x1324 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg9
|
用户专用寄存器9。
|
0x00000000
|
USERREG10
USERREG10为USER专用寄存器10。
Offset Address: 0x1328 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg10
|
用户专用寄存器10。
|
0x00000000
|
USERREG11
USERREG11为USER专用寄存器11。
Offset Address: 0x132C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg11
|
用户专用寄存器11。
|
0x00000000
|
USERREG12
USERREG12为USER专用寄存器12。
Offset Address: 0x1330 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg12
|
用户专用寄存器12。
|
0x00000000
|
USERREG13
USERREG13为USER专用寄存器13。
Offset Address: 0x1334 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg13
|
用户专用寄存器13。
|
0x00000000
|
USERREG14
USERREG14为USER专用寄存器14。
Offset Address: 0x1338 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg14
|
用户专用寄存器14。
|
0x00000000
|
USERREG15
USERREG15为USER专用寄存器15。
Offset Address: 0x133C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
user_reg15
|
用户专用寄存器15。
|
0x00000000
|
SOC MISC1寄存器
SOC MISC1寄存器概览
SOC MISC1寄存器概览如表1所示。
表 1 SOC MISC1寄存器(基址是0x1102_0000)
偏移地址
|
名称
|
描述
|
0x4130
|
DDRCA_REE_RANDOM_L
|
DDR 加扰功能REE随机值低32bit值
|
0x4134
|
DDRCA_REE_RANDOM_H
|
DDR 加扰功能REE随机值高32bit值
|
0x4138
|
DDRCA_EN_REE
|
DDR 加扰功能模式控制寄存器
|
0x413C
|
DDRCA_REE_UPDATE
|
DDR 加扰功能REE 使能寄存器
|
0x4140
|
DDRCA_LOCK_REE
|
DDR 加扰随机值LOCK寄存器
|
0x4144
|
DDRC_LOCK_CTRL1
|
DDRC LOCK寄存器1
|
0x4148
|
DDRC_LOCK_CTRL2
|
DDRC LOCK寄存器2
|
0x414C
|
DDRC_LOCK_CTRL3
|
DDRC LOCK寄存器3
|
0x4150
|
DDRC_LOCK_CTRL4
|
DDRC LOCK寄存器4
|
0x4154
|
DDRC_LOCK_CTRL5
|
DDRC LOCK寄存器5
|
0x5000
|
SEC_CTRL1
|
SLAVE系统安全属性控制寄存器1
|
SOC MISC1寄存器描述
DDRCA_REE_RANDOM_L
DDRCA_REE_RANDOM_L为DDR 加扰功能REE随机值低32bit值。
Offset Address: 0x4130 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW_CLR
|
ddrca_ree_random_l
|
DDR 加扰功能REE系统随机值Bit[31:0]。DDRCA_LOCK_REE写1后清除。
|
0x00000000
|
DDRCA_REE_RANDOM_H
DDRCA_REE_RANDOM_H为DDR 加扰功能REE随机值高32bit值。
Offset Address: 0x4134 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW_CLR
|
ddrca_ree_random_h
|
DDR 加扰功能REE系统随机值Bit[63:32]。DDRCA_LOCK_REE写1后清除。
|
0x00000000
|
DDRCA_EN_REE
DDRCA_EN_REE为DDR 加扰功能模式控制寄存器。
Offset Address: 0x4138 Total Reset Value: 0x0000_000A
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RW_CLR
|
ddrca_en
|
DDR加扰功能模式。DDRCA_LOCK_REE写1后清除。
0xA:关闭DDR加扰功能;
0x5:使能DDR加扰功能;
其他:保留。
|
0xA
|
DDRCA_REE_UPDATE
DDRCA_REE_UPDATE为DDR 加扰功能REE 使能寄存器。
Offset Address: 0x413C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留
|
0x00000000
|
[0]
|
RW_LOCK
|
ddrca_ree_update
|
DDR REE随机值加扰功能使能。写1生效。DDRCA_LOCK_REE写1后锁定。
|
0x0
|
DDRCA_LOCK_REE
DDRCA_LOCK_REE为DDR 加扰随机值LOCK寄存器。
Offset Address: 0x4140 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留。
|
0x00000000
|
[0]
|
RW_SEC_LOCK
|
ddrca_lock_ree
|
DDRC加扰LOCK寄存器。写1后锁定,并且同时清除掉ddrca_en/ddrca_ree_random_l/h。
|
0x0
|
DDRC_LOCK_CTRL1
DDRC_LOCK_CTRL1为DDRC LOCK寄存器1。
Offset Address: 0x4144 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留
|
0x00000000
|
[0]
|
RW_SEC_LOCK
|
ddrc_phy_write_lock
|
DDR PHY寄存器锁定控制。
0:DDR PHY寄存器可以被改写;
1:DDR PHY寄存器不能被改写。
|
0x0
|
DDRC_LOCK_CTRL2
DDRC_LOCK_CTRL2为DDRC LOCK寄存器2。
Offset Address: 0x4148 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留
|
0x00000000
|
[0]
|
RW_SEC_LOCK
|
ddrc_dmc_write_lock
|
DDR DMC寄存器锁定控制。
0:DDR DMC寄存器可以被改写;
1:DDR DMC寄存器不能被改写。
|
0x0
|
DDRC_LOCK_CTRL3
DDRC_LOCK_CTRL3为DDRC LOCK寄存器3。
Offset Address: 0x414C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留
|
0x00000000
|
[0]
|
RW_SEC_LOCK
|
ddrc_qosbuf_write_lock
|
DDR QOSBUS寄存器锁定控制。
0:DDR QOSBUS寄存器可以被改写;
1:DDR QOSBUS寄存器不能被改写。
|
0x0
|
DDRC_LOCK_CTRL4
DDRC_LOCK_CTRL4为DDRC LOCK寄存器4。
Offset Address: 0x4150 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留
|
0x00000000
|
[0]
|
RW_SEC_LOCK
|
ddrc_axiif_write_lock
|
DDR AXIIF寄存器锁定控制。
0:DDR AXIIF寄存器可以被改写;
1:DDR AXIIF寄存器不能被改写。
|
0x0
|
DDRC_LOCK_CTRL5
DDRC_LOCK_CTRL5为DDRC LOCK寄存器5。
Offset Address: 0x4154 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留
|
0x00000000
|
[0]
|
RW_SEC_LOCK
|
ddrc_addr_atrb_write_lock
|
DDR ADDR ATRB寄存器锁定控制。
0:DDR ADDR ATRB寄存器可以被改写;
1:DDR ADDR ATRB寄存器不能被改写。
|
0x0
|
SEC_CTRL1
sec ctrl1 sec_ctrl1
SEC_CTRL1为SLAVE系统安全属性控制寄存器1。(安全寄存器,仅安全模块可以访问)
Offset Address: 0x5000 Total Reset Value: 0x0001_1111
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:19]
|
-
|
reserved
|
保留。
|
0x0000
|
[18]
|
RW_SEC
|
i2c2_slv_sec_acc_ctrl
|
i2c2安全访问模式控制。
0:安全模式下,读写访问由模块自行鉴权;
1:安全模式下,写操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[17]
|
RW_SEC
|
i2c2_slv_sec_acc_ctrl_high
|
i2c2_slv_sec_acc_ctrl=1时,i2c2读访问控制。
0:安全模式下,读访问由模块自行鉴权;
1:安全模式下,读操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[16]
|
RW_SEC
|
i2c2_slv_sec_acc_disable
|
i2c2安全访问模式使能控制。
0:开启安全模式;
1:关闭安全模式。
|
0x1
|
[15]
|
-
|
reserved
|
保留。
|
0x0
|
[14]
|
RW_SEC
|
uart1_slv_sec_acc_ctrl
|
uart1安全访问模式控制。
0:安全模式下,读写访问由模块自行鉴权;
1:安全模式下,写操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[13]
|
RW_SEC
|
uart1_slv_sec_acc_ctrl_high
|
uart1_slv_sec_acc_ctrl=1时,uart1读访问控制。
0:安全模式下,读访问由模块自行鉴权;
1:安全模式下,读操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[12]
|
RW_SEC
|
uart1_slv_sec_acc_disable
|
uart1安全访问模式使能控制。
0:开启安全模式;
1:关闭安全模式。
|
0x1
|
[11]
|
-
|
reserved
|
保留。
|
0x0
|
[10]
|
RW_SEC
|
uart0_slv_sec_acc_ctrl
|
uart0安全访问模式控制。
0:安全模式下,读写访问由模块自行鉴权;
1:安全模式下,写操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[9]
|
RW_SEC
|
uart0_slv_sec_acc_ctrl_high
|
uart0_slv_sec_acc_ctrl=1时,uart0读访问控制。
0:安全模式下,读访问由模块自行鉴权;
1:安全模式下,读操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[8]
|
RW_SEC
|
uart0_slv_sec_acc_disable
|
uart0安全访问模式使能控制。
0:开启安全模式;
1:关闭安全模式。
|
0x1
|
[7]
|
-
|
reserved
|
保留。
|
0x0
|
[6]
|
RW_SEC
|
sec_timer23_slv_sec_acc_ctrl
|
sec_timer23安全访问模式控制。
0:安全模式下,读写访问由模块自行鉴权;
1:安全模式下,写操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[5]
|
RW_SEC
|
sec_timer23_slv_sec_acc_ctrl_high
|
sec_timer23_slv_sec_acc_ctrl=1时,sec_timer23读访问控制。
0:安全模式下,读访问由模块自行鉴权;
1:安全模式下,读操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[4]
|
RW_SEC
|
sec_timer23_slv_sec_acc_disable
|
sec_timer23安全访问模式使能控制。
0:开启安全模式;
1:关闭安全模式。
|
0x1
|
[3]
|
-
|
reserved
|
保留。
|
0x0
|
[2]
|
RW_SEC
|
sec_timer01_slv_sec_acc_ctrl
|
sec_timer01安全访问模式控制。
0:安全模式下,读写访问由模块自行鉴权;
1:安全模式下,写操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[1]
|
RW_SEC
|
sec_timer01_slv_sec_acc_ctrl_high
|
sec_timer01_slv_sec_acc_ctrl=1时,sec_timer01读访问控制。
0:安全模式下,读访问由模块自行鉴权;
1:安全模式下,读操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[0]
|
RW_SEC
|
sec_timer01_slv_sec_acc_disable
|
sec_timer01安全访问模式使能控制。
0:开启安全模式;
1:关闭安全模式。
|
0x1
|
SOC MISC2寄存器
SOC MISC2寄存器概览
SOC MISC2寄存器概览如表1所示。
表 1 SOC MISC2寄存器概览(基址是0x1795_0000)
偏移地址
|
名称
|
描述
|
0x000C
|
SPI_CFG10
|
SPI0/1 CS极性配置寄存器
|
0x0018
|
I2C_MONTAGE_CFG0
|
I2C蒙太奇配置寄存器
|
0x0020
|
I2C_MONTAGE_CFG2
|
I2C蒙太奇读写选择寄存器
|
0x0030
|
MIPI_RX_CFG
|
ISP工作模式配置寄存器
|
0x0034
|
MIPI_WORK_MODE
|
MIPIRX工作模式控制寄存器
|
0x0038
|
VI_WORK_MODE
|
VI模式选择寄存器
|
0x800
|
SEC_CTRL2
|
SLAVE系统安全属性控制寄存器2
|
SOC MISC2寄存器描述
SPI_CFG10
spi cfg10 spi_cfg10
SPI_CFG10为SPI0/1 CS极性配置寄存器。
Offset Address: 0x000C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:3]
|
-
|
reserved
|
保留。
|
0x00000000
|
[2]
|
RW
|
spi0_cs_mux
|
SPI0片选信号。
0:SPI0_CSN0输出有效片选;
1:SPI0_CSN1输出有效片选。
|
0x0
|
[1]
|
RW
|
spi0_cs_pctrl
|
SPI0片选信号极性控制。
0:SPI0_CSN低有效;
1:SPI0_CSN高有效。
|
0x0
|
[0]
|
RW
|
spi1_cs_pctrl
|
SPI1片选信号极性控制。
0:SPI1_CSN低有效;
1:SPI1_CSN高有效。
|
0x0
|
I2C_MONTAGE_CFG0
i2c montage cfg0 i2c_montage_cfg0 montage_cfg0
I2C_MONTAGE_CFG0为I2C蒙太奇配置寄存器。
Offset Address: 0x0018 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留
|
0x00000000
|
[1:0]
|
RW
|
i2c_montage_en
|
每路I2C蒙太奇功能使能。
bit[0]:I2C0蒙太奇功能控制;
bit[1]:I2C1蒙太奇控制。
0:不使能;
1:使能。
使用I2C0控制器同时控制I2C0/1接口。
|
0x0
|
I2C_MONTAGE_CFG2
i2c montage cfg2 i2c_montage_cfg2 montage_cfg2
I2C_MONTAGE_CFG2为I2C蒙太奇读写选择寄存器。
Offset Address: 0x0020 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:6]
|
-
|
reserved
|
保留。
|
0x0000000
|
[5:4]
|
RW
|
i2c_write_slave
|
回写I2C选择。
bit[0]:I2C0;
bit[1]:I2C1。
0:不使能;
1:使能。
|
0x0
|
[3:2]
|
-
|
reserved
|
保留。
|
0x0
|
[1:0]
|
RW
|
i2c_read_slave
|
回读I2C选择。
bit[0]:I2C0;
bit[1]:I2C1。
0:不使能;
1:使能。
|
0x0
|
MIPI_RX_CFG
MIPI_RX_CFG为ISP工作模式配置寄存器。
Offset Address: 0x0030 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:30]
|
-
|
reserved
|
保留。
|
0x0
|
[29]
|
RW
|
viproc_vpss_online_mode
|
VIPROC&VPSS工作模式选择。
0:离线模式;
1:在线模式。
|
0x0
|
[28]
|
RW
|
vicap_viproc_online_mode
|
VICAP&VIPROC 工作模式选择。
0:离线模式;
1:在线模式。
|
0x0
|
[27:0]
|
-
|
reserved
|
保留。
|
0x0000000
|
MIPI_WORK_MODE
MIPI_WORK_MODE为MIPIRX工作模式控制寄存器。
Offset Address: 0x0034 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:6]
|
-
|
reserved
|
保留。
|
0x0000000
|
[5:4]
|
RW
|
mipi1_work_mode
|
MIPI chn1工作模式选择。
00:mipi模式;
01:lvds模式;
其他:保留。
|
0x0
|
[3:2]
|
-
|
reserved
|
保留。
|
0x0
|
[1:0]
|
RW
|
mipi0_work_mode
|
MIPI chn0工作模式选择。
00:mipi模式;
01:lvds模式;
其他:保留。
|
0x0
|
VI_WORK_MODE
VI_WORK_MODE为VI模式选择寄存器。
Offset Address: 0x0038 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:9]
|
-
|
reserved
|
保留。
|
0x000000
|
[8]
|
RW
|
vi_dvp_bt1120_input_sel
|
dvp/bt1120 功能选择。
0:dvp模式;
1:bt1120模式。
|
0x0
|
[7:5]
|
-
|
reserved
|
保留。
|
0x0
|
[4]
|
RW
|
vi_port1_input_sel
|
VI PORT1 功能选择。
0:mipi;
1:dvp/bt1120。
|
0x0
|
[3:1]
|
-
|
reserved
|
保留。
|
0x0
|
[0]
|
RW
|
vi_port0_input_sel
|
VI PORT0 功能选择。
0:mipi;
1:dvp/bt1120。
|
0x0
|
SEC_CTRL2
sec ctrl2 sec_ctrl2
SEC_CTRL2为SLAVE系统安全属性控制寄存器2。(安全寄存器,仅安全模块可以访问)
Offset Address: 0x800 Total Reset Value: 0x0011_1111
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:19]
|
-
|
reserved
|
保留。
|
0x0002
|
[18]
|
RW_SEC
|
ssp1_slv_sec_acc_ctrl
|
ssp1安全访问模式控制。
0:安全模式下,读写访问由模块自行鉴权;
1:安全模式下,写操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[17]
|
RW_SEC
|
ssp1_slv_sec_acc_ctrl_high
|
ssp1_slv_sec_acc_ctrl=1时,ssp1读访问控制。
0:安全模式下,读访问由模块自行鉴权;
1:安全模式下,读操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[16]
|
RW_SEC
|
ssp1_slv_sec_acc_disable
|
ssp1安全访问模式使能控制。
0:开启安全模式;
1:关闭安全模式。
|
0x1
|
[15]
|
-
|
reserved
|
保留。
|
0x0
|
[14]
|
RW_SEC
|
ssp0_slv_sec_acc_ctrl
|
ssp0安全访问模式控制。
0:安全模式下,读写访问由模块自行鉴权;
1:安全模式下,写操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[13]
|
RW_SEC
|
ssp0_slv_sec_acc_ctrl_high
|
ssp0_slv_sec_acc_ctrl=1时,ssp0读访问控制。
0:安全模式下,读访问由模块自行鉴权;
1:安全模式下,读操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[12]
|
RW_SEC
|
ssp0_slv_sec_acc_disable
|
ssp0安全访问模式使能控制。
0:开启安全模式;
1:关闭安全模式。
|
0x1
|
[11]
|
-
|
reserved
|
保留。
|
0x0
|
[10]
|
RW_SEC
|
i2c1_slv_sec_acc_ctrl
|
i2c1安全访问模式控制。
0:安全模式下,读写访问由模块自行鉴权;
1:安全模式下,写操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[9]
|
RW_SEC
|
i2c1_slv_sec_acc_ctrl_high
|
i2c1_slv_sec_acc_ctrl=1时,i2c1读访问控制。
0:安全模式下,读访问由模块自行鉴权;
1:安全模式下,读操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[8]
|
RW_SEC
|
i2c1_slv_sec_acc_disable
|
i2c1安全访问模式使能控制。
0:开启安全模式;
1:关闭安全模式。
|
0x1
|
[7]
|
-
|
reserved
|
保留。
|
0x0
|
[6]
|
RW_SEC
|
i2c0_slv_sec_acc_ctrl
|
i2c0安全访问模式控制。
0:安全模式下,读写访问由模块自行鉴权;
1:安全模式下,写操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[5]
|
RW_SEC
|
i2c0_slv_sec_acc_ctrl_high
|
i2c0_slv_sec_acc_ctrl=1时,i2c0读访问控制。
0:安全模式下,读访问由模块自行鉴权;
1:安全模式下,读操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[4]
|
RW_SEC
|
i2c0_slv_sec_acc_disable
|
i2c0安全访问模式使能控制。
0:开启安全模式;
1:关闭安全模式。
|
0x1
|
[3]
|
-
|
reserved
|
保留。
|
0x0
|
[2]
|
RW_SEC
|
uart2_slv_sec_acc_ctrl
|
uart2安全访问模式控制。
0:安全模式下,读写访问由模块自行鉴权;
1:安全模式下,写操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[1]
|
RW_SEC
|
uart2_slv_sec_acc_ctrl_high
|
uart2_slv_sec_acc_ctrl=1时,uart2读访问控制。
0:安全模式下,读访问由模块自行鉴权;
1:安全模式下,读操作仅支持安全访问,不支持非安全访问。
|
0x0
|
[0]
|
RW_SEC
|
uart2_slv_sec_acc_disable
|
uart2安全访问模式使能控制。
0:开启安全模式;
1:关闭安全模式。
|
0x1
|
DMA控制器
概述
DMA(Direct Memory Access)是一种高速的数据传输操作,允许不通过CPU在外部设备和存储器之间直接读写数据。DMAC(DMA Controller)直接在存储器和外设、外设和外设、存储器和存储器之间进行数据传输,避免CPU干涉并减少了CPU中断处理开销。
特点
DMAC有如下特点:
- 提供4个DMA通道,每个通道可配置用于一种单向传输。
- 支持内存到内存、内存到外设、外设到内存之间的传输。
- 在外设传输时,支持DMAC流控和外设流控方式。
- 支持32路外设请求,每路请求包括Single、Burst和Last Single三种请求。
- 支持DMA链表传输。
- 支持通道优先级可配。
- 支持DMA BURST长度软件可配。
- 支持8bit、16bit、32bit、64bit数据位宽方式传输。
- 只支持小端模式。
功能描述
外设请求线
DMAC的Single和Burst硬件请求和相应设备的对应关系如表1所示。
表 1 DMAC外设Single和Burst硬件请求线编号说明
外设硬件请求线编号
|
对应设备
|
0
|
I2C0 RX通道DMA请求
|
1
|
I2C0 TX通道DMA请求
|
2
|
I2C1 RX通道DMA请求
|
3
|
I2C1 TX通道DMA请求
|
4
|
I2C2 RX通道DMA请求
|
5
|
I2C2 TX通道DMA请求
|
6
|
SPI0 RX通道DMA请求
|
7
|
SPI0 TX通道DMA请求
|
8
|
SPI1 RX通道DMA请求
|
9
|
SPI1 TX通道DMA请求
|
10
|
UART0 RX通道DMA请求
|
11
|
UART0 TX通道DMA请求
|
12
|
UART1 RX通道DMA请求
|
13
|
UART1 TX通道DMA请求
|
14
|
UART2 RX通道DMA请求
|
15
|
UART2 TX通道DMA请求
|
16~31
|
保留
|
DMAC的Last Single硬件请求和相应设备的对应关系如表2所示,仅在外设流控模式时生效。当外设发出接收Last Single请求时,表示外设请求DMAC触发最后一次数据传输。
表 2 DMAC外设接收 Last Single硬件请求线编号说明
外设硬件请求线编号
|
对应设备
|
0~9
|
保留
|
10
|
UART0 RX通道DMA请求
|
11
|
保留
|
12
|
UART1 RX通道DMA请求
|
13
|
保留
|
14
|
UART2 RX通道DMA请求
|
15~31
|
保留
|
访问空间
DMAC可以访问的地址空间如表1所示。
表 1 DMAC访问空间说明
访问空间类型
|
描述
|
Memory
|
非安全属性的DDR空间
|
安全属性的DDR空间
|
共享属性的DDR空间
|
外设
|
I2C0
|
I2C1
|
I2C2
|
SPI0
|
SPI1
|
UART0
|
UART1
|
UART2
|
须知:
- 如果寄存器C(n)_AXI_CONF[arprot]为0x0,则表示该通道的读属性为安全,此时源地址空间只能为安全DDR区域或者共享DDR区域;
- 如果寄存器C(n)_AXI_CONF[arprot]为0x2,则表示该通道的读属性为非安全,此时源地址空间只能为非安全DDR区域或者共享DDR区域。
- 如果寄存器C(n)_AXI_CONF[awprot]为0x0,则表示该通道的写属性为安全,此时目的地址空间只能为安全DDR区域或者共享DDR区域;
- 如果寄存器C(n)_AXI_CONF[awprot]为0x2,则表示该通道的写属性为非安全,此时目的地址空间只能为非安全DDR区域或者共享DDR区域。
- 如果发生访问权限错误,DMAC将会上报该通道的数据传输错误中断,清除中断后可以继续使用该通道。
- 通过访问外设时不区分读安全属性或者写安全属性。
基本传输
DMAC支持三种基本传输,即内存之间的传输、内存到外设的传输以及外设到内存的传输。一次基本传输最大可搬运65535Bytes的数据。
- 内存之间的传输是源地址和目的地址均为内存物理地址的传输。
- 内存到外设的传输是源地址为内存物理地址而目的地址为外设的数据TX FIFO寄存器地址的传输,且目的地址必须配置为在传输过程中固定不变。
- 外设到内存的传输是源地址为外设的数据RX FIFO寄存器地址而目的地址为内存物理地址的传输,且源地址必须配置为在传输过程中固定不变。
- 如果源地址配置为不递增,源地址需要和源端的传输位宽对齐,否则会报配置错误中断;如果源端为外设时,源端传输位宽的大小应该与外设RX FIFO位宽相等。
- 如果目的地址配置为不递增,目的地址需要和目的端的传输位宽对齐,否则会报配置错误中断;如果目的端为外设时,目的端传输位宽的大小应该与外设TX FIFO位宽相等。
须知:
- 对于内存到外设以及外设到内存的传输,当一次传输的数据量大于一次Burst传输时,DMAC会优先响应Burst请求,而忽略Single请求。
- 当DMAC执行内存到外设的传输时,由于外设的TX FIFO水线及DMA目的端的Burst数据量设置不合理,可能导致DMA一次BURST传输数目大于TX FIFO剩余的空间,从而造成数据丢失。
- 当DMAC执行外设到内存的传输时,由于外设的RX FIFO水线及DMA源端的Burst数据量设置不合理,可能存在RX FIFO剩余的数据量大于DMA源端一次BURST数据量,但却小于RX水线的情况,此时外设不会产生RX BURST请求,而DMA只响应RX BURST请求,从而造成DMA挂死。
链表传输
DMAC支持硬件链表功能,即DMA会在传完一次基本传输后从CPU预置的链表空间读回下一节点的信息,并自动开始下一节点的传输,期间不需要CPU的干预。每个链表节点最多传输65535 Bytes。
三种基本传输均支持DMA链表功能。如需使能该功能,必须配置寄存器C(n)_LLI_L[chain_en]为0x2,且除链尾节点外的各节点链表信息中的[chain_en]也必须为0x2。对于链表尾,应当配置该节点的寄存器的bit[chain_en]为0x0,表示当该节点对应的数据块全部传输完毕后通道会自动关闭。
CPU应首先配置链表地址(寄存器C(n)_LLI_L [lli_l] 和C(n)_LLI_H [lli_h]),待上一节点完成后,DMA将自动地从DDR空间载入下一个预置好的链表信息。并自动刷新链表信息到寄存器C(n)_SRC_ADDR_L、C(n)_SRC_ADDR_H、C(n)_DES_ADDR_L、C(n)_DES_ADDR_H、C(n)_LLI_L、C(n)_LLI_H、C(n)_CNT0、C(n)_CONFIG[31:1]中。
需要注意的是,如果通道的源地址空间为安全内存,那么链表信息也必须存放在安全内存当中,否则链表信息存放在非安全内存中。
说明:
- 如果通过链表刷新进来的配置参数导致配置错误,那么本次传输直接结束并产生配置错误中断。
- 如果发生读链表错误或者配置错误且上一个链表节点中断使能有效时,那么在产生错误中断的同时会产生上一个链表节点完成中断,否则只会产生错误中断。
- 链表数据结构中的C(n)_CONFIG寄存器的ch_en值不会被内部DMAC使用。
链表在DDR内存放的格式如图1所示。
图 1 链表在DDR内存放的格式示意图

中断和状态
可以通过查询寄存器CH_STAT来确定对应的通道是否正在工作,在工作中的通道无法配置通道参数。
通道完成中断用来指示通道传输完成。
链表节点完成中断用来指示链表的节点传输完成 (需要配置C(n)_CONFIG [1]使能)。 链表的节点中断使能可以被节点的链表内容刷新进来,所以链表可以分别控制每个节点是否产生中断。需要注意的是,最后一个链表节点只产生传输完成中断,而不产生节点完成中断。
配置错误中断用来指示通道或链表发生非法配置。
读链表错误中断和数据传输错误中断用来指示总线的响应错误,其中读链表错误中断发生在读链表信息期间,数据传输错误中断发生在传输数据期间。
DMAC提供各通道的当前信息查询。寄存器C(n)_CURR_CNT0用于查询剩余的数据量,寄存器C(n)_CURR_SRC_ADDR_L和C(n)_CURR_SRC_ADDR_H用于查询当前传输的源地址,寄存器C(n)_CURR_DES_ADDR_L和C(n)_CURR_DES_ADDR_H用于查询当前传输的目的地址。
说明:
- 在传输开始前应该清除所有中断,保证工作时中断可以正常产生。
- 如果链表的每个节点传输比较少的数据,且CPU响应节点中断和清除中断需要时间,可能会导致有些节点中断查询不到,而被一起清除。
- 通道正常传输完成或者产生错误中断,通道使能自动清除。
- 通道为外设传输时,应在外设请求无效时查询,查询到值为DMAC实际剩余未搬移的数据量和下一次外设请求时搬移的地址。
- 通道为内存之间的传输时,DMAC内部一直在搬移,因此,查询到的值与DMAC实际搬移的值有一定差异,因此,内存之间传输时查询该寄存器意义不大。
通道安全配置
可以通过配置寄存器C(n)_AXI_CONF的arprot域和awprot域来实现各个通道的安全属性,该域的配置遵循AXI总线协议,即寄存器的bit6和bit18反映通道n的读和写安全属性。只要arprot域或awprot域的安全标志位为0x0,该通道就为安全通道,否则为非安全通道。
所有通道的安全属性均默认为安全通道。
说明:
寄存器C(n)_AXI_CONF的awprot域和arprot域只被安全CPU配置。
工作方式
时钟和复位
DMAC在使用前需要打开时钟并执行复位操作。
- 向CRG寄存器PERI_CRG2720[edma_axi_cken]写0x1,打开DMAC的AXI时钟门控,向CRG寄存器PERI_CRG2720[edma_apb_cken]写0x1,打开DMAC的APB时钟门控。
- 向CRG寄存器PERI_CRG2720[edma_srst_req]写0x1,对DMAC进行复位。
- 向CRG寄存器PERI_CRG2720[edma_srst_req]写0x0,撤离对DMAC模块的复位。
设置访问方式
默认情况下,DMAC的全部通道均为安全属性,下述章节“初始化”、“基本传输”、“链表传输”、“中断处理”访问主体只能为安全处理器,访问的DDR内存属性可以是安全属性以及共享属性。
如果想要非安全处理器访问DMAC,需要安全处理器首先执行以下步骤:
- 依次向全部通道的C(n)_AXI_CONF寄存器的arprot域(bit[7:5])以及awprot域(bit[19:17])配置0x010,将通道的安全属性转换为非安全。
- 此时,DMAC的全部通道均为非安全属性,下述章节“初始化”、“基本传输”、“链表传输”、“中断处理”的访问主体只能为非安全处理器,访问的DDR内存属性可以是非安全属性以及共享属性。
初始化
在撤销复位以及设置访问方式后,DMAC应该进行初始化。初始化步骤如下:
- 根据场景需求,配置优先级控制寄存器CH_PRI。
- 向原始中断寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW、INT_ERR3_RAW的所有有效位写0x1,清除全部中断状态。
- 根据中断需求,配置中断屏蔽寄存器INT_TC1_RAW、INT_TC2_MASK、INT_ERR1_MASK、INT_ERR2_MASK、INT_ERR3_MASK。
- 依次向每个通道的各通道配置寄存器C(n)_CONFIG[ch_en]写0x0,关闭DMAC通道。
基本传输
DMAC初始化完成之后,需要配置并启动通道,才可以使用DMAC进行数据传输。具体步骤如下:
- 读寄存器INT_STAT,找出处于空闲的通道,并从中选择一个通道n用于配置。
- 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x1<<n,清除选定通道的中断状态。
- 写通道寄存器C(n)_SRC_ADDR_L和C(n)_SRC_ADDR_H,设置源端的首物理地址。
- 写通道寄存器C(n)_DES_ADDR_L和C(n)_DES_ADDR_H,设置目的端的首物理地址。
- 写通道寄存器C(n)_LLI_L[chain_en]为0x0,表明本次传输为非链表传输。
- 写通道寄存器C(n)_CNT0[a_count],设置搬运数据量,最大为65535Bytes。
- 写通道寄存器C(n)_CONFIG,设置地址类型、传输位宽、传输Burst Length、传输类型以及外设号。
- 写通道寄存器C(n)_CONFIG[ch_en]为0x1,使能通道,DMAC开始传输。
- 如果传输为内存和外设之间的传输,应该再启动对应外设,并打开其DMA功能。具体参考“外围设备”的I2C、UART、SPI章节。
说明:
内存之间的传输
内存到内存的传输示例步骤如下:
- 读寄存器CH_STAT,发现通道0空闲。
- 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x1。
- 向寄存器C(0)_SRC_ADDR_L和C(0)_SRC_ADDR_H写0x84000000。
- 向寄存器C(0)_DES_ADDR_L和C(0)_DES_ADDR_H写0x85000000。
- 向寄存器C(0)_LLI_L[1:0]写0x0。
- 向寄存器C(0)_CNT0写0x1000。
- 向寄存器C(0)_CONFIG写0xcff33000。
- 向寄存器C(0)_CONFIG[ch_en]写0x1。
内存到外设的传输
内存到I2C0的传输示例步骤如下:
- 读寄存器CH_STAT,发现通道1空闲。
- 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x2。
- 向寄存器C(1)_SRC_ADDR_L和C(1)_SRC_ADDR_H写0x84000000。
- 向寄存器C(1)_DES_ADDR_L和C(1)_DES_ADDR_H写0x11060000。
- 向寄存器C(1)_LLI_L[1:0]写0x0。
- 向寄存器C(1)_CNT0写0x10。
- 向寄存器C(1)_CONFIG写0x80000014。
- 向寄存器C(1)_CONFIG[ch_en]写0x1。
- 完成I2C0配置并打开DMA TX功能。
内存到UART0的传输示例步骤如下:
- 读寄存器CH_STAT,发现通道1空闲。
- 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x2。
- 向寄存器C(1)_SRC_ADDR_L和C(1)_SRC_ADDR_H写0x84000000。
- 向寄存器C(1)_DES_ADDR_L和C(1)_DES_ADDR_H写0x11040000。
- 向寄存器C(1)_LLI_L[1:0]写0x0。
- 向寄存器C(1)_CNT0写0x10。
- 向寄存器C(1)_CONFIG写0x800000C4。
- 向寄存器C(1)_CONFIG[ch_en]写0x1。
- 完成UART0配置并打开DMA TX功能。
内存到SSP0的传输示例步骤如下:
- 读寄存器CH_STAT,发现通道1空闲。
- 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x2。
- 向寄存器C(1)_SRC_ADDR_L和C(1)_SRC_ADDR_H写0x84000000。
- 向寄存器C(1)_DES_ADDR_L和C(1)_DES_ADDR_H写0x11070008。
- 向寄存器C(1)_LLI_L[1:0]写0x0。
- 向寄存器C(1)_CNT0写0x10。
- 向寄存器C(1)_CONFIG写0x80011074。
- 向寄存器C(1)_CONFIG[ch_en]写0x1。
- 完成SSP0配置并打开DMA TX功能。
外设到内存的传输
I2C0到内存的传输示例步骤如下:
- 读寄存器CH_STAT,发现通道2空闲。
- 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x4。
- 向寄存器C(2)_SRC_ADDR_L和C(2)_SRC_ADDR_H写0x11060000。
- 向寄存器C(2)_DES_ADDR_L和C(2)_DES_ADDR_H写0x85000000。
- 向寄存器C(2)_LLI_L[1:0]写0x0。
- 向寄存器C(2)_CNT0写0x10。
- 向寄存器C(2)_CONFIG写0x40000004。
- 向寄存器C(2)_CONFIG[ch_en]写0x1。
- 完成I2C0配置并打开DMA RX功能。
UART0到内存的传输示例步骤如下:
- 读寄存器CH_STAT,发现通道2空闲。
- 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x4。
- 向寄存器C(2)_SRC_ADDR_L和C(2)_SRC_ADDR_H写0x11040000。
- 向寄存器C(2)_DES_ADDR_L和C(2)_DES_ADDR_H写0x85000000。
- 向寄存器C(2)_LLI_L[1:0]写0x0。
- 向寄存器C(2)_CNT0写0x10。
- 向寄存器C(2)_CONFIG写0x400000A8。
- 向寄存器C(2)_CONFIG[ch_en]写0x1。
- 完成UART0配置并打开DMA RX功能。
SSP0到内存的传输示例步骤如下:
- 读寄存器CH_STAT,发现通道2空闲。
- 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x4。
- 向寄存器C(2)_SRC_ADDR_L和C(2)_SRC_ADDR_H写0x11070008。
- 向寄存器C(2)_DES_ADDR_L和C(2)_DES_ADDR_H写0x85000000。
- 向寄存器C(2)_LLI_L[1:0]写0x0。
- 向寄存器C(2)_CNT0写0x10。
- 向寄存器C(2)_CONFIG写0x40011068。
- 向寄存器C(2)_CONFIG[ch_en]写0x1。
- 完成SSP0配置并打开DMA RX功能。
链表传输
- 读寄存器INT_STAT,找出处于空闲的通道,并从中选择一个通道n用于配置。
- 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x1<<n,清除选定通道的中断状态。
- 软件开辟链表空间,链表空间地址需要512-bit对齐。向链表空间按顺序填入链表内容,具体参考链表传输章节。
- 写通道寄存器C(n)_SRC_ADDR_L和C(n)_SRC_ADDR_H,设置链表首节点源端的首物理地址。
- 写通道寄存器C(n)_DES_ADDR_L和C(n)_DES_ADDR_H,设置链表首节点目的端的首物理地址。
- 写通道寄存器C(n)_LLI_L[lli_l]和C(n)_LLI_H[lli_h],设置链表空间的首地址。
- 写通道寄存器C(n)_LLI_L[chain_en]为0x2,表示本节点不是链表尾。
- 写通道寄存器C(n)_CNT0[a_count],设置本节点搬运的数据量,最大为65535Bytes。
- 写通道寄存器C(n)_CONFIG,设置本节点的地址类型、传输位宽、传输Burst Length、传输类型、外设号以及链表中断使能。
- 写通道寄存器C(n)_CONFIG[ch_en]为0x1,使能通道,DMAC开始传输。
- 如果传输为内存和外设之间的传输,应再启动对应外设,并打开其DMA功能。具体参考“外围设备”的I2C、UART、SPI章节。
说明:
具体参照“基本传输”小节的说明。
中断处理
中断程序的处理流程如下:
- 读中断状态寄存器INT_STAT,找出发出中断请求的通道。如果多个通道同时上报,优先服务优先级高的通道。
- 读寄存器INT_TC1,比较选定的位是否为0x1,以确定对应通道发出的中断为传输完成中断。若是,则转到步骤4执行;否则转到步骤3继续执行。
- 读寄存器INT_ERR1、INT_ERR2、INT_ERR3,比较选定的位是否为0x1,以确定对应通道发出的中断为错误中断。若是,则转到步骤5执行;否则转到步骤6继续执行。
-
传输完成中断处理。可以分为以下几个子步骤:
- 写寄存器INT_TC1_RAW,对选定的位写入0x1,清除对应通道的中断状态。
- 取走或使用掉内存中的数据,有必要的话重新配置并启动该通道。
- 退出中断处理。
-
错误中断处理。可以分为以下几个子步骤:
- 根据错误类型清除错误中断状态。如果是配置错误,则向寄存器INT_ERR1_RAW选定的位写入0x1;如果是传输错误,则向寄存器INT_ERR2_RAW选定的位写入0x1;如果是链表传输错误,则向寄存器INT_ERR3_RAW选定的位写入0x1
- 给出错误信息,有必要的话重新配置并启动该通道。
- 退出中断处理。
-
链表节点传输完成中断处理。可以分为以下几个子步骤:
- 写寄存器INT_TC2_RAW,对选定的位写入0x1,清除对应通道的中断状态。
- 取走或使用掉内存中的数据。
- 退出中断处理。
DMAC寄存器概览
各模块的寄存器偏移地址中变量的取值范围和含义如表1所示。
表 1 各模块的寄存器偏移地址变量表
变量名称
|
取值范围
|
描述
|
n
|
0~3
|
支持的通道个数。
|
DMAC寄存器概览如表2所示。
表 2 DMAC寄存器概览(基址是0x1028_0000)
偏移地址
|
名称
|
描述
|
0x0000
|
INT_STAT
|
中断状态寄存器
|
0x0004
|
INT_TC1
|
通道传输完成中断状态寄存器
|
0x0008
|
INT_TC2
|
链表节点传输完成中断状态寄存器
|
0x000C
|
INT_ERR1
|
配置错误中断状态寄存器
|
0x0010
|
INT_ERR2
|
数据传输错误中断状态寄存器
|
0x0014
|
INT_ERR3
|
读链表错误中断状态寄存器
|
0x0018
|
INT_TC1_MASK
|
通道传输完成中断屏蔽寄存器
|
0x001C
|
INT_TC2_MASK
|
链表节点传输完成中断屏蔽寄存器
|
0x0020
|
INT_ERR1_MASK
|
配置错误中断屏蔽寄存器
|
0x0024
|
INT_ERR2_MASK
|
数据传输错误中断屏蔽寄存器
|
0x0028
|
INT_ERR3_MASK
|
链表读取错误中断屏蔽寄存器
|
0x0404+0x20 × n
|
C(n)_CURR_CNT0
|
通道n的剩余数据量寄存器
|
0x0408+0x20 × n
|
C(n)_CURR_SRC_ADDR_L
|
通道n的源地址低位寄存器
|
0x040C+0x20 × n
|
C(n)_CURR_SRC_ADDR_H
|
通道n的源地址高位寄存器
|
0x0410+0x20 × n
|
C(n)_CURR_DES_ADDR_L
|
通道n的目的地址低位寄存器
|
0x0414+0x20 × n
|
C(n)_CURR_DES_ADDR_H
|
通道n的目的地址高位寄存器
|
0x0600
|
INT_TC1_RAW
|
原始通道传输完成中断状态寄存器
|
0x0608
|
INT_TC2_RAW
|
原始链表节点传输完成中断状态寄存器
|
0x0610
|
INT_ERR1_RAW
|
原始配置错误中断状态寄存器
|
0x0618
|
INT_ERR2_RAW
|
原始数据传输错误中断状态寄存器
|
0x0620
|
INT_ERR3_RAW
|
原始链表读取错误中断状态寄存器
|
0x0688
|
CH_PRI
|
优先级控制寄存器
|
0x0690
|
CH_STAT
|
DMA状态寄存器
|
0x0694
|
SEC_CTRL
|
全局安全控制寄存器
|
0x0800+0x40 × n
|
C(n)_LLI_L
|
通道n的链表地址低位配置寄存器
|
0x0804+0x40 × n
|
C(n)_LLI_H
|
通道n的链表地址高位配置寄存器
|
0x081C+0x40 × n
|
C(n)_CNT0
|
通道n的传输长度配置寄存器
|
0x0820+0x40 × n
|
C(n)_SRC_ADDR_L
|
通道n的源地址低位配置寄存器
|
0x0824+0x40 × n
|
C(n)_SRC_ADDR_H
|
通道n的源地址高位配置寄存器
|
0x0828+0x40 × n
|
C(n)_DES_ADDR_L
|
通道n的目的地址低位配置寄存器
|
0x082C+0x40 × n
|
C(n)_DES_ADDR_H
|
通道n的目的地址高位配置寄存器
|
0x0830+0x40 × n
|
C(n)_CONFIG
|
通道n的配置寄存器
|
0x0834+0x40 × n
|
C(n)_AXI_CONF
|
通道n的AXI特殊操作配置寄存器
|
0x0f00
|
DMAC_VERSION
|
版本寄存器
|
DMAC寄存器描述
INT_STAT
INT_STAT为中断状态寄存器。
Offset Address: 0x0000 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RO
|
int_stat
|
DMAC各通道经屏蔽后的中断状态,bit[3:0]分别对应通道3~0。
0:未产生中断;
1:已产生中断,该中断请求可能来自该通道的错误中断或传输完成中断。
|
0x0
|
INT_TC1
INT_TC1为通道传输完成中断状态寄存器。
Offset Address: 0x0004 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RO
|
int_tc1
|
DMAC各通道经过屏蔽后的通道传输完成中断状态,bit[3:0]分别对应通道3~0。
0:未产生中断;
1:已产生中断。
|
0x0
|
INT_TC2
INT_TC2为链表节点传输完成中断状态寄存器。
Offset Address: 0x0008 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RO
|
int_tc2
|
DMAC各通道经过屏蔽后的链表节点传输完成中断状态,bit[3:0]分别对应通道3~0。
0:未产生中断;
1:已产生中断。
|
0x0
|
INT_ERR1
INT_ERR1为配置错误中断状态寄存器。
Offset Address: 0x000C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RO
|
int_err1
|
DMAC各通道经过屏蔽后的配置错误中断状态,bit[3:0]分别对应通道3~0。
0:未产生中断;
1:已产生中断。
|
0x0
|
INT_ERR2
INT_ERR2为数据传输错误中断状态寄存器。
Offset Address: 0x0010 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RO
|
int_err2
|
DMAC各通道经过屏蔽后的数据传输错误中断状态,bit[3:0]分别对应通道3~0。
0:未产生中断;
1:已产生中断。
|
0x0
|
INT_ERR3
INT_ERR3为读链表错误中断状态寄存器。
Offset Address: 0x0014 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RO
|
int_err3
|
DMAC各通道经过屏蔽后的读链表错误中断状态,bit[3:0]分别对应通道3~0。
0:未产生中断;
1:已产生中断。
|
0x0
|
INT_TC1_MASK
INT_TC1_MASK为通道传输完成中断屏蔽寄存器。
Offset Address: 0x0018 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RW
|
int_tc1_mask
|
DMAC各通道传输完成中断屏蔽,bit[3:0]分别对应通道3~0。
0:屏蔽中断;
1:不屏蔽中断。
|
0x0
|
INT_TC2_MASK
INT_TC2_MASK为链表节点传输完成中断屏蔽寄存器。
Offset Address: 0x001C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RW
|
int_tc2_mask
|
DMAC各通道链表节点传输完成中断屏蔽,bit[3:0]分别对应通道3~0。
0:屏蔽中断;
1:不屏蔽中断。
|
0x0
|
INT_ERR1_MASK
INT_ERR1_MASK为配置错误中断屏蔽寄存器。
Offset Address: 0x0020 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RW
|
int_err1_mask
|
DMAC各通道配置错误中断屏蔽,bit[3:0]分别对应通道3~0。
0:屏蔽中断;
1:不屏蔽中断。
|
0x0
|
INT_ERR2_MASK
INT_ERR2_MASK为数据传输错误中断屏蔽寄存器。
Offset Address: 0x0024 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RW
|
int_err2_mask
|
DMAC各数据传输错误中断屏蔽,bit[3:0]分别对应通道3~0。
0:屏蔽中断;
1:不屏蔽中断。
|
0x0
|
INT_ERR3_MASK
INT_ERR3_MASK为链表读取错误中断屏蔽寄存器。
Offset Address: 0x0028 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RW
|
int_err3_mask
|
DMAC各通道链表读取错误中断屏蔽,bit[3:0]分别对应通道3~0。
0:屏蔽中断;
1:不屏蔽中断。
|
0x0
|
C(n)_CURR_CNT0
C(n)_CURR_CNT0为通道n的剩余数据量寄存器。
Offset Address: 0x0404+0x20 × n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:16]
|
-
|
reserved
|
保留。
|
0x0000
|
[15:0]
|
RO
|
curr_a_count
|
通道n当前节点剩余的Byte数。
|
0x0000
|
C(n)_CURR_SRC_ADDR_L
C(n)_CURR_SRC_ADDR_L为通道n的源地址寄存器。该寄存器继承通道的安全属性。
Offset Address: 0x0408+0x20 × n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
curr_src_addr_l
|
通道n当前正在传输的源地址的低32位。
|
0x00000000
|
C(n)_CURR_SRC_ADDR_H
C(n)_CURR_SRC_ADDR_H为通道n的源地址高位寄存器。
Offset Address: 0x040C+0x20 × n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1:0]
|
RO
|
curr_src_addr_h
|
通道n当前正在传输的源地址的高2位。
|
0x0
|
C(n)_CURR_DES_ADDR_L
C(n)_CURR_DES_ADDR_L为通道n的目的地址寄存器。该寄存器继承通道的安全属性。
Offset Address: 0x0410+0x20 × n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
curr_des_addr_l
|
通道n当前正在传输的目的地址低32位。
|
0x00000000
|
C(n)_CURR_DES_ADDR_H
C(n)_CURR_DES_ADDR_H为通道n的目的地址高位寄存器。
Offset Address: 0x0414+0x20 × n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1:0]
|
RO
|
curr_des_addr_h
|
通道n当前正在传输的目的地址的高2位。
|
0x0
|
INT_TC1_RAW
INT_TC1_RAW为原始通道传输完成中断状态寄存器。该寄存器的各个位域继承对应通道的安全属性。
Offset Address: 0x0600 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RWC
|
int_tc1_raw
|
各通道屏蔽前的通道传输完成中断状态,bit[3:0]分别对应通道3~0。
读:
0:未产生中断;
1:已产生中断。
写:
0:保持之前的值;
1:清除通道传输完成中断。
|
0x0
|
INT_TC2_RAW
INT_TC2_RAW为原始链表节点传输完成中断状态寄存器。该寄存器的各个位域继承对应通道的安全属性。
Offset Address: 0x0608 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RWC
|
int_tc2_raw
|
各通道屏蔽前的链表节点传输完成中断状态,bit[3:0]分别对应通道3~0。
读:
0:未产生中断;
1:已产生中断。
写:
0:保持之前的值;
1:清除节点完成中断。
|
0x0
|
INT_ERR1_RAW
INT_ERR1_RAW为原始配置错误中断状态寄存器。该寄存器的各个位域继承对应通道的安全属性。
Offset Address: 0x0610 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RWC
|
int_err1_raw
|
各通道屏蔽前的配置错误中断状态,bit[3:0]分别对应通道3~0。
读:
0:未产生中断;
1:已产生中断。
写:
0:保持之前的值;
1:清除配置错误中断。
|
0x0
|
INT_ERR2_RAW
INT_ERR2_RAW为原始数据传输错误中断状态寄存器。该寄存器的各个位域继承对应通道的安全属性。
Offset Address: 0x0618 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RWC
|
int_err2_raw
|
各通道屏蔽前的数据传输错误中断状态,bit[3:0]分别对应通道3~0。
读:
0:未产生中断;
1:已产生中断。
写:
0:保持之前的值;
1:清除数据传输错误中断。
|
0x0
|
INT_ERR3_RAW
INT_ERR3_RAW为原始链表读取错误中断状态寄存器。该寄存器的各个位域继承对应通道的安全属性。
Offset Address: 0x0620 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RWC
|
int_err3_raw
|
各通道屏蔽前的链表读取错误中断状态,bit[3:0]分别对应通道3~0。
读:
0:未产生中断;
1:已产生中断。
写:
0:保持之前的值;
1:清除链表读取错误中断。
|
0x0
|
CH_PRI
CH_PRI为优先级控制寄存器。该寄存器只能被安全CPU访问。
Offset Address: 0x0688 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:6]
|
RW
|
ch3_pri
|
通道3优先级模式配置寄存器。
00:0优先级(最高);
01:1优先级;
10:2优先级;
11:3优先级(最低)。
|
0x0
|
[5:4]
|
RW
|
ch2_pri
|
通道2优先级模式配置寄存器。
00:0优先级(最高);
01:1优先级;
10:2优先级;
11:3优先级(最低)。
|
0x0
|
[3:2]
|
RW
|
ch1_pri
|
通道1优先级模式配置寄存器。
00:0优先级(最高);
01:1优先级;
10:2优先级;
11:3优先级(最低)。
|
0x0
|
[1:0]
|
RW
|
ch0_pri
|
通道0优先级模式配置寄存器。
00:0优先级(最高);
01:1优先级;
10:2优先级;
11:3优先级(最低)。
|
0x0
|
CH_STAT
CH_STAT为DMA状态寄存器。
Offset Address: 0x0690 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RO
|
ch_stat
|
DMAC通道状态寄存器,bit[3:0]分别对应通道3~0。
0:对应的DMAC通道目前没有工作;
1:对应的DMAC通道目前正在工作。
|
0x0
|
SEC_CTRL
sec ctrl sec_ctrl
SEC_CTRL为DMA全局安全控制寄存器。
Offset Address: 0x0694 Total Reset Value: 0x0000_0002
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[1]
|
RW
|
intr_sec_ctrl
|
中断安全控制寄存器(只能通过安全操作访问)。
0:安全操作只能访问安全通道的中断信息,安全中断通过DMAC上报,非安全中断通过DMAC_NS上报;
1:安全操作能访问所有通道的信息,安全中断和非安全中断都会通过DMAC上报,DMAC_NS只上报非安全中断
|
0x1
|
[0]
|
RW
|
global_sec
|
全局寄存器的安全控制寄存器(只能通过安全操作访问)。
0:CH_PRI只有安全操作才能访问;
1:CH_PRI可以受安全和非安全操作访问。
|
0x0
|
C(n)_LLI_L
C(n)_LLI_L为通道n的链表地址配置寄存器。该寄存器继承通道的安全属性。
Offset Address: 0x0800+0x40 × n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:6]
|
RW
|
lli_l
|
通道n的下一个链表节点地址的[31:6]位,链表地址始终是512-bit对齐。
|
0x0000000
|
[5:2]
|
-
|
reserved
|
保留。
|
0x0
|
[1:0]
|
RW
|
chain_en
|
通道的链接使能。
00:链表链接使能无效;
01:保留;
10:链表链接使能有效;
11:保留。
|
0x0
|
C(n)_LLI_H
C(n)_LLI_H为通道n的链表地址高位配置寄存器。
Offset Address: 0x0804+0x40 × n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1:0]
|
RW
|
lli_h
|
通道n的下一个链表节点地址的[33:32]位,链表地址始终是512-bit对齐。
|
0x0
|
C(n)_CNT0
C(n)_CNT0为通道n的传输长度配置寄存器。该寄存器继承通道的安全属性。
Offset Address: 0x081C+0x40 × n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:16]
|
-
|
reserved
|
保留。
|
0x0000
|
[15:0]
|
RW
|
a_count
|
传输长度配置,即链表模式的单节点传输。
长度或非链表模式的传输总长度;
有效长度为1~65535,单位为Byte;
Acount配置为0会触发配置错误中断。
|
0x0000
|
C(n)_SRC_ADDR_L
C(n)_SRC_ADDR_L为通道n的源地址低位配置寄存器。该寄存器继承通道的安全属性。
Offset Address: 0x0820+0x40 × n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
src_addr_l
|
通道n的源地址低32位。
|
0x00000000
|
C(n)_SRC_ADDR_H
C(n)_SRC_ADDR_H为通道n的源地址高位配置寄存器。
Offset Address: 0x0824+0x40 × n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1:0]
|
RW
|
src_addr_h
|
通道n的源地址高2位。
|
0x0
|
C(n)_DES_ADDR_L
C(n)_DES_ADDR_L为通道n的目的地址低位配置寄存器。该寄存器继承通道的安全属性。
Offset Address: 0x0828+0x40 × n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
des_addr_l
|
通道n的目的地址低32位。
|
0x00000000
|
C(n)_DES_ADDR_H
C(n)_DES_ADDR_H为通道n的目的地址高位配置寄存器。
Offset Address: 0x082C+0x40 × n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1:0]
|
RW
|
des_addr_h
|
通道n的目的地址高2位。
|
0x0
|
C(n)_CONFIG
C(n)_CONFIG为通道n的配置寄存器。该寄存器继承通道的安全属性。
Offset Address: 0x0830+0x40 × n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31]
|
RW
|
si
|
源地址递增设置。
0:源地址不递增;
1:源地址每传一个数就递增一次。
源设备为外设时源地址不递增;源设备为存储器时源地址递增。
|
0x0
|
[30]
|
RW
|
di
|
目的地址递增设置。
0:目的地址不递增;
1:目的地址每传一个数就递增一次。
目的设备为外设时目的地址不递增;目的设备为存储器时目的地址递增。
|
0x0
|
[29:28]
|
-
|
reserved
|
保留。
|
0x0
|
[27:24]
|
RW
|
sl
|
源传输burst长度。
0x0:burst length为1;
0x1:burst length为2;
0x2:burst length为3;
0x3:burst length为4;
0x4:burst length为5;
0x5:burst length为6;
0x6:burst length为7;
0x7:burst length为8;
0x8:burst length为9;
0x9:burst length为10;
0xA:burst length为11;
0xB:burst length为12;
0xC:burst length为13;
0xD:burst length为14;
0xE:burst length为15;
0xF:burst length为16。
|
0x0
|
[23:20]
|
RW
|
dl
|
目的传输burst长度。
0x0:burst length为1;
0x1:burst length为2;
0x2:burst length为3;
0x3:burst length为4;
0x4:burst length为5;
0x5:burst length为6;
0x6:burst length为7;
0x7:burst length为8;
0x8:burst length为9;
0x9:burst length为10;
0xA:burst length为11;
0xB:burst length为12;
0xC:burst length为13;
0xD:burst length为14;
0xE:burst length为15;
0xF:burst length为16。
|
0x0
|
[19]
|
-
|
reserved
|
保留。
|
0x0
|
[18:16]
|
RW
|
sw
|
源数据宽度。
000:8-bit;
001:16-bit;
010:32-bit;
011:64-bit;
1xx:保留。
|
0x0
|
[15]
|
-
|
reserved
|
保留。
|
0x0
|
[14:12]
|
RW
|
dw
|
目的数据宽度。
000:8-bit;
001:16-bit;
010:32-bit;
011:64-bit;
1xx:保留。
|
0x0
|
[11:9]
|
-
|
reserved
|
保留。
|
0x0
|
[8:4]
|
RW
|
peri
|
外设请求号。
如果是存储器到存储器,这些位将被忽略。
|
0x00
|
[3:2]
|
RW
|
flow_ctrl
|
流控制和传输类型。
00:存储器和存储器之间传输,DMAC流控;
01:存储器和外设之间传输,DMAC流控;
10:存储器和外设之间传输,外设流控;
11:保留。
|
0x0
|
[1]
|
RW
|
itc_en
|
链表节点传输完成中断使能。该位用于配置当前链表节点传输完成后是否触发节点传输完成中断。
0:当前链表节点传输完成以后不触发链表节点传输完成中断;
1:当前链表节点传输完成以后触发链表节点传输完成中断,但是最后一个节点传输完成以后,链表节点传输完成中断不会被触发。
注意:无论该bit配置为0或1,通道所有链表节点传输完成以后均会上报通道传输完成中断。
|
0x0
|
[0]
|
RW
|
ch_en
|
当前通道使能控制。
当写该寄存器,控制当前通道的运行:
0:通道禁能;
1:通道使能。
当读该寄存器,显示当前通道的状态:
0:通道停止中;
1:通道运行中(链表传输使能时,通道一直使能)。
|
0x0
|
C(n)_AXI_CONF
C(n)_AXI_CONF为通道n的AXI特殊操作配置寄存器。该寄存器继承通道的安全属性,awprot位域和arprot位域只能被安全CPU访问。
Offset Address: 0x0834+0x40 × n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:20]
|
RW
|
awcache
|
配置AXI总线写命令cache的类型,遵循AXI总线协议。
|
0x0
|
[19:17]
|
RW
|
awprot
|
配置AXI总线写命令保护类型,遵循AXI总线协议。
|
0x0
|
[16:12]
|
-
|
reserved
|
保留。
|
0x00
|
[11:8]
|
RW
|
arcache
|
配置AXI总线读命令cache的类型,遵循AXI总线协议。
|
0x0
|
[7:5]
|
RW
|
arprot
|
配置AXI总线读命令保护类型,遵循AXI总线协议。
|
0x0
|
[4:0]
|
-
|
reserved
|
保留。
|
0x00
|
DMAC_VERSION
DMAC_VERSION为版本寄存器。
Offset Address: 0x0f00 Total Reset Value: 0x0000_C310
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
dmac_version
|
控制器版本信息。
|
0x0000C310
|
定时器
概述
Timer模块主要实现定时、计数功能,可以供操作系统用作系统时钟,也可以供应用程序用作定时和计数。系统提供8个Timer,其中4个仅支持安全OS访问。
特点
Timer具有以下特点:
- 带可编程8位预分频器的32bit/16bit减法定时器/计数器。
- Timer的计数时钟为3MHz时钟。
- 支持3种计数模式:自由运行模式、周期模式和单次计数模式。
- 有2种载入计数初值的方法,分别通过TIMERx_LOAD和TIMERx_BGLOAD寄存器实现。
- 当前的计数值可随时读取。
- 当计数值减到0时会产生一个中断。
功能描述
Timer基于一个32bit/16bit(可配置)减法计数器。计数器的值在每个计数时钟的上升沿减1。当计数值递减到零,Timer将产生一个中断。
Timer有以下3种计数模式:
-
自由运行模式
定时器持续计数,当计数值减到0时又自动回转到其最大值,并继续计数。当计数长度为32bit时,最大值为0xFFFF_FFFF。当计数长度为16bit时,最大值为0xFFFF。在自由模式下,也可以载入计数值,并立即从载入值递减计数,但计到0时回转到其最大值。
-
周期模式
定时器持续计数,当计数值减到0时从TIMERx_BGLOAD寄存器中再次载入初值并继续计数。
-
单次计数模式
向定时器中载入计数初值。当定时器的计数值减到0时就停止计数,直到重新被载入新值且定时器处于使能状态,才再次开始计数。
每个Timer具有一个预分频计数器(prescaler),可将其工作时钟在Timer内部再次进行1分频、16分频或256分频。进一步提高计数时钟频率的选择灵活性。
对定时器载入计数初值的方法如下:
工作方式
初始化
系统初始化时应对Timer进行初始化。初始化TimerX(TimerX中的“X”取值为0~11)时应按以下步骤进行配置:
- 写TIMERx_LOAD寄存器,为Timer载入计数初值。
- 当需要Timer工作在周期计数模式下、且计数周期与载入Timer的计数初值不同时,写TIMERx_BGLOAD寄存器,设置Timer的计数周期。
- 配置TIMERx_CONTROL寄存器,设置Timer的计数模式、计数器长度、预分频因子及中断屏蔽,同时启动Timer计数。
中断处理
Timer主要用于定时产生中断,因此Timer的中断处理主要是激活等待定时中断的进程。操作步骤如下:
- 配置TIMERx_INTCLR寄存器,清除Timer中断。
- 激活等待该中断的进程,使其继续执行。
- 当所有等待该中断的进程完成或再次执行到等待中断的休眠状态时,恢复中断现场,继续执行当前被中断的程序。
Timer寄存器概览
Timer模块自有一组寄存器,每个Timer的寄存器除基址不相同外其他特性都相同。
- Timer0基地址:0x1100_0000
- Timer1基地址:0x1100_0020
- Timer2基地址:0x1100_1000
- Timer3基地址:0x1100_1020
- Timer4(SEC_TIMER0)基地址:0x1100_2000
- Timer5(SEC_TIMER1)基地址:0x1100_2020
- Timer6(SEC_TIMER2)基地址:0x1100_3000
- Timer7(SEC_TIMER3)基地址:0x1100_3020
说明:
TIMERx中的“x”取值为0~7,各控制器的寄存器相同,寄存器描述均以Timer0为例进行描述。Timer4~Timer7可配置为仅安全系统访问。
表 1 Timer寄存器概览
偏移地址
|
名称
|
描述
|
0x000
|
TIMERx_LOAD
|
计数初值寄存器
|
0x004
|
TIMERx_VALUE
|
当前计数值寄存器
|
0x008
|
TIMERx_CONTROL
|
Timer控制寄存器
|
0x00C
|
TIMERx_INTCLR
|
中断清除寄存器
|
0x010
|
TIMERx_RIS
|
原始中断寄存器
|
0x014
|
TIMERx_MIS
|
屏蔽后的中断寄存器
|
0x018
|
TIMERx_BGLOAD
|
周期模式计数初值寄存器
|
Timer寄存器描述
TIMERx_LOAD
TIMERx_LOAD为计数初值寄存器。用来配置定时器的计数初值。
说明:
- 向TIMERx_LOAD寄存器写入的最小有效值为1。
- 当向TIMERx_LOAD写0时,Dual-Timer将会立刻产生1个中断。
TIMERx_LOAD和TIMERx_BGLOAD的区别:
向TIMERx_BGLOAD寄存器和TIMERx_LOAD寄存器都写入值,则在TIMCLK的下一个上升沿当前计数值首先更新为TIMERx_LOAD的写入值。由于向TIMERx_LOAD寄存器写入值时,TIMERx_BGLOAD的值也会被覆盖,所以读TIMERx_BGLOAD,返回的值为TIMERx_LOAD与TIMERx_BGLOAD中最晚被写入的寄存器的值。当定时器处于周期模式且计数值减到0时,将从TIMERx_BGLOAD寄存器中再次载入初值并继续计数。
Offset Address: 0x000 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
timer0_load
|
Timer0的计数初值。
|
0x00000000
|
TIMERx_VALUE
TIMERx_VALUE为当前计数值寄存器。用于给出正在递减的计数器的当前值。
当向TIMERx_LOAD寄存器的写操作发生后,TIMERx_VALUE在PCLK时钟域立刻反映出计数器的新载入值,不用等到下一个被TIMCLKENx使能的TIMCLK时钟沿到来。
说明:
当定时器处于16bit模式时,32bit的TIMERx_VALUE寄存器的高16bit并未被自动设为0。若该定时器以前处于32bit模式,并且自从进入16bit模式后TIMERx_LOAD从未被写过,则TIMERx_VALUE寄存器的高16bit可能具有非零值。
Offset Address: 0x004 Total Reset Value: 0xFFFF_FFFF
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
timer0_value
|
正在递减的Timer0的当前值。
|
0xFFFFFFFF
|
TIMERx_CONTROL
TIMERx_CONTROL为TIMER控制寄存器。
说明:
当选择用周期模式进行计数时,需要将TIMERx_CONTROL[timermode]置1、TIMERx_CONTROL[oneshot]置0。
Offset Address: 0x008 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7]
|
RW
|
timeren
|
定时器使能。
0:Timer禁止;
1:Timer使能。
|
0x0
|
[6]
|
RW
|
timermode
|
定时器的计数模式。
0:自由运行模式;
1:周期模式。
|
0x0
|
[5]
|
RW
|
intenable
|
TIMERx_RIS中断屏蔽。
0:屏蔽该中断;
1:不屏蔽该中断。
|
0x0
|
[4]
|
-
|
reserved
|
保留。
|
0x0
|
[3:2]
|
RW
|
timerpre
|
该字段用于设置Timer的预分频因子。
00:不经过预分频,时钟频率除以1;
01:4级预分频,将Timer时钟频率除以16;
10:8级预分频,将Timer时钟频率除以256;
11:未定义,若设为该值,相当于8级预分频,将Timer时钟频率除以256。
|
0x0
|
[1]
|
RW
|
timersize
|
选择16bit/32bit计数器操作模式。
0:16bit计数器;
1:32bit计数器。
|
0x0
|
[0]
|
RW
|
oneshot
|
选择计数模式为单次计数模式还是周期计数模式。
0:周期计数模式或自由运行模式;
1:单次计数模式。
|
0x0
|
TIMERx_INTCLR
TIMERx_INTCLR为中断清除寄存器。对该寄存器的任何写操作都会清除相应计数器的中断状态。
须知:
本寄存器是只写寄存器,写入任意值,都会引起Timer清中断,内部并不记忆写入的值,无复位值。
Offset Address: 0x00C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
WO
|
timer0_intclr
|
写该寄存器,清除Timer0的中断输出。
|
0x00000000
|
TIMERx_RIS
TIMERx_RIS为原始中断寄存器。
Offset Address: 0x010 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
RO
|
reserved
|
保留。写入无效,读时返回0。
|
0x00000000
|
[0]
|
RO
|
timer0ris
|
Timer0的原始中断状态。
0:未产生中断;
1:已产生中断。
|
0x0
|
TIMERx_MIS
TIMERx_MIS为屏蔽后的中断寄存器。
Offset Address: 0x014 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留。
|
0x00000000
|
[0]
|
RO
|
timer0mis
|
屏蔽后的Timer0的中断状态。
0:中断无效;
1:中断有效。
|
0x0
|
TIMERx_BGLOAD
TIMERx_BGLOAD为周期模式计数初值寄存器。
TIMERx_BGLOAD寄存器中包含了定时器的计数初值。该寄存器用于在周期模式下,当定时器的计数值递减到0时重新载入计数初值。
该寄存器提供了访问TIMERx_LOAD寄存器的另一种方法。不同之处在于写入值到TIMERx_BGLOAD寄存器中不会导致定时器立即从新写入值开始计数。
Offset Address: 0x018 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
timer0bgload
|
Timer0的计数初值。
注意:与Timerx_Load寄存器有区别,具体请参见TIMERx_LOAD寄存器的描述。
|
0x00000000
|
WatchDog
概述
WatchDog用于系统异常情况下,一定时间内发出复位信号,以复位整个系统。系统提供1个WatchDog模块。
特点
WatchDog具备以下特点:
- 内部具有一个32bit减法计数器。
- 支持超时时间间隔(即计数初值)可配置。
- 支持寄存器锁定,防止寄存器被误改。
- 支持超时中断产生。
- 支持复位信号产生。
- 支持调试模式。
功能描述
应用框图
系统通过系统总线给WatchDog配置寄存器参数值。WatchDog定时发出中断请求给系统,并在系统没有响应中断的情况下(如:死机),发出WDG_RSTN复位信号(当芯片使用内置POR时,WatchDog产生的复位信号会复位芯片同时通过SYS_RSTN_OUT管脚输出。当芯片使用外置POR时,WatchDog产生的复位信号通过SYS_RSTN_OUT管脚输出给外置复位电路,然后该复位电路产生的复位信号通过RSTN输入管脚复位整芯片),使系统复位,达到监控系统运行的目的。
WatchDog应用框图如图1所示。
图 1 WatchDog应用框图

功能原理
WatchDog的运行基于1个32bit减法计数器,计数初值由寄存器WDG_LOAD载入。在WatchDog时钟使能情况下,计数值在每个计数时钟的上升沿减1。当计数值递减到0,WatchDog将产生一个中断。然后在下一个计数时钟上升沿,计数器又从寄存器中重新载入计数初值,开始递减计数。
如果计数器的计数值第二次计数递减到0时,处理器还没有清除WatchDog中断,则WatchDog将发出复位信号WDG_RSTN,计数器停止计数。
根据实际应用需要,可通过配置WDG_CONTROL使能或者禁止WatchDog产生中断和复位信号:
- 当禁止产生中断时,计数器将暂停计数。
- 当重新开启中断时,WatchDog将从WDG_LOAD的设定值开始计数,而不是从计数器上次停止时的计数值开始计数。在中断到来之前,可以重新载入初值。
通过配置WDG_LOCK寄存器,可以禁止对WatchDog内部寄存器进行写操作:
该特性保护WatchDog的寄存器不被软件错误修改,从而使得在异常情况下,WatchDog不至于被软件错误地中止操作。
在调试模式下,WatchDog自动关闭,以防止干扰正常的调试操作。
工作方式
计数时钟频率配置
WatchDog计数时钟为3MHz时钟。
WatchDog计数时间为TWDG:

说明:
其中上式中,各参数代表的意思分别是:
- TWDG表示WatchDog计数时间;
- ValueWDG_LOAD表示WatchDog计数初值;
- fclk表示WatchDog计数时钟频率。
WatchDog的计数时间范围值为0s~1400s。
系统初始化配置
系统上电复位后WatchDog计数器处于停止计数状态,在系统初始化过程中需要将WatchDog初始化并启动其运行。WatchDog的初始化过程如下:
- 写寄存器WDG_LOAD,设定计数初值。
- 写寄存器WDG_CONTROL,打开中断屏蔽并启动WatchDog计数。
- 写寄存器WDG_LOCK,给WatchDog上锁,防止软件错误修改WatchDog的配置。
中断处理过程
收到WatchDog发出的中断后,应及时清除其中断状态,并使其载入计数初值重新开始计数。WatchDog中断处理的过程如下:
- 向WDG_LOCK写0x1ACC_E551,为WatchDog开锁。
- 写寄存器WDG_INTCLR,清除WatchDog的中断状态,同时也使WatchDog自动载入计数初值重新开始计数。
- 向寄存器WDG_LOCK写入0x1ACC_E551以外的任何值,给WatchDog上锁。
关闭WatchDog
向寄存器WDG_CONTROL[inten]控制位写入0或1控制WatchDog的状态:
- 0:关闭WatchDog;
- 1:打开WatchDog。
WDG寄存器概览
每个WatchDog 模块各自有一组寄存器,每个WatchDog 的寄存器除基址不相同外其他特性都相同。
WatchDog寄存器概览如Tabela 1所示。
表 1 WatchDog寄存器概览(基址是0x1103_0000)
偏移地址
|
名称
|
描述
|
0x0000
|
WDG_LOAD
|
计数初值寄存器
|
0x0004
|
WDG_VALUE
|
计数器当前值寄存器
|
0x0008
|
WDG_CONTROL
|
控制寄存器
|
0x000C
|
WDG_INTCLR
|
中断清除寄存器
|
0x0010
|
WDG_RIS
|
原始中断寄存器
|
0x0014
|
WDG_MIS
|
屏蔽后的中断寄存器
|
0x0C00
|
WDG_LOCK
|
LOCK寄存器
|
WDG寄存器描述
WDG_LOAD
WDG_LOAD为计数初值寄存器。用来配置WatchDog内部计数器的计数初值,计数最小初始值应大于0。
Offset Address: 0x0000 Total Reset Value: 0xFFFF_FFFF
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
wdg_load
|
计数初值。
|
0xFFFFFFFF
|
WDG_VALUE
WDG_VALUE为计数器当前值寄存器。用来读出WatchDog内部计数器的当前计数值。
Offset Address: 0x0004 Total Reset Value: 0xFFFF_FFFF
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RO
|
wdogvalue
|
WatchDog计数器当前值。
|
0xFFFFFFFF
|
WDG_CONTROL
WDG_CONTROL为控制寄存器。用来控制WatchDog的打开/关闭、中断和复位功能。
Offset Address: 0x0008 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1]
|
RW
|
resen
|
WatchDog复位信号输出使能。
0:禁止;
1:使能。
|
0x0
|
[0]
|
RW
|
inten
|
WatchDog中断信号输出使能。
0:计数器停止计数,计数值保持当前值不变,WatchDog被关闭;
1:既启动计数器又使能中断,WatchDog被启动。
|
0x0
|
WDG_INTCLR
WDG_INTCLR为中断清除寄存器。用来清除WatchDog中断,使WatchDog重新载入初值进行计数。本寄存器是只写寄存器,写入任意值,都会引起WatchDog清中断,内部并不记忆写入的值,无复位值。
Offset Address: 0x000C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
WO
|
wdg_intclr
|
对该寄存器写入任意值均可清除WatchDog的中断,并使WatchDog从寄存器WDG_LOAD中重新载入初值计数。
|
0x0000_0000
|
WDG_RIS
WDG_RIS为原始中断寄存器。用来反映WatchDog原始中断状态。
Offset Address: 0x0010 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留。
|
0x00000000
|
[0]
|
RO
|
wdogris
|
WatchDog原始中断状态,当计数器的计数值递减到0时,该位置1。
0:未产生中断;
1:已产生中断。
|
0x0
|
WDG_MIS
WDG_MIS为屏蔽后的中断寄存器。用来反映屏蔽后的WatchDog中断状态。
Offset Address: 0x0014 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留。
|
0x00000000
|
[0]
|
RO
|
wdogmis
|
WatchDog屏蔽后的中断状态。
0:未产生中断或者中断被屏蔽;
1:已产生中断。
|
0x0
|
WDG_LOCK
WDG_LOCK为LOCK寄存器。用来控制WatchDog寄存器的读写权限。
Offset Address: 0x0C00 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
wdg_lock
|
向该寄存器写入0x1ACC_E551,可打开所有寄存器的写权限;
向该寄存器写入其他值则关闭写权限。
读该寄存器返回加锁的状态而不是写入该寄存器的值:
0x0000_0000:允许写访问(未加锁);
0x0000_0001:禁止写访问(已加锁)。
|
0x00000000
|
实时时钟
概述
实时时钟RTC(Real Time Clock)用于实现时间显示和定时报警功能。
特点
RTC具备以下特点:
- 内部具有1个16bit的天计数器,5bit的小时计数器,6bit的分计数器,6bit的秒计数器和7bit的10ms计数器。
- 计数时钟100Hz
- 计数初值可配置
- 计数比较值可配置
- 支持超时中断产生
- 支持软复位
- 支持固定分频模式
- 64bit用户寄存器提供用户保存数据
功能描述
RTC的运行基于1个共同40bit的(天,时,分,秒,10ms)加法计数器,计数初值由寄存器RTC_LR_10MS、RTC_LR_S、RTC_LR_M、RTC_LR_H、RTC_LR_D_L、RTC_LR_D_H载入。在当计数值递加到寄存器与RTC_MR_10MS、RTC_MR_S、RTC_MR_M、RTC_MR_H、RTC_MR_D_L、RTC_MR_D_H寄存器值相等时,RTC将产生一个中断,然后在下一个计数时钟上升沿,计数器继续递增计数。
根据实际应用需要,可通过配置RTC_IMSC使能或者禁止RTC产生中断信号。此时,存在以下两种情况:
RTC的计数时钟采用的是100Hz时钟,同时提供16bit的天计数,便于通过天计数值转换为具体的年、月、日。
工作方式
计数时钟频率
RTC采用100Hz时钟进行计数,计数最大时间为:
TRTC = 216 = 65536(天)
说明:
TRTC表示RTC计数时间。
软复位
通过配置RTC复位寄存器RTC_POR_N,可以实现对RTC的单独软复位。软复位后各个RTC配置寄存器的值均恢复为默认值,因此软复位后需要重新对这些寄存器进行初始化配置。
软复位步骤如下:
- 向RTC_POR_N写0,对RTC软复位。
- 等待30ms。
RTC初始化
RTC在第一次上电时,系统需要将RTC初始化。RTC的初始化过程如下:
- 配置RTC_POR_N,复位RTC。
- 等待30ms。
- 配置RTC_IMSC,设置RTC中断屏蔽位。
- 配置RTC_MR_10MS、RTC_MR_S、RTC_MR_M、RTC_MR_H、RTC_MR_D_L、RTC_MR_D_H,设置RTC比较值。
- 配置RTC_LR_10MS、RTC_LR_S、RTC_LR_M、RTC_LR_H、RTC_LR_D_L、RTC_LR_D_H,设置RTC计数初始值。
- 配置RTC_LOAD为1,让RTC计数初始值加载RTC计数器中。
- 等待10ms。
- RTC按照100Hz的计数时钟频率,从RTC_LR_10MS、RTC_LR_S、RTC_LR_M、RTC_LR_H、RTC_LR_D_L、RTC_LR_D_H中的值开始计数,当计数到RTC_MR_10MS、RTC_MR_S、RTC_MR_M、RTC_MR_H、RTC_MR_D_L、RTC_MR_D_H中的值时,将根据RTC_IMSC的设置,决定是否产生中断。
RTC时间配置
RTC时间配置过程如下:
- 配置RTC_LR_10MS、RTC_LR_S、RTC_LR_M、RTC_LR_H、RTC_LR_D_L、RTC_LR_D_H,设置RTC计数初始值。
- 配置RTC_LOAD为1,让RTC计数初始值加载到RTC计数器中。
- 等待10ms。
RTC时间读取
RTC时间读取过程如下:
- 配置RTC_LOAD为0x2。
- 回读RTC_LOAD的值,若不为0x0,重复步骤2;若为0x0,向下执行步骤3。
- 等待1ms。
- 从RTC_10MS_COUNT、RTC_S_COUNT、RTC_M_COUNT、RTC_H_COUNT、RTC_D_COUNT_L、RTC_D_COUNT_H寄存器读取时间值。
中断处理
系统收到RTC发出的中断后,表示定时时间到,用户可以执行相应的自定义操作,RTC计数器仍然保持递增计数。RTC中断处理的过程如下:
- 配置RTC_INT_CLR为1,清除RTC的中断状态。
- 如果需要继续设置定时时间,则向寄存器RTC_MR_10MS、RTC_MR_S、RTC_MR_M、RTC_MR_H、RTC_MR_D_L、RTC_MR_D_H写入新的比较值。
RTC寄存器概览
RTC寄存器概览如表1所示。
表 1 RTC内部寄存器概览(基址是0x1111_0000)
偏移地址
|
名称
|
描述
|
0x0000
|
RTC_10MS_COUNT
|
RTC 10ms计数值寄存器
|
0x0004
|
RTC_S_COUNT
|
RTC秒计数值寄存器
|
0x0008
|
RTC_M_COUNT
|
RTC分计数值寄存器
|
0x000C
|
RTC_H_COUNT
|
RTC时计数值寄存器
|
0x0010
|
RTC_D_COUNT_L
|
RTC天计数值低8位寄存器
|
0x0014
|
RTC_D_COUNT_H
|
RTC天计数值高8位寄存器
|
0x0018
|
RTC_MR_10MS
|
RTC 10ms定时值寄存器
|
0x001C
|
RTC_MR_S
|
RTC秒定时值寄存器
|
0x0020
|
RTC_MR_M
|
RTC分定时值寄存器
|
0x0024
|
RTC_MR_H
|
RTC时定时值寄存器
|
0x0028
|
RTC_MR_D_L
|
RTC天定时值低8位寄存器
|
0x002C
|
RTC_MR_D_H
|
RTC天定时值高8位寄存器
|
0x0030
|
RTC_LR_10MS
|
RTC 10ms定时值寄存器
|
0x0034
|
RTC_LR_S
|
RTC秒设置值寄存器
|
0x0038
|
RTC_LR_M
|
RTC分设置值寄存器
|
0x003C
|
RTC_LR_H
|
RTC时设置值寄存器
|
0x0040
|
RTC_LR_D_L
|
RTC天设置值低8位寄存器
|
0x0044
|
RTC_LR_D_H
|
RTC天设置值高8位寄存器
|
0x0048
|
RTC_LOAD
|
RTC设置值使能加载寄存器
|
0x004C
|
RTC_IMSC
|
RTC中断使能寄存器
|
0x0050
|
RTC_INT_CLR
|
RTC中断清除寄存器
|
0x0054
|
RTC_MSC_INT
|
RTC mask中断状态寄存器
|
0x0058
|
RTC_RAW_INT
|
RTC原始中断状态寄存器
|
0x005C
|
RTC_CLK
|
RTC输出时钟选择寄存器
|
0x0060
|
RTC_POR_N
|
RTC复位控制寄存器
|
0x0068
|
RTC_UV_CTRL
|
RTC内部低压检测控制寄存器
|
0x006C
|
RTC_ANA_CTRL
|
RTC振荡电流控制寄存器
|
0x0144
|
SDM_COEF_OUTSIDE_H
|
外部分频系数高4位寄存器
|
0x0148
|
SDM_COEF_OUTSIDE_L
|
外部分频系数低8位寄存器
|
0x014C
|
USER_REGISTER1
|
64bit用户寄存器1
|
0x0150
|
USER_REGISTER2
|
64bit用户寄存器2
|
0x0154
|
USER_REGISTER3
|
64bit用户寄存器3
|
0x0158
|
USER_REGISTER4
|
64bit用户寄存器4
|
0x015C
|
USER_REGISTER5
|
64bit用户寄存器5
|
0x0160
|
USER_REGISTER6
|
64bit用户寄存器6
|
0x0164
|
USER_REGISTER7
|
64bit用户寄存器7
|
0x0168
|
USER_REGISTER8
|
64bit用户寄存器8
|
0x0180
|
USER_DEFINE_REGISTER1
|
用户自定义寄存器1
|
0x0184
|
USER_DEFINE_REGISTER2
|
用户自定义寄存器2
|
0x0188
|
USER_DEFINE_REGISTER3
|
用户自定义寄存器3
|
0x018C
|
USER_DEFINE_REGISTER4
|
用户自定义寄存器4
|
0x0190
|
RTC_REG_LOCK1
|
RTC锁定寄存器1
|
0x0194
|
RTC_REG_LOCK2
|
RTC锁定寄存器2
|
0x0198
|
RTC_REG_LOCK3
|
RTC锁定寄存器3
|
0x019C
|
RTC_REG_LOCK4
|
RTC锁定寄存器4
|
RTC内部寄存器描述
RTC_10MS_COUNT
RTC_10MS_COUNT为RTC 10ms计数值寄存器。
Offset Address: 0x0000 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:7]
|
-
|
reserved
|
保留。
|
0x0000000
|
[6:0]
|
RO
|
rtc_10ms_count
|
RTC 10ms 计数器值,表示当前计时的10ms 时间值。取值范围:[0, 99]
|
0x00
|
RTC_S_COUNT
RTC_S_COUNT为RTC秒计数值寄存器。
Offset Address: 0x0004 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:6]
|
-
|
reserved
|
保留。
|
0x0000000
|
[5:0]
|
RO
|
rtc_s_count
|
RTC 秒计数器值,表示当前计时的秒时间值。取值范围:[0, 59]
|
0x00
|
RTC_M_COUNT
RTC_M_COUNT为RTC分计数值寄存器。
Offset Address: 0x0008 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:6]
|
-
|
reserved
|
保留。
|
0x0000000
|
[5:0]
|
RO
|
rtc_m_count
|
RTC 分计数器值,表示当前计时的分时间值。取值范围:[0, 59]
|
0x00
|
RTC_H_COUNT
RTC_H_COUNT为RTC时计数值寄存器。
Offset Address: 0x000C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:5]
|
-
|
reserved
|
保留。
|
0x0000000
|
[4:0]
|
RO
|
rtc_h_count
|
RTC 时计数器值,表示当前计时的小时时间值。取值范围:[0, 23]
|
0x00
|
RTC_D_COUNT_L
RTC_D_COUNT_L为RTC天计数值低8位寄存器。
Offset Address: 0x0010 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RO
|
rtc_d_count_l
|
RTC 天计数器值的低8 位,与RTC_D_COUNT_H配合,表示当前计时的天时间值,取值范围:[0, 65535]
|
0x00
|
RTC_D_COUNT_H
RTC_D_COUNT_H为RTC天计数值高8位寄存器。
Offset Address: 0x0014 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RO
|
rtc_d_count_h
|
RTC 天计数器值的高8 位,与RTC_D_COUNT_L配合,表示当前计时的天时间值,取值范围:[0, 65535]
|
0x00
|
RTC_MR_10MS
RTC_MR_10MS为RTC 10ms定时值寄存器。
Offset Address: 0x0018 Total Reset Value: 0x0000_007f
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:7]
|
-
|
reserved
|
保留。
|
0x0000000
|
[6:0]
|
RW
|
rtc_mr_10ms
|
RTC 10ms 定时值,表示定时的10ms 时间值。取值范围:[0, 99]
|
0x7f
|
RTC_MR_S
RTC_MR_S为RTC秒定时值寄存器。
Offset Address: 0x001C Total Reset Value: 0x0000_003f
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:6]
|
-
|
reserved
|
保留。
|
0x0000000
|
[5:0]
|
RW
|
rtc_mr_s
|
RTC 秒定时值,表示定时的秒时间值。取值范围:[0, 59]
|
0x3f
|
RTC_MR_M
RTC_MR_M为RTC分定时值寄存器。
Offset Address: 0x0020 Total Reset Value: 0x0000_003f
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:6]
|
-
|
reserved
|
保留。
|
0x0000000
|
[5:0]
|
RW
|
rtc_mr_m
|
RTC 分定时值,表示定时的分时间值。取值范围:[0, 59]
|
0x3f
|
RTC_MR_H
RTC_MR_H为RTC时定时值寄存器。
Offset Address: 0x0024 Total Reset Value: 0x0000_001f
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:5]
|
-
|
reserved
|
保留。
|
0x0000000
|
[4:0]
|
RW
|
rtc_mr_h
|
RTC 时定时值,表示定时的小时时间值。取值范围:[0, 23]
|
0x1f
|
RTC_MR_D_L
RTC_MR_D_L为RTC天定时值低8位寄存器。
Offset Address: 0x0028 Total Reset Value: 0x0000_00ff
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
rtc_mr_d_l
|
RTC 天定时值的低8 位,与RTC_MR_D_H配合,表示定时的天时间值,取值范围:[0, 65535]
|
0xff
|
RTC_MR_D_H
RTC_MR_D_H为RTC天定时值高8位寄存器。
Offset Address: 0x002C Total Reset Value: 0x0000_00ff
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
rtc_mr_d_h
|
RTC 天定时值的高8 位,与RTC_MR_D_L配合,表示定时的天时间值,取值范围:[0, 65535]
|
0xff
|
RTC_LR_10MS
RTC_LR_10MS为RTC 10ms设置值寄存器。
Offset Address: 0x0030 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:7]
|
-
|
reserved
|
保留。
|
0x0000000
|
[6:0]
|
RW
|
rtc_lr_10ms
|
RTC 10ms 设置值,表示设置的10ms 时间值。取值范围:[0, 99]
|
0x00
|
RTC_LR_S
RTC_LR_S为RTC秒设置值寄存器。
Offset Address: 0x0034 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:6]
|
-
|
reserved
|
保留。
|
0x0000000
|
[5:0]
|
RW
|
rtc_lr_s
|
RTC 秒设置值,表示设置的秒时间值。取值范围:[0, 59]
|
0x00
|
RTC_LR_M
RTC_LR_M为RTC分设置值寄存器。
Offset Address: 0x0038 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:6]
|
-
|
reserved
|
保留。
|
0x0000000
|
[5:0]
|
RW
|
rtc_lr_m
|
RTC 分设置值,表示设置的分时间值。取值范围:[0, 59]
|
0x00
|
RTC_LR_H
RTC_LR_H为RTC时设置值寄存器。
Offset Address: 0x003C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:5]
|
-
|
reserved
|
保留。
|
0x0000000
|
[4:0]
|
RW
|
rtc_lr_h
|
RTC 时设置值,表示设置的小时时间值。取值范围:[0, 23]
|
0x00
|
RTC_LR_D_L
RTC_LR_D_L为RTC天设置值低8位寄存器。
Offset Address: 0x0040 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
rtc_lr_d_l
|
RTC 天设置值的低8 位,与RTC_LR_D_H配合,表示设置的天时间值,取值范围:[0, 65535]
|
0x00
|
RTC_LR_D_H
RTC_LR_D_H为RTC天设置值高8位寄存器。
Offset Address: 0x0044 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
rtc_lr_d_h
|
RTC 天设置值的高8 位,与RTC_LR_D_L配合,表示设置的天时间值,取值范围:[0, 65535]
|
0x00
|
RTC_LOAD
RTC_LOAD为RTC设置值使能加载寄存器。
Offset Address: 0x0048 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:3]
|
-
|
reserved
|
保留。
|
0x00000000
|
[2]
|
RW
|
rtc_lock_bypass
|
RTC 时间锁存使能信号。
0:使能,RTC计数值(0x00~0x05)只会在锁存成功后才更新。
1:不使能,RTC 计数值(0x00~0x05)实时更新。
|
0x0
|
[1]
|
RW
|
rtc_lock
|
RTC 时间锁存信号。软件写入1后,硬件会在锁存成功后自动清零。
注意:该寄存器在rtc_lock_bypass 为0 时才有效。
|
0x0
|
[0]
|
RW
|
rtc_load
|
把RTC 的时间配置值写入RTC 累加器中的使能信号。软件写入1 后,硬件会在加载成功后自动清零。
|
0x0
|
RTC_IMSC
RTC_IMSC为RTC中断使能寄存器。
Offset Address: 0x004C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:3]
|
-
|
reserved
|
保留。
|
0x00000000
|
[2]
|
RW
|
rtc_imsc
|
RTC 总中断输出使能位。
0:不输出中断;
1:输出中断。
|
0x0
|
[1]
|
RW
|
rtc_imsc_uv
|
电池低压检测中断输出使能位。
0:不输出中断;
1:输出中断。
|
0x0
|
[0]
|
RW
|
rtc_imsc_time
|
RTC 定时中断输出使能位。
0:不输出中断;
1:输出中断。
|
0x0
|
RTC_INT_CLR
RTC_INT_CLR为RTC中断清除寄存器。
Offset Address: 0x0050 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留。
|
0x00000000
|
[0]
|
WO
|
rtc_int_clr
|
RTC 中断清除寄存器,软件写入任意值都可以清除中断,回读无意义。
|
0x0
|
RTC_MSC_INT
RTC_MSC_INT为RTC mask中断状态寄存器。
Offset Address: 0x0054 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1]
|
RO
|
mask_int_uv
|
屏蔽后的电池低压检测中断状态寄存器。
0:无中断;
1:有中断。
|
0x0
|
[0]
|
RO
|
mask_int_time
|
屏蔽后的RTC定时中断状态寄存器。
0:无中断;
1:有中断。
|
0x0
|
RTC_RAW_INT
RTC_RAW_INT为RTC原始中断状态寄存器。
Offset Address: 0x0058 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1]
|
RO
|
raw_int_uv
|
电池低压检测原始中断状态寄存器。
0:无中断;
1:有中断。
|
0x0
|
[0]
|
RO
|
raw_int_time
|
RTC 定时原始中断状态寄存器。
0:无中断;
1:有中断。
|
0x0
|
RTC_CLK
RTC_CLK为RTC输出时钟选择寄存器。
Offset Address: 0x005C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1:0]
|
RW
|
clk_out_sel
|
RTC 输出的测试时钟选择。
00:输出晶体的振荡时钟;
01:输出校正后的100Hz时钟;
1X:输出1Hz 时钟。
|
0x0
|
RTC_POR_N
RTC_POR_N为RTC复位控制寄存器。
Offset Address: 0x0060 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留。
|
0x00000000
|
[0]
|
RW
|
rtc_por_n
|
RTC 模块的复位信号。复位成功后自动置1。
0:复位。
1:非复位,正常工作。
|
0x1
|
RTC_UV_CTRL
RTC_UV_CTRL为RTC内部低压检测控制寄存器。
Offset Address: 0x0068 Total Reset Value: 0x0000_0004
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:6]
|
-
|
reserved
|
保留。
|
0x0000000
|
[5]
|
RW
|
bat_uv_ctrl_en
|
低压检测使能控制。
0:关闭;
1:打开。
|
0x0
|
[4]
|
RW
|
bat_uv_ctrl_sel
|
低压检测来源选择。
0:不经过滤波处理;
1:经过滤波处理。
|
0x0
|
[3:2]
|
RW
|
bat_uv_sel
|
电池欠压检测的阈值电压设置(建议默认为01)。
00:1.6V;
01:1.8V;
10:2V;
11:2.2V。
|
0x1
|
[1:0]
|
RW
|
sample_time
|
低压检测周期。
00:1秒;
01:1分钟;
10:10 分钟;
11:30 分钟。
|
0x0
|
RTC_ANA_CTRL
RTC_ANA_CTRL为RTC振荡电流控制寄存器。
受RTC锁定寄存器锁定,只有当{RTC_LOCK3, RTC_LOCK2, RTC_LOCK1, RTC_LOCK0}=0x5A5AABCD时才可以被修改。
Offset Address: 0x006C Total Reset Value: 0x05
Bits
|
Access
|
Name
|
Description
|
Reset
|
[7:0]
|
RW
|
rtc_ana_ctrl
|
RTC振荡电流控制。
0x00:档位0;
0x01:档位1;
0x02:档位2;
0x03:档位3;
其他:保留。
备注:档位值越大振荡电流越大。
|
0x5
|
SDM_COEF_OUTSIDE_H
SDM_COEF_OUTSIDE_H为外部分频系数高4位寄存器。
Offset Address: 0x0144 Total Reset Value: 0x0000_0008
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:0]
|
RW
|
sdm_coef_outside_h
|
固定分频模式时的分频系数高4位。
|
0x8
|
SDM_COEF_OUTSIDE_L
SDM_COEF_OUTSIDE_L为外部分频系数低8位寄存器。
Offset Address: 0x0148 Total Reset Value: 0x0000_001B
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
sdm_coef_outside_l
|
固定分频模式时的分频系数低8位。
注意:对分频系数寄存器(0x51、0x52)进行读/写时,应该先读/写高4 位,再读/写低8位,并且需要高位到低位连续操作才能完成读/写操作。该寄存器的计算公式为(f-32700)*30.52(32700=<f<=32799,f为外接晶体的振荡频率)。
|
0x1B
|
USER_REGISTER1
USER_REGISTER1为64bit用户寄存器1。
Offset Address: 0x014C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
user_register1
|
64bit 用户使用寄存器1,对应bit[7:0]。
|
0x00
|
USER_REGISTER2
USER_REGISTER2为64bit用户寄存器2。
Offset Address: 0x0150 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
user_register2
|
64bit 用户使用寄存器2,对应bit[15:8]。
|
0x00
|
USER_REGISTER3
USER_REGISTER3为64bit用户寄存器3。
Offset Address: 0x0154 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
user_register3
|
64bit 用户使用寄存器3,对应bit[23:16]。
|
0x00
|
USER_REGISTER4
USER_REGISTER4为64bit用户寄存器4。
Offset Address: 0x0158 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
user_register4
|
64bit 用户使用寄存器4,对应bit[31:24]。
|
0x00
|
USER_REGISTER5
USER_REGISTER5为64bit用户寄存器5。
Offset Address: 0x015C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
user_register5
|
64bit 用户使用寄存器5,对应bit[39:32]。
|
0x00
|
USER_REGISTER6
USER_REGISTER6为64bit用户寄存器6。
Offset Address: 0x0160 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
user_register6
|
64bit 用户使用寄存器6,对应bit[47:40]。
|
0x00
|
USER_REGISTER7
USER_REGISTER7为64bit用户寄存器7。
Offset Address: 0x0164 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
user_register7
|
64bit 用户使用寄存器7,对应bit[55:48]。
|
0x00
|
USER_REGISTER8
USER_REGISTER8为64bit用户寄存器8。
Offset Address: 0x0168 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
user_register8
|
64bit 用户使用寄存器8,对应bit[63:56]。
|
0x00
|
USER_DEFINE_REGISTER1
USER_DEFINE_REGISTER1为用户自定义寄存器1。
Offset Address: 0x0180 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
user_define_register1
|
用户自定义寄存器1。
|
0x00
|
USER_DEFINE_REGISTER2
USER_DEFINE_REGISTER2为用户自定义寄存器2。
Offset Address: 0x0184 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
user_define_register2
|
用户自定义寄存器2。
|
0x00
|
USER_DEFINE_REGISTER3
USER_DEFINE_REGISTER3为用户自定义寄存器3。
Offset Address: 0x0188 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
user_define_register3
|
用户自定义寄存器3。
|
0x00
|
USER_DEFINE_REGISTER4
USER_DEFINE_REGISTER4为用户自定义寄存器4。
Offset Address: 0x018C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
user_define_register4
|
用户自定义寄存器4。
|
0x00
|
RTC_REG_LOCK1
RTC_REG_LOCK1为RTC锁定寄存器1。
Offset Address: 0x0190 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
rtc_reg_lock1
|
RTC寄存器保护锁定寄存器1。
|
0x00
|
RTC_REG_LOCK2
RTC_REG_LOCK2为RTC锁定寄存器2。
Offset Address: 0x0194 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
rtc_reg_lock2
|
RTC寄存器保护锁定寄存器2。
|
0x00
|
RTC_REG_LOCK3
RTC_REG_LOCK3为RTC锁定寄存器3。
Offset Address: 0x0198 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
rtc_reg_lock3
|
RTC寄存器保护锁定寄存器3。
|
0x00
|
RTC_REG_LOCK4
RTC_REG_LOCK4为RTC锁定寄存器4。
Offset Address: 0x019C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7:0]
|
RW
|
rtc_reg_lock4
|
RTC寄存器保护锁定寄存器4。
|
0x00
|
电源管理与低功耗模式控制
概述
时钟门控和时钟频率调整
关闭不需要的时钟
系统提供各个模块的时钟门控功能,在模块空闲的时候,可以关闭相应的时钟,降低芯片功耗,操作流程可以参见各个模块的时钟门控部分。
调整模块工作频率
除了提供系统工作频率的调整外,部分模块的工作频率也可以单独进行调整。调整这些模块的工作频率,也可以进一步降低系统的功耗。具体参见“时钟资源分布”中关于各模块的时钟源选择部分。
模块级低功耗控制
芯片各个模块都可以提供低功耗的工作模式。可通过对应的CRG控制寄存器,关闭对应模块的时钟,不使用的PLL可通过对应的寄存器关闭,以达到降低功耗的目的,请参考“时钟”章节的寄存器描述。
DDR低功耗控制
关于DDRC的低功耗控制的详细内容请参见“DDR控制器”章节中“低功耗管理”部分。
SVB功能描述
SVB(Selective Voltage Binning)是根据芯片工艺、温度、电路时序情况,静态调整电压来进一步降低功耗。
芯片中包含可编程的PWM0模块,外围调压电路可通过芯片的SVB PWM管脚输出,调节芯片的供电电压。
芯片内部温度检测,具体请参考“Tsensor_CTRL功能描述”小节。
Tsensor_CTRL功能描述
芯片内部集成1个温度传感器(T-Sensor),温度的检测范围为-40~125℃。使能温度传感器数据采集的流程如下:
- 向CRG寄存器PERI_CRG4560[tsensor_ctrl_pclk_cken]写0x1,打开TSENSOR_CTRL的APB时钟门控,向CRG寄存器PERI_CRG4560[tsensor_ctrl_cken]写0x1,打开TSENSOR_CTRL的时钟门控。
- 设置T-Sensor采集模式TSENSOR_CTRL0[30]。
-
如果设置为循环采集模式,需设置循环采集周期TSENSOR_CTRL0[27:20];如果设置为单次采集模式,可略过此步骤。
循环采集周期计算公式为:
其中N=TSENSOR_CTRL0[27:20]。
-
使能T-Sensor TSENSOR_CTRL0[31],开始温度采集。
-
软件读取T-Sensor采集到的温度码(十六进制值)。
单次采集模式下,只有TSENSOR_CTRL2[9:0]中记录的温度记录码0有效。
循环采集模式下,TSENSOR_CTRL2[31:0]~TSENSOR_CTRL5[31:0]记录了最近八次温度记录码0~7,其中最新的温度记录值为温度记录码0。
-
根据温度记录码计算出对应的温度值。
Temperature =[(tsensor_result-127)/784]*165-40(℃),tsensor_result取值范围:[127, 911]
注:tsensor_result是步骤4中获取的温度记录码的十进制值。
Tsensor_CTRL内部寄存器概览
Tsensor_CTRL寄存器概览如表1所示。
表 1 Tsensor_CTRL寄存器概览(基址是0x1102_A000)
偏移地址
|
名称
|
描述
|
0x0
|
TSENSOR_CTRL0
|
Tsensor控制寄存器
|
0x4
|
TSENSOR_CTRL1
|
Tsensor状态寄存器
|
0x8
|
TSENSOR_CTRL2
|
Tsensor温度记录值寄存器0
|
0xC
|
TSENSOR_CTRL3
|
Tsensor温度记录值寄存器1
|
0x10
|
TSENSOR_CTRL4
|
Tsensor温度记录值寄存器2
|
0x14
|
TSENSOR_CTRL5
|
Tsensor温度记录值寄存器3
|
0x20
|
TSENSOR_INT_MASK
|
Tsensor中断屏蔽寄存器
|
0x24
|
TSENSOR_INT_CLR
|
Tsensor中断清除寄存器
|
0x28
|
TSENSOR_INT_RAW
|
Tsensor原始中断状态寄存器
|
0x2C
|
TSENSOR_INT_STAT
|
Tsensor屏蔽后中断状态寄存器
|
0x40
|
TSENSOR_CTRL6
|
Tsensor温度记录值寄存器4
|
0x44
|
TSENSOR_CTRL7
|
Tsensor温度记录值寄存器5
|
0x48
|
TSENSOR_CTRL8
|
Tsensor温度记录值寄存器6
|
0x4C
|
TSENSOR_CTRL9
|
Tsensor温度记录值寄存器7
|
Tsensor_CTRL寄存器描述
TSENSOR_CTRL0
TSENSOR_CTRL0为Tsensor控sdio0_ds_dll_ssel寄存器。
Offset Address: 0x0 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31]
|
RW
|
tsensor_en
|
Tsensor使能控制。
0:关闭;
1:使能。
|
0x0
|
[30]
|
RW
|
tsensor_monitor_en
|
Tsensor温度循环监测使能。
0:单次测量;
1:循环测量。
|
0x0
|
[29:28]
|
-
|
reserved
|
保留。
|
0x0
|
[27:20]
|
RW
|
tsensor_monitor_period
|
Tsensor温度循环监测周期,计时基准为2ms。
|
0x00
|
[19:10]
|
RW
|
tsensor_uplimit
|
温度上限值。
|
0x000
|
[9:0]
|
RW
|
tsensor_lowlimit
|
温度下限值。
|
0x000
|
TSENSOR_CTRL1
TSENSOR_CTRL1为Tsensor状态寄存器。
Offset Address: 0x4 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000000
|
[3:2]
|
RW
|
tsensor_temp_ct_sel
|
Tsensor 转换一次温度码值时间选择。
00:0.512ms;
01:0.256ms;
10:1.024ms;
11:2.048ms。
注意:循环时间配置需要满足T温循时间>16*T转码时间。
|
0x0
|
[1]
|
RO
|
tsensor_low_warning
|
温度下限告警,高有效。
|
0x0
|
[0]
|
RO
|
tsensor_up_warning
|
温度上限告警,高有效。
|
0x0
|
TSENSOR_CTRL2
TSENSOR_CTRL2为Tsensor温度记录值寄存器0。
Offset Address: 0x8 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:26]
|
-
|
reserved
|
保留。
|
0x00
|
[25:16]
|
RO
|
tsensor_result1
|
温度记录值1。
|
0x000
|
[15:10]
|
-
|
reserved
|
保留。
|
0x00
|
[9:0]
|
RO
|
tsensor_result0
|
温度记录值0。
|
0x000
|
TSENSOR_CTRL3
TSENSOR_CTRL3为Tsensor温度记录值寄存器1。
Offset Address: 0xC Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:26]
|
-
|
reserved
|
保留。
|
0x00
|
[25:16]
|
RO
|
tsensor_result3
|
温度记录值3。
|
0x000
|
[15:10]
|
-
|
reserved
|
保留。
|
0x00
|
[9:0]
|
RO
|
tsensor_result2
|
温度记录值2。
|
0x000
|
TSENSOR_CTRL4
TSENSOR_CTRL4为Tsensor温度记录值寄存器2。
Offset Address: 0x10 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:26]
|
-
|
reserved
|
保留。
|
0x00
|
[25:16]
|
RO
|
tsensor_result5
|
温度记录值5。
|
0x000
|
[15:10]
|
-
|
reserved
|
保留。
|
0x00
|
[9:0]
|
RO
|
tsensor_result4
|
温度记录值4。
|
0x000
|
TSENSOR_CTRL5
TSENSOR_CTRL5为Tsensor温度记录值寄存器3。
Offset Address: 0x14 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:26]
|
-
|
reserved
|
保留。
|
0x00
|
[25:16]
|
RO
|
tsensor_result7
|
温度记录值7。
|
0x000
|
[15:10]
|
-
|
reserved
|
保留。
|
0x00
|
[9:0]
|
RO
|
tsensor_result6
|
温度记录值6。
|
0x000
|
TSENSOR_INT_MASK
TSENSOR_INT_MASK为Tsensor中断屏蔽寄存器。
Offset Address: 0x20 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1]
|
RW
|
tsensor0_low_warning_int_mask
|
温度下限告警原始中断屏蔽控制。
0:屏蔽中断;
1:使能中断。
|
0x0
|
[0]
|
RW
|
tsensor0_up_warning_int_mask
|
温度上限告警原始中断屏蔽控制。
0:屏蔽中断;
1:使能中断。
|
0x0
|
TSENSOR_INT_CLR
TSENSOR_INT_CLR为Tsensor中断清除寄存器。
Offset Address: 0x24 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1]
|
WO
|
tsensor0_low_warning_int_clr
|
温度下限告警中断清除,写1生效。
|
0x0
|
[0]
|
WO
|
tsensor0_up_warning_int_clr
|
温度上限告警中断清除,写1生效。
|
0x0
|
TSENSOR_INT_RAW
TSENSOR_INT_RAW为Tsensor原始中断状态寄存器。
Offset Address: 0x28 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1]
|
RO
|
tsensor0_low_warning_int_raw
|
温度下限告警原始中断。
0:无中断;
1:有中断。
|
0x0
|
[0]
|
RO
|
tsensor0_up_warning_int_raw
|
温度上限告警原始中断。
0:无中断;
1:有中断。
|
0x0
|
TSENSOR_INT_STAT
TSENSOR_INT_STAT为Tsensor屏蔽后中断状态寄存器。
Offset Address: 0x2C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:2]
|
-
|
reserved
|
保留。
|
0x00000000
|
[1]
|
RO
|
tsensor0_low_warning_int
|
屏蔽后温度下限告警中断状态。
0:无中断;
1:有中断;
|
0x0
|
[0]
|
RO
|
tsensor0_up_warning_int
|
屏蔽后温度上限告警中断状态。
0:无中断;
1:有中断;
|
0x0
|
TSENSOR_CTRL6
TSENSOR_CTRL6为Tsensor温度记录值寄存器4。
Offset Address: 0x40 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:26]
|
-
|
reserved
|
保留。
|
0x00
|
[25:16]
|
RO
|
tsensor_result9
|
温度记录值9。
|
0x000
|
[15:10]
|
-
|
reserved
|
保留。
|
0x00
|
[9:0]
|
RO
|
tsensor_result8
|
温度记录值8。
|
0x000
|
TSENSOR_CTRL7
TSENSOR_CTRL7为Tsensor温度记录值寄存器5。
Offset Address: 0x44 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:26]
|
-
|
reserved
|
保留。
|
0x00
|
[25:16]
|
RO
|
tsensor_result11
|
温度记录值11。
|
0x000
|
[15:10]
|
-
|
reserved
|
保留。
|
0x00
|
[9:0]
|
RO
|
tsensor_result10
|
温度记录值10。
|
0x000
|
TSENSOR_CTRL8
TSENSOR_CTRL8为Tsensor温度记录值寄存器6。
Offset Address: 0x48 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:26]
|
-
|
reserved
|
保留。
|
0x00
|
[25:16]
|
RO
|
tsensor_result13
|
温度记录值13。
|
0x000
|
[15:10]
|
-
|
reserved
|
保留。
|
0x00
|
[9:0]
|
RO
|
tsensor_result12
|
温度记录值12。
|
0x000
|
TSENSOR_CTRL9
TSENSOR_CTRL9为Tsensor温度记录值寄存器7。
Offset Address: 0x4C Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:26]
|
-
|
reserved
|
保留。
|
0x00
|
[25:16]
|
RO
|
tsensor_result15
|
温度记录值15。
|
0x000
|
[15:10]
|
-
|
reserved
|
保留。
|
0x00
|
[9:0]
|
RO
|
tsensor_result14
|
温度记录值14。
|
0x000
|