跳转至

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为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为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蒙太奇配置寄存器。

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蒙太奇读写选择寄存器。

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为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在使用前需要打开时钟并执行复位操作。

  1. 向CRG寄存器PERI_CRG2720[edma_axi_cken]写0x1,打开DMAC的AXI时钟门控,向CRG寄存器PERI_CRG2720[edma_apb_cken]写0x1,打开DMAC的APB时钟门控。
  2. 向CRG寄存器PERI_CRG2720[edma_srst_req]写0x1,对DMAC进行复位。
  3. 向CRG寄存器PERI_CRG2720[edma_srst_req]写0x0,撤离对DMAC模块的复位。

设置访问方式

默认情况下,DMAC的全部通道均为安全属性,下述章节“初始化”、“基本传输”、“链表传输”、“中断处理”访问主体只能为安全处理器,访问的DDR内存属性可以是安全属性以及共享属性。

如果想要非安全处理器访问DMAC,需要安全处理器首先执行以下步骤:

  1. 依次向全部通道的C(n)_AXI_CONF寄存器的arprot域(bit[7:5])以及awprot域(bit[19:17])配置0x010,将通道的安全属性转换为非安全。
  2. 此时,DMAC的全部通道均为非安全属性,下述章节“初始化”、“基本传输”、“链表传输”、“中断处理”的访问主体只能为非安全处理器,访问的DDR内存属性可以是非安全属性以及共享属性。

初始化

在撤销复位以及设置访问方式后,DMAC应该进行初始化。初始化步骤如下:

  1. 根据场景需求,配置优先级控制寄存器CH_PRI。
  2. 向原始中断寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW、INT_ERR3_RAW的所有有效位写0x1,清除全部中断状态。
  3. 根据中断需求,配置中断屏蔽寄存器INT_TC1_RAW、INT_TC2_MASK、INT_ERR1_MASK、INT_ERR2_MASK、INT_ERR3_MASK。
  4. 依次向每个通道的各通道配置寄存器C(n)_CONFIG[ch_en]写0x0,关闭DMAC通道。

基本传输

DMAC初始化完成之后,需要配置并启动通道,才可以使用DMAC进行数据传输。具体步骤如下:

  1. 读寄存器INT_STAT,找出处于空闲的通道,并从中选择一个通道n用于配置。
  2. 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x1<<n,清除选定通道的中断状态。
  3. 写通道寄存器C(n)_SRC_ADDR_L和C(n)_SRC_ADDR_H,设置源端的首物理地址。
  4. 写通道寄存器C(n)_DES_ADDR_L和C(n)_DES_ADDR_H,设置目的端的首物理地址。
  5. 写通道寄存器C(n)_LLI_L[chain_en]为0x0,表明本次传输为非链表传输。
  6. 写通道寄存器C(n)_CNT0[a_count],设置搬运数据量,最大为65535Bytes。
  7. 写通道寄存器C(n)_CONFIG,设置地址类型、传输位宽、传输Burst Length、传输类型以及外设号。
  8. 写通道寄存器C(n)_CONFIG[ch_en]为0x1,使能通道,DMAC开始传输。
  9. 如果传输为内存和外设之间的传输,应该再启动对应外设,并打开其DMA功能。具体参考“外围设备”的I2C、UART、SPI章节。

说明:

  • 如果通道已经处于BUSY状态,软件向C(n)_CONFIG [ch_en]写0x1时,DMAC不会对此次操作做出任何反应。
  • 如果通道启动后产生了配置错误中断,则不会进行实际传输。
  • 寄存器的配置只能在通道处于空闲状态才能有效的配置,如果通道正在工作,那么本次配置不会改变寄存器的值,同时DMAC不会通知软件本次操作失败。
  • 原始中断寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW均为写1清0寄存器,写0和读寄存器均不会改变原始状态。

内存之间的传输

内存到内存的传输示例步骤如下:

  1. 读寄存器CH_STAT,发现通道0空闲。
  2. 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x1。
  3. 向寄存器C(0)_SRC_ADDR_L和C(0)_SRC_ADDR_H写0x84000000。
  4. 向寄存器C(0)_DES_ADDR_L和C(0)_DES_ADDR_H写0x85000000。
  5. 向寄存器C(0)_LLI_L[1:0]写0x0。
  6. 向寄存器C(0)_CNT0写0x1000。
  7. 向寄存器C(0)_CONFIG写0xcff33000。
  8. 向寄存器C(0)_CONFIG[ch_en]写0x1。

内存到外设的传输

内存到I2C0的传输示例步骤如下:

  1. 读寄存器CH_STAT,发现通道1空闲。
  2. 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x2。
  3. 向寄存器C(1)_SRC_ADDR_L和C(1)_SRC_ADDR_H写0x84000000。
  4. 向寄存器C(1)_DES_ADDR_L和C(1)_DES_ADDR_H写0x11060000。
  5. 向寄存器C(1)_LLI_L[1:0]写0x0。
  6. 向寄存器C(1)_CNT0写0x10。
  7. 向寄存器C(1)_CONFIG写0x80000014。
  8. 向寄存器C(1)_CONFIG[ch_en]写0x1。
  9. 完成I2C0配置并打开DMA TX功能。

内存到UART0的传输示例步骤如下:

  1. 读寄存器CH_STAT,发现通道1空闲。
  2. 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x2。
  3. 向寄存器C(1)_SRC_ADDR_L和C(1)_SRC_ADDR_H写0x84000000。
  4. 向寄存器C(1)_DES_ADDR_L和C(1)_DES_ADDR_H写0x11040000。
  5. 向寄存器C(1)_LLI_L[1:0]写0x0。
  6. 向寄存器C(1)_CNT0写0x10。
  7. 向寄存器C(1)_CONFIG写0x800000C4。
  8. 向寄存器C(1)_CONFIG[ch_en]写0x1。
  9. 完成UART0配置并打开DMA TX功能。

内存到SSP0的传输示例步骤如下:

  1. 读寄存器CH_STAT,发现通道1空闲。
  2. 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x2。
  3. 向寄存器C(1)_SRC_ADDR_L和C(1)_SRC_ADDR_H写0x84000000。
  4. 向寄存器C(1)_DES_ADDR_L和C(1)_DES_ADDR_H写0x11070008。
  5. 向寄存器C(1)_LLI_L[1:0]写0x0。
  6. 向寄存器C(1)_CNT0写0x10。
  7. 向寄存器C(1)_CONFIG写0x80011074。
  8. 向寄存器C(1)_CONFIG[ch_en]写0x1。
  9. 完成SSP0配置并打开DMA TX功能。

外设到内存的传输

I2C0到内存的传输示例步骤如下:

  1. 读寄存器CH_STAT,发现通道2空闲。
  2. 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x4。
  3. 向寄存器C(2)_SRC_ADDR_L和C(2)_SRC_ADDR_H写0x11060000。
  4. 向寄存器C(2)_DES_ADDR_L和C(2)_DES_ADDR_H写0x85000000。
  5. 向寄存器C(2)_LLI_L[1:0]写0x0。
  6. 向寄存器C(2)_CNT0写0x10。
  7. 向寄存器C(2)_CONFIG写0x40000004。
  8. 向寄存器C(2)_CONFIG[ch_en]写0x1。
  9. 完成I2C0配置并打开DMA RX功能。

UART0到内存的传输示例步骤如下:

  1. 读寄存器CH_STAT,发现通道2空闲。
  2. 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x4。
  3. 向寄存器C(2)_SRC_ADDR_L和C(2)_SRC_ADDR_H写0x11040000。
  4. 向寄存器C(2)_DES_ADDR_L和C(2)_DES_ADDR_H写0x85000000。
  5. 向寄存器C(2)_LLI_L[1:0]写0x0。
  6. 向寄存器C(2)_CNT0写0x10。
  7. 向寄存器C(2)_CONFIG写0x400000A8。
  8. 向寄存器C(2)_CONFIG[ch_en]写0x1。
  9. 完成UART0配置并打开DMA RX功能。

SSP0到内存的传输示例步骤如下:

  1. 读寄存器CH_STAT,发现通道2空闲。
  2. 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x4。
  3. 向寄存器C(2)_SRC_ADDR_L和C(2)_SRC_ADDR_H写0x11070008。
  4. 向寄存器C(2)_DES_ADDR_L和C(2)_DES_ADDR_H写0x85000000。
  5. 向寄存器C(2)_LLI_L[1:0]写0x0。
  6. 向寄存器C(2)_CNT0写0x10。
  7. 向寄存器C(2)_CONFIG写0x40011068。
  8. 向寄存器C(2)_CONFIG[ch_en]写0x1。
  9. 完成SSP0配置并打开DMA RX功能。

链表传输

  1. 读寄存器INT_STAT,找出处于空闲的通道,并从中选择一个通道n用于配置。
  2. 向寄存器INT_TC1_RAW、INT_TC2_RAW、INT_ERR1_RAW、INT_ERR2_RAW和INT_ERR3_RAW写0x1<<n,清除选定通道的中断状态。
  3. 软件开辟链表空间,链表空间地址需要512-bit对齐。向链表空间按顺序填入链表内容,具体参考链表传输章节。
  4. 写通道寄存器C(n)_SRC_ADDR_L和C(n)_SRC_ADDR_H,设置链表首节点源端的首物理地址。
  5. 写通道寄存器C(n)_DES_ADDR_L和C(n)_DES_ADDR_H,设置链表首节点目的端的首物理地址。
  6. 写通道寄存器C(n)_LLI_L[lli_l]和C(n)_LLI_H[lli_h],设置链表空间的首地址。
  7. 写通道寄存器C(n)_LLI_L[chain_en]为0x2,表示本节点不是链表尾。
  8. 写通道寄存器C(n)_CNT0[a_count],设置本节点搬运的数据量,最大为65535Bytes。
  9. 写通道寄存器C(n)_CONFIG,设置本节点的地址类型、传输位宽、传输Burst Length、传输类型、外设号以及链表中断使能。
  10. 写通道寄存器C(n)_CONFIG[ch_en]为0x1,使能通道,DMAC开始传输。
  11. 如果传输为内存和外设之间的传输,应再启动对应外设,并打开其DMA功能。具体参考“外围设备”的I2C、UART、SPI章节。

说明:

具体参照“基本传输”小节的说明。

中断处理

中断程序的处理流程如下:

  1. 读中断状态寄存器INT_STAT,找出发出中断请求的通道。如果多个通道同时上报,优先服务优先级高的通道。
  2. 读寄存器INT_TC1,比较选定的位是否为0x1,以确定对应通道发出的中断为传输完成中断。若是,则转到步骤4执行;否则转到步骤3继续执行。
  3. 读寄存器INT_ERR1、INT_ERR2、INT_ERR3,比较选定的位是否为0x1,以确定对应通道发出的中断为错误中断。若是,则转到步骤5执行;否则转到步骤6继续执行。
  4. 传输完成中断处理。可以分为以下几个子步骤:

    1. 写寄存器INT_TC1_RAW,对选定的位写入0x1,清除对应通道的中断状态。
    2. 取走或使用掉内存中的数据,有必要的话重新配置并启动该通道。
    3. 退出中断处理。
  5. 错误中断处理。可以分为以下几个子步骤:

    1. 根据错误类型清除错误中断状态。如果是配置错误,则向寄存器INT_ERR1_RAW选定的位写入0x1;如果是传输错误,则向寄存器INT_ERR2_RAW选定的位写入0x1;如果是链表传输错误,则向寄存器INT_ERR3_RAW选定的位写入0x1
    2. 给出错误信息,有必要的话重新配置并启动该通道。
    3. 退出中断处理。
  6. 链表节点传输完成中断处理。可以分为以下几个子步骤:

    1. 写寄存器INT_TC2_RAW,对选定的位写入0x1,清除对应通道的中断状态。
    2. 取走或使用掉内存中的数据。
    3. 退出中断处理。

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为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分频。进一步提高计数时钟频率的选择灵活性。

对定时器载入计数初值的方法如下:

  • 通过写TIMERx_LOAD寄存器可对定时器载入计数初值。当定时器处于工作状态时,如果向TIMERx_LOAD寄存器写入值,会导致定时器立刻从新值开始重新计数。适用于所有计数模式。
  • 通过写TIMERx_BGLOAD寄存器可以设定周期计数模式的计数周期。写该寄存器不会立刻影响定时器的当前计数,定时器会继续计数直到计数值减到0。然后载入TIMERx_BGLOAD寄存器中的新值开始计数。

工作方式

初始化

系统初始化时应对Timer进行初始化。初始化TimerX(TimerX中的“X”取值为0~11)时应按以下步骤进行配置:

  1. 写TIMERx_LOAD寄存器,为Timer载入计数初值。
  2. 当需要Timer工作在周期计数模式下、且计数周期与载入Timer的计数初值不同时,写TIMERx_BGLOAD寄存器,设置Timer的计数周期。
  3. 配置TIMERx_CONTROL寄存器,设置Timer的计数模式、计数器长度、预分频因子及中断屏蔽,同时启动Timer计数。

中断处理

Timer主要用于定时产生中断,因此Timer的中断处理主要是激活等待定时中断的进程。操作步骤如下:

  1. 配置TIMERx_INTCLR寄存器,清除Timer中断。
  2. 激活等待该中断的进程,使其继续执行。
  3. 当所有等待该中断的进程完成或再次执行到等待中断的休眠状态时,恢复中断现场,继续执行当前被中断的程序。

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内部寄存器进行写操作:

  • 向WDG_LOCK写入0x1ACC_E551,可以打开所有WatchDog寄存器的写权限。
  • 向WDG_LOCK寄存器写入其他任何值,可以关闭所有WatchDog寄存器(WDG_LOCK寄存器除外)的写权限。

该特性保护WatchDog的寄存器不被软件错误修改,从而使得在异常情况下,WatchDog不至于被软件错误地中止操作。

在调试模式下,WatchDog自动关闭,以防止干扰正常的调试操作。

工作方式

计数时钟频率配置

WatchDog计数时钟为3MHz时钟。

WatchDog计数时间为TWDG:

说明:

其中上式中,各参数代表的意思分别是:

  • TWDG表示WatchDog计数时间;
  • ValueWDG_LOAD表示WatchDog计数初值;
  • fclk表示WatchDog计数时钟频率。

WatchDog的计数时间范围值为0s~1400s。

系统初始化配置

系统上电复位后WatchDog计数器处于停止计数状态,在系统初始化过程中需要将WatchDog初始化并启动其运行。WatchDog的初始化过程如下:

  1. 写寄存器WDG_LOAD,设定计数初值。
  2. 写寄存器WDG_CONTROL,打开中断屏蔽并启动WatchDog计数。
  3. 写寄存器WDG_LOCK,给WatchDog上锁,防止软件错误修改WatchDog的配置。

中断处理过程

收到WatchDog发出的中断后,应及时清除其中断状态,并使其载入计数初值重新开始计数。WatchDog中断处理的过程如下:

  1. 向WDG_LOCK写0x1ACC_E551,为WatchDog开锁。
  2. 写寄存器WDG_INTCLR,清除WatchDog的中断状态,同时也使WatchDog自动载入计数初值重新开始计数。
  3. 向寄存器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计数器继续递增计数,将不会对外产生中断,在RTC_MSC_INT中显示屏蔽后中断的状态,在RTC_RAW_INT中显示原始中断状态。
  • 当重新开启中断时,RTC计数器仍然继续递增计数,当计数值递加到与RTC_MR_10MS、RTC_MR_S、RTC_MR_M、RTC_MR_H、RTC_MR_D_L、RTC_MR_D_H寄存器值相等时,RTC将产生一个中断。

RTC的计数时钟采用的是100Hz时钟,同时提供16bit的天计数,便于通过天计数值转换为具体的年、月、日。

工作方式

计数时钟频率

RTC采用100Hz时钟进行计数,计数最大时间为:

TRTC = 216 = 65536(天)

说明:

TRTC表示RTC计数时间。

软复位

通过配置RTC复位寄存器RTC_POR_N,可以实现对RTC的单独软复位。软复位后各个RTC配置寄存器的值均恢复为默认值,因此软复位后需要重新对这些寄存器进行初始化配置。

软复位步骤如下:

  1. 向RTC_POR_N写0,对RTC软复位。
  2. 等待30ms。

RTC初始化

RTC在第一次上电时,系统需要将RTC初始化。RTC的初始化过程如下:

  1. 配置RTC_POR_N,复位RTC。
  2. 等待30ms。
  3. 配置RTC_IMSC,设置RTC中断屏蔽位。
  4. 配置RTC_MR_10MS、RTC_MR_S、RTC_MR_M、RTC_MR_H、RTC_MR_D_L、RTC_MR_D_H,设置RTC比较值。
  5. 配置RTC_LR_10MS、RTC_LR_S、RTC_LR_M、RTC_LR_H、RTC_LR_D_L、RTC_LR_D_H,设置RTC计数初始值。
  6. 配置RTC_LOAD为1,让RTC计数初始值加载RTC计数器中。
  7. 等待10ms。
  8. 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时间配置过程如下:

  1. 配置RTC_LR_10MS、RTC_LR_S、RTC_LR_M、RTC_LR_H、RTC_LR_D_L、RTC_LR_D_H,设置RTC计数初始值。
  2. 配置RTC_LOAD为1,让RTC计数初始值加载到RTC计数器中。
  3. 等待10ms。

RTC时间读取

RTC时间读取过程如下:

  1. 配置RTC_LOAD为0x2。
  2. 回读RTC_LOAD的值,若不为0x0,重复步骤2;若为0x0,向下执行步骤3。
  3. 等待1ms。
  4. 从RTC_10MS_COUNT、RTC_S_COUNT、RTC_M_COUNT、RTC_H_COUNT、RTC_D_COUNT_L、RTC_D_COUNT_H寄存器读取时间值。

中断处理

系统收到RTC发出的中断后,表示定时时间到,用户可以执行相应的自定义操作,RTC计数器仍然保持递增计数。RTC中断处理的过程如下:

  1. 配置RTC_INT_CLR为1,清除RTC的中断状态。
  2. 如果需要继续设置定时时间,则向寄存器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

电源管理与低功耗模式控制

概述

  • 芯片的低功耗模式用来有效地减少芯片的功耗,芯片提供多种低功耗的控制来动态降低芯片的功耗。

    • 时钟门控和时钟频率调整

      提供时钟关断功能,可以关闭没有必要的时钟,减少芯片的功耗。系统工作的时钟频率可以进行调整,在满足功能的情况下可以调节时钟频率,降低芯片功耗。

    • 模块级低功耗控制

      提供模块级的低功耗控制,在某模块不工作的情况下,关断该模块或使模块处于低功耗状态,以减少芯片的功耗。

    • DDR低功耗控制

      DDR的控制器支持动态的功耗控制功能,可以选择启动该功能,降低芯片功耗。

    • SVB(Selective Voltage Binning)功能

  • 芯片内部温度检测

    芯片集成温度传感器(T-Sensor),用于获取芯片内部温度。

时钟门控和时钟频率调整

关闭不需要的时钟

系统提供各个模块的时钟门控功能,在模块空闲的时候,可以关闭相应的时钟,降低芯片功耗,操作流程可以参见各个模块的时钟门控部分。

调整模块工作频率

除了提供系统工作频率的调整外,部分模块的工作频率也可以单独进行调整。调整这些模块的工作频率,也可以进一步降低系统的功耗。具体参见“时钟资源分布”中关于各模块的时钟源选择部分。

模块级低功耗控制

芯片各个模块都可以提供低功耗的工作模式。可通过对应的CRG控制寄存器,关闭对应模块的时钟,不使用的PLL可通过对应的寄存器关闭,以达到降低功耗的目的,请参考“时钟”章节的寄存器描述。

DDR低功耗控制

关于DDRC的低功耗控制的详细内容请参见“DDR控制器”章节中“低功耗管理”部分。

SVB功能描述

SVB(Selective Voltage Binning)是根据芯片工艺、温度、电路时序情况,静态调整电压来进一步降低功耗。

芯片中包含可编程的PWM0模块,外围调压电路可通过芯片的SVB PWM管脚输出,调节芯片的供电电压。

芯片内部温度检测,具体请参考“Tsensor_CTRL功能描述”小节。

Tsensor_CTRL功能描述

芯片内部集成1个温度传感器(T-Sensor),温度的检测范围为-40~125℃。使能温度传感器数据采集的流程如下:

  1. 向CRG寄存器PERI_CRG4560[tsensor_ctrl_pclk_cken]写0x1,打开TSENSOR_CTRL的APB时钟门控,向CRG寄存器PERI_CRG4560[tsensor_ctrl_cken]写0x1,打开TSENSOR_CTRL的时钟门控。
  2. 设置T-Sensor采集模式TSENSOR_CTRL0[30]。
  3. 如果设置为循环采集模式,需设置循环采集周期TSENSOR_CTRL0[27:20];如果设置为单次采集模式,可略过此步骤。

    循环采集周期计算公式为:

    其中N=TSENSOR_CTRL0[27:20]。

  4. 使能T-Sensor TSENSOR_CTRL0[31],开始温度采集。

  5. 软件读取T-Sensor采集到的温度码(十六进制值)。

    单次采集模式下,只有TSENSOR_CTRL2[9:0]中记录的温度记录码0有效。

    循环采集模式下,TSENSOR_CTRL2[31:0]~TSENSOR_CTRL5[31:0]记录了最近八次温度记录码0~7,其中最新的温度记录值为温度记录码0。

  6. 根据温度记录码计算出对应的温度值。

    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