Edit online

寄存器描述

3 Mar 2025
Read time: 33 minute(s)

0x0000 XSPI_CTL

默认值:0x00000100

xSPI 控制(xSPI Control)

位域

类型

默认值

描述

31:24

-

-

-

19

R/W

0x0

Xccela_QPI_CTL

QPI 模式控制,XSPI_MODE_SEL 配置为 Xccela 模式时,此位有效。

18

R/W

0x0

AXI_ABITER_EN

响应 AXI 读请求,延缓写请求。

17

R/W

0x0

Column_Address_Control
  • 0:byte_address(A0—A10)
  • 1:word_address(A0—A9)

可选地址映射为字节(1 个字节)地址或者字(2 个字节)地址。

应用场景:PARAM 从 x8 切换到 x16 时,存在字节地址切换到字地址,此时 Column Address 位宽丢弃最高比特,默认 Column Addrrss 长度为 2 K。Hyperbus 模式此功能无效。

16

R/W

0x0

PIN_CTL
  • 0:x8
  • 1:x16

此位配置 1 时,XSPI_CTL[6] 需配置为 PARALLEL_MODE 必须配置为 1,此时 CS0 的 DQ[7:0] 为 x16 DQ[7:0],CS1 的 DQ[7:0] 为 x16 DQ[15:8]

15

-

-

-

14:13

R/W

0x0

Boundary_Control
  • 0:2K
  • 1:1K
  • 3/4:Reserved

    Boundary_En 需要配置为 1

12

R/W

0x0

Boundary_En

边界控制使能

11:10

-

-

-

9

R/W

0x0

Reset_en

DM 引脚使能为 RESET 引脚,bit[8] 控制电平。

8

R/W

0x1

Reset_level
  • 0:0 电平
  • 1:1 电平

7

R/W

0x0

TIMEOUT_EN

6

R/W

0x0

PARALLEL_MODE
  • 0:单通道传输,CS_SEL 需选中通道 0 或通道 1
  • 1:双通道传输

5:4

R/W

0x0

XSPI_MODE_SEL
xSPI 协议模式选择
  • 0:Xccela 模式
  • 1:Hyperbus 模式
  • 2:OPI 模式
  • 3:SPI 模式
硬件根据查找表 (LUT) 功能已配置的 Command 输出符合对应协议行为,其中 SPI 模式包括 1/ 2/ 4/ 8 线模式,由查找表配置实现。

3

R/W

0x0

AXI_WRAP_BURST_CTL
  • 0:wrap burst
  • 1:wrap burst 拆分为 linear burst 输出

wrap burst 只支持 wrap4。

2

R/W

0x0

XIP_EN
XIP 模式使能控制,用于控制 AXI 访问通道
  • 0:禁止,AXI 通道不工作
  • 1:使能,AXI 访问正常工作

若有 AXI 访问,此时不能挂死 AXI 总线。

1

R/W

0x0

IDL_LOW_POWER_EN

空闲状态低功耗功能使能

0

R/W

0x0

XSPI_EN
XSPI 模块使能控制
  • 0:禁止
  • 1:使能

0x0004 XSPI_CLK

默认值:0x00000002

xSPI 时钟(xSPI Clock)

位域

类型

默认值

描述

31:13

-

-

-

12

R/W

0x0

CLK_SEL
时钟分频器选择
  • 0:时钟分频器 1
  • 1:时钟分频器 2

11:8

R/W

0x0

CDR1_M

时钟分频器 1

SPI_SCLK 时钟根据如下公式计算:

SPI_CLK = 源时钟/(2^CDR1_M)

7:0

R/W

0x2

CDR2_N

时钟分频器 2

SPI_CLK=源时钟/2*(CDR2_N +1)

0x0008 XSPI_TCR

默认值:0x00000001

xSPI 传输控制寄存器(xSPI Transmit Control Reg)

位域

类型

默认值

描述

31:28

R/W

0x0

OPI_HOLD_EX

27:24

R/W

0x0

DQS_CLK_GATING_CTL
  • 0:normal
  • 1:before
  • 2:delay
  • 3:bypass

23:20

R/W

0x0

CS_RD_HOLD_CTL

CS 读保持时间

指示两个命令操作之间 CS 至少保持无效的时间,n 代表 n 个 Cycles。

XSPI_BUSY 为 1 时不可配置。

19:16

R/W

0x0

CS_WR_HOLD_CTL

CS 写保持时间

指示两个命令操作之间 CS 至少保持无效的时间,n 代表 n 个 Cycles。

XSPI_BUSY 为 1 时不可配置。

15:12

R/W

0x0

CS SETUP 控制

片选有效后,数据与 CLK 建立时间,指示何时输出有效数据,0 与 1 代表 1 个 Cycles,n(n>1) 代表 n 个 XSPI_CLK Cycles,以此类推。

XSPI_BUSY 为 1 时不可配置。

11

R/W

0x0

JUMP_INS_EN

JUMP_INS 使能控制

XIP 模式使能后,例如 NORFLSH 连续读数据的应用场景,可以使用 LUT 定义的 JUMP_INS 指令

10:9

-

-

-

8

R/W

0x0

DUMMY_TYPE
Dummy Cycles 数据填充类型
  • 0:填充 0
  • 1:填充 1

XSPI_BUSY 为 1 时不可配置。

7

R/W

0x0

CS_LEVEL
片选信号电平配置
  • 0:低电平
  • 1:高电平
注: 单通道模式此处配置的是 CS0 还是 CS1 由 CS_SEL 决定,双通道模式 CS0 与 CS1 同时生效。

XSPI_BUSY 为 1 时不可配置。

6

R/W

0x0

CS_OWNER
片选信号控制选择
  • 0:XSPI 控制器
  • 1:软件控制

通常由控制器自动发送 CS 信号,当该位置 1,必须手动配置 CS_LEVEL 的电平状态。

XSPI_BUSY 为 1 时不可配置

注: 单通道模式此处配置的是 CS0 还是 CS1 由 CS_SEL 决定 ,双通道模式 CS0 与 CS1 同时生效。。

5

-

-

-

4

R/W

0x0

CS_SEL
片选信号选择,决定选中通道 0 或者通道 1
  • 0:选择 CS0
  • 1:选择 CS1

XSPI_BUSY 为 1 时不可配置。

3

-

-

-

2

R/W

0x0

CS_POL
片选信号极性控制
  • 0:低电平有效(空闲状态为高)
  • 1:高电平有效(空闲状态为低)

XSPI_BUSY 为 1 时不可配置。

注: 单通道模式此处配置的是 CS0 还是 CS1 由 CS_SEL 决定 ,双通道模式 CS0 与 CS1 同时生效。

1

R/W

0x0

CPOL
时钟极性控制
  • 0:Active High Polarity(空闲时为低电平)
  • 1:Active Low Polarity(空闲时为高电平)
注: 此处配置为 CK 状态,CK# 需保持与 CK 差分关系。

XSPI_BUSY 为 1 时不可配置。

注: 单通道模式此处配置的是 CS0 还是 CS1 由 CS_SEL 决定 ,双通道模式 CS0 与 CS1 同时生效。

0

R/W

0x1

CPHA
SPI 时钟/ 数据相位控制
  • 0:Phase 0(第一个边沿采样数据)
  • 1:Phase 1(第二个边沿采样数据)
注: 此处配置为 CK 状态,CK# 需保持与 CK 差分关系。

XSPI_BUSY 为 1 时不可配置。

注: 单通道模式此处配置的是 CS0 还是 CS1 由 CS_SEL 决定 ,双通道模式 CS0 与 CS1 同时生效。。

0x000C XSPI_STAS

默认值:0x00000000

xSPI 状态(xSPI Status)

位域

类型

默认值

描述

31:3

-

-

-

2

R

0x0

AHB_TRANS

此位置 1 指示为 AHB 通道传输。

1

R

0x0

AXI_TRANS

此位置 1 指示为 AXI 通道传输。

0

R

0x0

XSPI_BUSY

此位置 1 指示正在传输中。

0x0010 XSPI_CS0_CTL

默认值:0x00200000

xSPI 通道 0 控制(xSPI Chip Select 0 Control)

位域

类型

默认值

描述

31:29

-

-

-

28:24

R/W

0x0

WR_DELAY_CHAIN_SEL

输出时钟 Delay Chain 选择

23:22

-

-

-

21

R/W

0x1

WR_PHASE_SEL
  • 当 SPI CPHA=1 时
    • 0:0°
    • 1:90°
  • 当 SPI CPHA=0 时
    • 0:180°
    • 1:270°
注: 使用 SPI 四模式时,此位需配为 0。

20

R/W

0x0

WR_DELAY_CHAIN_EN

此位配 1,则使能 Delay Chain。

19:18

-

-

-

17:16

R/W

0x0

RD_PHASE
内部采样时钟相位选择
  • 0:0°
  • 1:90°
  • 2:180°
  • 3:360°

15

-

-

-

14:12

R/W

0x0

RD_DELAY_CYCLE

内部采样延迟时钟数

11:9

-

-

-

8:4

R/W

0x0

RD_DELAY_CHAIN_SEL

Delay Chain 选择

3

R/W

0x0

RD_VALID_CONTROL
  • 0:当前 Cycle 有效
  • 1:延迟一个 Cycle 有效

读操作时,内部控制逻辑访问异步 FIFO 时间控制

2

R/W

0x0

RD_DELAY_CHAIN_EN

此位配 1,则使能 Delay Chain。

1:0

R/W

0x0

RD_SAMPLE_CTL
读数据采样控制
  • 0:DQS 输入时钟采样 DLL 控制
  • 1:内部时钟采样 Delay Chain 控制
  • 2/3:DQS 输入时钟采样 Delay Chain 控制

0x0014 XSPI_CS0_DCTL

默认值:0x00000000

xSPI 通道 0 DLL 控制(XSPI Chip Select 0 DLL Control)

位域

类型

默认值

描述

31:30

-

-

-

29

R/W

0x0

FORCE_LOCK

28

R/W

0x0

EN_ATB

27

-

-

-

26:24

R/W

0x0

REG_ATBSEL

23:22

-

-

-

21:20

R/W

0x0

REG_BYPASS
  • 0:772p-935p-1.191n
  • 1:2.2n-2.92n-4.1n
  • 2:3.63n-4.92n-6.87n
  • 3:5.04n-6.91n-9.66n

19:18

-

-

-

17:16

R/W

0x0

REG_DLY

15:14

-

-

-

13:12

R/W

0x0

REG_ICP
参考时钟范围
  • 0:50~100M
  • 1:100~150M
  • 2:150~200M
  • 3:200~266M

11:8

R/W

0x0

PHASE_SEL
输入时钟相位选择
  • 0:22.5°
  • 1:45°
  • 2:67.5°
  • 3:90°
  • 4:112.5°
  • 5:135°
  • 6:157.5°
  • 7:180°
  • 8:202.5°
  • 9:225°
  • 10:247.5°
  • 11:270°
  • 12:292.5°
  • 13:315°
  • 14:337.5°
  • 15:BYPASS
此位配置 0~14 时,需配置下列值:
  • EN_DLL 为 1
  • EN_VCDL 为 1
  • EN_CP 为 1
  • EN_BYPASS 为 0
此位配置 15 时,需配置下列值:
  • EN_DLL 为 0
  • EN_VCDL 为 1
  • EN_CP 为 0
  • EN_BYPASS 为 1
若配置 EN_DLL 为 0,EN_VCDL 为 0,EN_CP 为 0,EN_BYPASS 为 0,则输入时钟为 0 相位。

7:6

-

-

-

5

R/W

0x0

En_lvs

4

R/W

0x0

En_ldo

3

R/W

0x0

EN_BYPASS

2

R/W

0x0

EN_CP

1

R/W

0x0

EN_VCDL

0

R/W

0x0

EN_DLL

使能上升沿检测参考时钟周期

重新配置时钟频率后,重新配置此位使能 DLL 功能(在 SYS_CFG 模块中配置)。

0x0018 XSPI_CS1_CTL

默认值:0x00200000

xSPI 通道 1 控制(xSPI Chip Select 1 Control)

位域

类型

默认值

描述

31:29

-

-

-

28:24

R/W

0x0

WR_DELAY_CHAIN_SEL

输出时钟 Delay Chain 选择

23:22

-

-

-

21

R/W

0x1

WR_PHASE_SEL
  • 当 SPI CPHA=1 时
    • 0:0°
    • 1:90°
  • 当 SPI CPHA=0 时
    • 0:180°
    • 1:270°
注: 使用 SPI 四模式时,此位需配为 0。

20

R/W

0x0

WR_DELAY_CHAIN_EN

此位配 1,则使能 Celay Chain。

19:18

-

-

-

17:16

R/W

0x0

RD_PHASE
内部采样时钟相位选择
  • 0:0°
  • 1:90°
  • 2:180°
  • 3:360°

15

-

-

-

14:12

R/W

0x0

RD_DELAY_CYCLE

内部采样延迟时钟数

11:9

-

-

-

8:4

R/W

0x0

RD_DELAY_CHAIN_SEL

Delay Chain 选择

3

R/W

0x0

RD_VALID_CONTROL
  • 0:当前 Cycle 有效
  • 1:延迟 1 Cycle 有效

读操作时,内部控制逻辑访问异步 FIFO 时间控制。

2

R/W

0x0

RD_DELAY_CHAIN_EN

此位配 1,则使能 Delay Chain。

1:0

R/W

0x0

RD_SAMPLE_CTL
读数据采样控制
  • 0:DQS 输入时钟采样 DLL 控制
  • 1:内部时钟采样 Delay Chain 控制
  • 2/3:DQS 输入时钟采样 Delay Chain 控制

0x001C XSPI_CS1_DCTL

默认值:0x00000000

xSPI 通道 1 DLL 控制(XSPI Chip Select 1 DLL Control)

位域

类型

默认值

描述

31:30

-

-

-

29

R/W

0x0

FORCE_LOCK

28

R/W

0x0

EN_ATB

27

-

-

-

26:24

R/W

0x0

REG_ATBSEL

23:22

-

-

-

21:20

R/W

0x0

REG_BYPASS
  • 0:772p-935p-1.191n
  • 1:2.2n-2.92n-4.1n
  • 2:3.63n-4.92n-6.87n
  • 3:5.04n-6.91n-9.66n

19:18

-

-

-

17:16

R/W

0x0

REG_DLY

15:14

-

-

-

13:12

R/W

0x0

REG_ICP
  • 0:50~100M
  • 1:100~150M
  • 2:150~200M
  • 3:200~266M

11:8

R/W

0x0

PHASE_SEL
  • 0:22.5°
  • 1:45°
  • 2:67.5°
  • 3:90°
  • 4:112.5°
  • 5:135°
  • 6:157.5°
  • 7:180°
  • 8:202.5°
  • 9:225°
  • 10:247.5°
  • 11:270°
  • 12:292.5°
  • 13:315°
  • 14:337.5°
  • 15:BYPASS
此位配置 0~14 时,需配置下列值:
  • EN_DLL 为 1
  • EN_VCDL 为 1
  • EN_CP 为 1
  • EN_BYPASS 为 0
此位配置 15 时,需配置下列值:
  • EN_DLL 为 0
  • EN_VCDL 为 1
  • EN_CP 为 0
  • EN_BYPASS 为 1

若配置 EN_DLL 为 0,EN_VCDL 为 0,EN_CP 为 0,EN_BYPASS 为 0,则输入时钟为 0 相位。

7:6

-

-

-

5

R/W

0x0

En_lvs

4

R/W

0x0

En_ldo

3

R/W

0x0

EN_BYPASS

2

R/W

0x0

EN_CP

1

R/W

0x0

EN_VCDL

0

R/W

0x0

EN_DLL

使能上升沿检测参考时钟周期

重新配置时钟频率后,重新配置此位使能 DLL 功能。

0x0020 XSPI_IER

默认值:0x00000000

xSPI 中断使能寄存器(xSPI Interrupt Enable Register)

位域

类型

默认值

描述

31:25

-

-

-

24

R/W

0x0

XIP ERROR

23

R/W

0x0

AXI ERROR

22

R/W

0x0

OPI_ERROR
OPI 协议行为配置错误使能
  • 0:禁止
  • 1:使能

XSPI 配置为 OPI 模式,并且 LUT 配置不符合 OPI 协议。

21

R/W

0x0

HYPERBUS_ERROR
HYPERBUS 协议行为配置错误使能
  • 0:禁止
  • 1:使能

xSPI 配置为 HYPERBUS 模式,并且 LUT 配置不符合 HYPERBUS 协议。

20

R/W

0x0

XCCELA_ERROR
XCCELA 协议行为配置错误
  • 0:禁止
  • 1:使能

XSPI 配置为 XCCELA 模式,并且 LUT 配置不符合 XCCELA 协议。

19

R/W

0x0

AXI_TRAN_ERROR_ENAXI
传输错误中断使能
  • 0:禁止
  • 1:使能

18

R/W

0x0

AHB_TRAN_ERROR_ENAHB
传输错误中断使能
  • 0:禁止
  • 1:使能

17

R/W

0x0

LUT_INSTRUCTION_ERROR_ENLUT
指令错误中断使能
  • 0:禁止
  • 1:使能

16

R/W

0x0

LUT_ADDR_OPREND_ERROR_ENLUT
地址位宽错误中断使能
  • 0:禁止
  • 1:使能

15

R/W

0x0

CS1_TO_ENCS1
传输超时中断使能
  • 0:禁止
  • 1:使能

14

R/W

0x0

CS0_TO_ENCS0
传输超时中断使能
  • 0:禁止
  • 1:使能

13

R/W

0x0

CS1_DONE_ENCS1
传输完成中断使能
  • 0:禁止
  • 1:使能

12

R/W

0x0

CS0_DONE_ENCS0
传输完成中断使能
  • 0:禁止
  • 1:使能

11

R/W

0x0

TF_UDR_INT_ENTX
FIFO 下溢出中断使能
  • 0:禁止
  • 1:使能

当硬件读取空的 TX FIFO 会产生此中断。

10

R/W

0x0

TF_OVF_INT_ENTX
FIFO 上溢出中断使能
  • 0:禁止
  • 1:使能

当 CPU/ DMA 写入 Full 的 TX FIFO 会产生此中断。

9

R/W

0x0

RF_UDR_INT_ENRX
FIFO 下溢出中断使能
  • 0:禁止
  • 1:使能

当 CPU/ DMA 读取空的 RX FIFO 会产生此中断

8

R/W

0x0

RF_OVF_INT_ENRX
FIFO 上溢出中断使能
  • 0:禁止
  • 1:使能

当硬件写入 Full 的 RX FIFO 会产生此中断

7

-

-

-

6

R/W

0x0

TX_FULL_INT_ENTX
FIFO 满中断使能
  • 0:禁止
  • 1:使能

5

R/W

0x0

TX_EMP_INT_ENTX
FIFO 为空中断使能
  • 0:禁止
  • 1:使能

4

R/W

0x0

TX_ERQ_INT_ENTX
FIFO 为空请求中断使能
  • 0:禁止
  • 1:使能

2

R/W

0x0

RX_FULL_INT_ENRX
FIFO 满中断使能
  • 0:禁止
  • 1:使能

1

R/W

0x0

RX_EMP_INT_ENRX
FIFO 为空中断使能
  • 0:禁止
  • 1:使能

0

R/W

0x0

RX_ERQ_INT_ENRX
FIFO 为空请求中断使能
  • 0:禁止
  • 1:使能

0x0024 XSPI_ISR

默认值:0x00000033

xSPI 中断状态寄存器(xSPI Interrupt Status Register)

位域

类型

默认值

描述

31:25

-

-

-

24

R/W1C

0x0

XIP ERROR

23

R/W1C

0x0

AXI ERROR

22

R/W1C

0x0

OPI_ERROR

OPI 协议行为配置错误

置 1,表示 XSPI 配置为 OPI 模式,并且 LUT 配置不符合 OPI 协议,写 1 清除。

21

R/W1C

0x0

HYPERBUS_ERROR

HYPERBUS 协议行为配置错误

置 1,表示 XSPI 配置 为 HYPERBUS 模式,并且 LUT 配置不符合 HYPERBUS 协议,写 1 清除。

20

R/W1C

0x0

XCCELA_ERROR

XCCELA 协议行为配置错误

置 1,表示 XSPI 配置为 XCCELA 模式,并且 LUT 配置不符合 XCCELA 协议,写 1 清除。

19

R/W1C

0x0

AXI_TRAN_ERROR

AXI 传输错误

置 1,表示 AHB 正在传输时,发起 AXI 传输请求,写 1 清除。

此时需立刻结束 AHB 传输,启动 AXI 传输。

18

R/W1C

0x0

AHB_TRAN_ERROR

AHB 传输错误

置 1,表示 AXI 正在传输时,发起 AHB 传输请求,写 1 清除。

17

R/W1C

0x0

LUT_INSTRUCTION_ERROR

LUT 指令错误

置 1,表示 LUT 配置无定义指令,写 1 清除。

16

R/W1C

0x0

LUT_ADDR_OPREND_ERROR

LUT 地址位宽错误

置 1,表示 LUT 地址位宽配置错误,写 1 清除。

15

R/W1C

0x0

CS1_TOCS1

传输超时中断,写 1 清除。

14

R/W1C

0x0

CS0_TOCS0

传输超时中断,写 1 清除。

13

R/W1C

0x0

CS1_DONE
通道 1 传输完成中断
  • 0:busy(忙等待,设备正在处理)
  • 1:传输完成

写 1 清除。

12

R/W1C

0x0

CS0_DONE

通道 0 传输完成中断

  • 0:busy(忙等待,设备正在处理)
  • 1:传输完成

写 1 清除。

11

R/W1C

0x0

TF_UDFTX
FIFO 下溢出中断
  • 0:TXFIFO 没有下溢出
  • 1:TXFIFO 下溢出

写 1 清除。

10

R/W1C

0x0

TF_OVFTX
FIFO 上溢出中断
  • 0:TXFIFO 没有上溢出
  • 1:TXFIFO 上溢出

写 1 清除。

9

R/W1C

0x0

RF_UDFRX
FIFO 下溢出中断
  • 0:RXFIFO 没有下溢出
  • 1:RXFIFO 下溢出

写 1 清除。

8

R/W1C

0x0

RF_OVFRX
FIFO 上溢出中断
  • 0:RXFIFO 没有上溢出
  • 1:RXFIFO 上溢出

写 1 清除。

7

-

-

-

6

R/W1C

0x0

TX_FULLTX
FIFO 满中断
  • 0:TXFIFO 未满
  • 1:TXFIFO 已满

5

R/W1C

0x1

TX_EMPTX
FIFO 为空中断
  • 0:TXFIFO 不为空
  • 1:TXFIFO 为空

4

R/W1C

0x1

TX_READYTX
FIFO 完成中断
  • 0:TX_WL >= TX_TRIG_LEVEL
  • 1:TX_WL < TX_TRIG_LEVEL

2

R/W1C

0x0

RX_FULL
RX FIFO 满中断
  • 0:RXFIFO 未满
  • 1:RXFIFO 已满

1

R/W1C

0x1

RX_EMPRX
FIFO 为空中断
  • 0:RXFIFO 不为空
  • 1:RXFIFO 为空

0

R/W1C

0x1

RX_READYRX
FIFO 完成中断
  • 0:RX_WL >= RX_TRIG_LEVEL
  • 1:RX_WL < RX_TRIG_LEVEL

0x0028 XSPI_FCR

默认值:0x00400001

xSPI FIFO 控制寄存器(xSPI FIFO Control Register)

位域

类型

默认值

描述

31

R/WAC

0x0

TX_FIFO_RST

TX FIFO 复位,完成后自动清零

30:25

-

-

-

24

R/W

0x0

TF_DRQ_EN
TX FIFO DMA 请求使能
  • 0:禁止
  • 1:使能

TX FIFO 数据深度小于触发等级时请求 DMA 传输。

23

-

-

-

22:16

R/W

0x40

TX_TRIG_LEVEL

TX FIFO 为空请求信号的触发等级

15

R/WAC

0x0

RF_RSTRX

FIFO Reset,完成后自动清零

14:9

-

-

-

8

R/W

0x0

RF_DRQ_EN
RX FIFO DMA 请求使能
  • 0:禁止
  • 1:使能

RX FIFO 数据深度大于触发等级时请求 DMA 传输。

7

-

-

-

6:0

R/W

0x1

RX_TRIG_LEVEL

RX FIFO 为空请求信号的触发等级。

0x002C XSPI_FSR

默认值:0x00000000

xSPI FIFO 状态寄存器(xSPI FIFO Status Register)

位域

类型

默认值

描述

31

R

0x0

TB_WR

TX FIFO 写缓存使能

30:28

R

0x0

TB_CNT

TX FIFO Write Buffer Counter(写缓存计数器)

表示 TX FIFO 写缓存中的字(1 个字 = 4 个字节)的数量。

27:24

-

-

-

23:16

R

0x0

TF_CNT
TX FIFO 计数器
  • 0:在 TX FIFO 中有 0 字节数据
  • 1:在 TX FIFO 中有 1 字节数据
  • 64:在 TX FIFO 中有 64 字节数据

15

R

0x0

RB_WR

RX FIFO 读缓存写使能

14:12

R

0x0

RB_CNT

RX FIFO Read Buffer Counter(读缓存计数器)

表示 RX FIFO 读缓存中的字(1 个字 = 4 个字节)的数量。

11:8

-

-

-

7:0

R

0x0

RF_CNT
RX FIFO 计数器
  • 0:在 RX FIFO 中有 0 字节数据
  • 1:在 RX FIFO 中有 1 字节数据
  • 64:在 RX FIFO 中有 64 字节数据

0x0030 XSPI_START

默认值:0x00000000

xSPI 启动寄存器(xSPI Start)

位域

类型

默认值

描述

31:4

-

-

-

3:0

R/WAC

0x0

START_CTL
AHB 通道启动控制
  • 0:从 LUT0 开始执行
  • 1:从 LUT4 开始执行
  • 7:从 LUT28 开始执行

LUT 寄存器分八组,每四个为一组。

启动完成后自动清 0。

0x0034 XSPI_ADDR

默认值:0x00000000

xSPI 地址配置寄存器(XSPI Address)

位域

类型

默认值

描述

31:0

R/W

0x0

ADDR

此字段为 AHB 通道配置外设的访问地址。

0x0038 XSPI_FMR

默认值:0x00000000

xSPI 格式配置寄存器(xSPI Format Register)

位域

类型

默认值

描述

31:24

R/W

0x0

FORMAT_CMD

23:16

R/W

0x0

FORMAT_CMD_EX

15:3

-

-

-

2:0

R/WAC

0x0

FORMAT_SEL
  • 0:LUT 配置,AHB/ AXI 读写访问
  • 1:COMMAND,1S
  • 2:COMMAND + 3-byte Address,1S-1S
  • 3:COMMAND + 4-byte Address,1S-1S
  • 4:COMMAND,8D
  • 5:COMMAND + COMMAND_EX,8D
  • 6:COMMAND + COMMAND_EX + 4-byte Address,8D-8D

此位配 1-6,则直接触发相应描述行为,无需配置 LUT,此时 CMD 以及 CMD_EX 在 bit[31:16] 配置,Address 在 XSPI_ADDR 寄存器配置。

主要应用简答典型操作,如外部设备 reset 命令,擦除命令等。传输结束后自动清零。

0x0040 XSPI_BTR

默认值:0x00004010

xSPI 突发类型寄存器(XSPI Burst Type Register)

位域

类型

默认值

描述

31:16

-

-

-

15:8

R/W

0x40

SPI_BURST_WRAPPED

SPI 模式 XIP 使能时,若 AXI Burst Type 是 Linear 切换 Wrapped,触发此命令发送。

7:0

R/W

0x10

SPI_BURST_LINEAR

SPI 模式 XIP 使能时,若 AXI Burst Type 是 Wrapped 切换 Linear,触发此命令发送。

0x0044 XSPI_RCC

默认值:0x00002000

xSPI 读命令控制(xSPI Read Command Control)

位域

类型

默认值

描述

31:18

-

-

-

17

R/W

0x0

READ_MODE_BYTE_EN

SPI 读命令模式位使能,当该位使能,地址后面增加 1 byte 模式位,模式位的线宽与地址位一致,模式位的设定值由 RDCMD_BYPASS_EN 决定。

注: SPI 工作在 Dual I/O,Quad I/O,QPI,DTR Quad I/O 模式下时,用户必须配置该位使能。

16

R/W

0x0

RDCMD_BYPASS_EN

SPI 读命令 Bypass 模式使能,当该位使能,模式位的设定值为 RDCMD_BYPPASS_CODE,否则模式位的设定值为 RDCMD_NORMAL_CODE。

15:8

R/W

0x20

RDCMD_BYPASS_CODE

该位域定义读命令 Bypass 模式下的设定值,之后的读操作不需要再次发送读命令。

7:0

R/W

0x00

RDCMD_NORMAL_CODE

该位域定义正常模式下的设定值,每次读操作都需要发送读命令。

0x0048 XSPI_NDMA_MODE_CTL

默认值:0x000000E5

xSPI DMA 模式控制(xSPI DMA Mode Control)

位域

类型

默认值

描述

31:8

-

-

-

7:6

R/W

0x3

  • 00:dma_active 信号为低
  • 01:dma_active 信号为高
  • 10:dma_active 信号由 DMA 请求控制
  • 11:dma_active 信号由控制器控制

5

R/W

0x1

  • 0:active fall do not care ack
  • 1:active fall must after detect ack is high

4:0

R/W

0x05

延迟时钟数,从 DMA 最后一笔信号为高到 dma_active 信号为高保持的时钟数。

0x0050 XSPI_TO

默认值:0xffffffff

xSPI 超时配置(XSPI Timeout)

位域

类型

默认值

描述

31:0

R/W

0xffff_ffff

TIMEOUT

超时计数器单位为 XSPI_CLK

0x0054 XSPI_LCKCR

默认值:0x00000002

xSPI 锁定配置(xSPI LOCK Configuration)

位域

类型

默认值

描述

31:2

-

-

-

1:0

R/W

0x2

LOCK_CFG
LUT 锁定配置
  • 0x1:锁定
  • 0x2:解锁

锁定时不可配置查找表。

0x0058 XSPI_LUT_UP

默认值:0x00000000

xSPI 查找表更新(xSPI Look Up Table Update)

位域

类型

默认值

描述

31:1

-

-

-

0

R/WAC

0x0

LUT_UP

写 1 将当前 LUT 读写控制信息更新至 AXI 通道传输使用,节省硬件查找 LUT 时间,完成后自动清 0。

注: 需在 XIP_EN 配 1 之前完成 UPDATE。

0x0060 XSPI_CS0_SEQUENCE

默认值:0x76543210

xSPI 通道 0 线序(XSPI Chip Select 0 Sequence)

位域

类型

默认值

描述

31

-

-

-

30:28

R/W

0x7

D7_SELD

7 位数据选择

27

-

-

-

26:24

R/W

0x6

D6_SELD

6 位数据选择

23

-

-

-

22:20

R/W

0x5

D5_SELD

5 位数据选择

19

-

-

-

18:16

R/W

0x4

D4_SELD

4 位数据选择

15

-

-

-

14:12

R/W

0x3

D3_SELD

3 位数据选择

11

-

-

-

10:8

R/W

0x2

D2_SELD

2 位数据选择

7

-

-

-

6:4

R/W

0x1

D1_SELD

1 位数据选择

3

-

-

-

2:0

R/W

0x0

D0_SELD
0 位数据选择
  • 0:D0
  • 1:D1
  • 2:D2
  • 3:D3
  • 4:D4
  • 5:D5
  • 6:D6
  • 7:D7

0x0064 XSPI_CS1_SEQUENCE

默认值:0x76543210

xSPI 通道 1 线序(xSPI Chip Select 1 Sequence)

位域

类型

默认值

描述

31

-

-

-

30:28

R/W

0x7

D7_SELD

7 位数据选择

27

-

-

-

26:24

R/W

0x6

D6_SELD

6 位数据选择

23

-

-

-

22:20

R/W

0x5

D5_SELD

5 位数据选择

19

-

-

-

18:16

R/W

0x4

D4_SELD

4 位数据选择

15

-

-

-

14:12

R/W

0x3

D3_SELD

3 位数据选择

11

-

-

-

10:8

R/W

0x2

D2_SELD

2 位数据选择

7

-

-

-

6:4

R/W

0x1

D1_SELD

1 位数据选择

3

-

-

-

2:0

R/W

0x0

D0_SELD
  • 0:D0
  • 1:D1
  • 2:D2
  • 3:D3
  • 4:D4
  • 5:D5
  • 6:D6
  • 7:D7

0x0068 XSPI_IO_CTL

默认值:0x00000000

xSPI IO 控制(xSPI IO Control)

位域

类型

默认值

描述

312

-

-

-

1

R/W

0x0

CS1_IO_CFG
  • 0:打开
  • 1:关闭

0

R/W

0x0

CS0_IO_CFG
  • 0:打开
  • 1:关闭

0x0070 XSPI_CS0_IOCFG1

默认值:0x00000000

xSPI 通道 0 IO 配置 1(xSPI Chip Select 0 IO Configuration1)

位域

类型

默认值

描述

31:30

-

-

-

29:28

R/W

0x0

D7_PIN_PULL

引脚上下拉设置

27

-

-

-

26:24

R/W

0x0

D7_PIN_DRV

引脚输出驱动能力

23:22

-

-

-

21:20

R/W

0x0

D6_PIN_PULL

引脚上下拉设置

19

-

-

-

18:16

R/W

0x0

D6_PIN_DRV

引脚输出驱动能力

15:14

-

-

-

13:12

R/W

0x0

D5_PIN_PULL

引脚上下拉设置

11

-

-

-

10:8

R/W

0x0

D5_PIN_DRV

引脚输出驱动能力

7:6

-

-

-

5:4

R/W

0x0

D4_PIN_PULL
引脚上下拉设置
  • 0:关闭
  • 1:预留
  • 2:下拉 33KΩ 到 GND
  • 3:上拉 33KΩ 到 VCC-IO

3

-

-

-

2:0

R/W

0x0

D4_PIN_DRV

引脚输出驱动能力

0x0074 XSPI_CS0_IOCFG2

默认值:0x00000000

xSPI 通道 0 IO 配置 2(xSPI Chip Select 0 IO Configuration2)

位域

类型

默认值

描述

31:30

-

-

-

29:28

R/W

0x0

D3_PIN_PULL

引脚上下拉设置

27

-

-

-

26:24

R/W

0x0

D3_PIN_DRV

引脚输出驱动能力

23:22

-

-

-

21:20

R/W

0x0

D2_PIN_PULL

引脚上下拉设置

19

-

-

-

18:16

R/W

0x0

D2_PIN_DRV

引脚输出驱动能力

15:14

-

-

-

13:12

R/W

0x0

D1_PIN_PULL

引脚上下拉设置

11

-

-

-

10:8

R/W

0x0

D1_PIN_DRV

引脚输出驱动能力

7:6

-

-

-

5:4

R/W

0x0

D0_PIN_PULL
引脚上下拉设置
  • 0:关闭
  • 1:预留
  • 2:下拉 33KΩ 到 GND
  • 3:上拉 33KΩ 到 VCC-IO

3

-

-

-

2:0

R/W

0x0

D0_PIN_DRV

引脚输出驱动能力

0x0078 XSPI_CS0_IOCFG3

默认值:0x30000000

xSPI 通道 0 IO 配置 3(xSPI Chip Select 0 IO Configuration3)

位域

类型

默认值

描述

31:30

-

-

-

29:28

R/W

0x3

CS_PIN_PULL

引脚上下拉设置

27

-

-

-

26:24

R/W

0x0

CS_PIN_DRV

引脚输出驱动能力

23:22

-

-

-

21:20

R/W

0x0

DQS_PIN_PULL

引脚上下拉设置

19

-

-

-

18:16

R/W

0x0

DQS_PIN_DRV

引脚输出驱动能力

15:14

-

-

-

13:12

R/W

0x0

CK_PIN_PULL

引脚上下拉设置

11

-

-

-

10:8

R/W

0x0

CK_PIN_DRV

引脚输出驱动能力

7:6

-

-

-

5:4

R/W

0x0

CKN_PIN_PULL
引脚上下拉设置
  • 0:关闭
  • 1:预留
  • 2:下拉 33KΩ 到 GND
  • 3:上拉 33KΩ 到 VCC-IO

3

-

-

-

2:0

R/W

0x0

CKN_PIN_DRV

引脚输出驱动能力

0x007C XSPI_CS0_IOCFG4

默认值:0x00000000

XSPI 通道 0 IO 配置 4(XSPI Chip Select 0 IO Configuration4)

位域

类型

默认值

描述

31:6

-

-

-

5:4

R/W

0x0

DM_PIN_PULL
引脚上下拉设置
  • 0:关闭
  • 1:预留
  • 2:下拉 33KΩ 到 GND
  • 3:上拉 33KΩ 到 VCC-IO

3

-

-

-

2:0

R/W

0x0

DM_PIN_DRV

引脚输出驱动能力

0x0080 XSPI_CS1_IOCFG1

默认值:0x00000000

XSPI 通道 1 IO 配置 1(XSPI Chip Select 1 IO Configuration1)

位域

类型

默认值

描述

31:30

-

-

-

29:28

R/W

0x0

D7_PIN_PULL

引脚上下拉设置

27

-

-

-

26:24

R/W

0x0

D7_PIN_DRV

引脚输出驱动能力

23:22

-

-

-

21:20

R/W

0x0

D6_PIN_PULL

引脚上下拉设置

19

-

-

-

18:16

R/W

0x0

D6_PIN_DRV

引脚输出驱动能力

15:14

-

-

-

13:12

R/W

0x0

D5_PIN_PULL

引脚上下拉设置

11

-

-

-

10:8

R/W

0x0

D5_PIN_DRV

引脚输出驱动能力

7:6

-

-

-

5:4

R/W

0x0

D4_PIN_PULL
引脚上下拉设置
  • 0:关闭
  • 1:预留
  • 2:下拉 33KΩ 到 GND
  • 3:上拉 33KΩ 到 VCC-IO

3

-

-

-

2:0

R/W

0x0

D4_PIN_DRV

引脚输出驱动能力

0x0084 XSPI_CS1_IOCFG2

默认值:0x00000000

XSPI 通道 1 IO 配置 2(XSPI Chip Select 1 IO Configuration2)

位域

类型

默认值

描述

31:30

-

-

-

29:28

R/W

0x0

D3_PIN_PULL

引脚上下拉设置

27

-

-

-

26:24

R/W

0x0

D3_PIN_DRV

引脚输出驱动能力

23:22

-

-

-

21:20

R/W

0x0

D2_PIN_PULL

引脚上下拉设置

19

-

-

-

18:16

R/W

0x0

D2_PIN_DRV

引脚输出驱动能力

15:14

-

-

-

13:12

R/W

0x0

D1_PIN_PULL

引脚上下拉设置

11

-

-

-

10:8

R/W

0x0

D1_PIN_DRV

引脚输出驱动能力

7:6

-

-

-

5:4

R/W

0x0

D0_PIN_PULL
引脚上下拉设置
  • 0:关闭
  • 1:预留
  • 2:下拉 33KΩ 到 GND
  • 3:上拉 33KΩ 到 VCC-IO

3

-

-

-

2:0

R/W

0x0

D0_PIN_DRV

引脚输出驱动能力

0x0088 XSPI_CS1_IOCFG3

默认值:0x30000000

XSPI 通道 1 IO 配置 3(XSPI Chip Select 1 IO Configuration3)

位域

类型

默认值

描述

31:30

-

-

-

29:28

R/W

0x3

CS_PIN_PULL

引脚上下拉设置

27

-

-

-

26:24

R/W

0x0

CS_PIN_DRV

引脚输出驱动能力

23:22

-

-

-

21:20

R/W

0x0

DQS_PIN_PULL

引脚上下拉设置

19

-

-

-

18:16

R/W

0x0

DQS_PIN_DRV

引脚输出驱动能力

15:14

-

-

-

13:12

R/W

0x0

CK_PIN_PULL

引脚上下拉设置

11

-

-

-

10:8

R/W

0x0

CK_PIN_DRV

引脚输出驱动能力

7:6

-

-

-

5:4

R/W

0x0

CKN_PIN_PULL
引脚上下拉设置
  • 0:关闭
  • 1:预留
  • 2:下拉 33KΩ 到 GND
  • 3:上拉 33KΩ 到 VCC-IO

3

-

-

-

2:0

R/W

0x0

CKN_PIN_DRV

引脚输出驱动能力

0x008C XSPI_CS1_IOCFG4

默认值:0x00000000

XSPI 通道 1 IO 配置 4(XSPI Chip Select 1 IO Configuration4)

位域

类型

默认值

描述

31:6

-

-

-

5:4

R/W

0x0

DM_PIN_PULL
引脚上下拉设置
  • 0:关闭
  • 1:预留
  • 2:下拉 33KΩ 到 GND
  • 3:上拉 33KΩ 到 VCC-IO

3

-

-

-

2:0

R/W

0x0

DM_PIN_DRV

引脚输出驱动能力

0x0090 XSPI_TRAINING_CFG

默认值:0x00000000

XSPI TRAINIING 配置 (XSPI Training Configuration)

位域

类型

默认值

描述

31:25

-

-

-

24

R/W

0x0

TRAINING_PHASE_CAL
training 结果计算
  • 0:(temp1 + temp2)/2, 向下取整
  • 1:(( temp1 + temp2 ) - 1 ) / 2 + 1, 向上取整

23:20

-

-

-

19:16

R/W

0x0

TRAINING_PATTERN_SEL
  • 0:stuck address
  • 1:随机数
  • 2:高低电平反转
  • 3:自定义

15:0

R/W

0x0

DATA_LEN

training 数据长度,单位 bytes

0x0094 XSPI_TRAINING_PATTERN

默认值:0x00000000

XSPI TRAINIING PATTERN (XSPI Training Pattern)

位域

类型

默认值

描述

31:0

R/W

0x0

TRAINING_PATTERN

TRAINING_PATTERN_SEL 选择 3 时,此字段可设置 training 数据内容

0x0100 XSPI_LUTn

默认值:0x00000000

xSPI 查找表 n(XSPI Look Up Table n,n=0~31)

位域

类型

默认值

描述

31:26

R/W

0x0

Instruction1 指令

25:24

R/W

0x0

IO CFG
Instruction1 的 IO 配置信息
  • 0x0:1 个 IO
  • 0x1:2 个 IO
  • 0x2:4 个 IO
  • 0x3:8 个 IO

23:16

R/W

0x0

OPERAND

Instruction1 的操作数配置

15:10

R/W

0x0

Instruction0

指令

9:8

R/W

0x0

IO CFG
Instruction0 的 IO 配置信息
  • 0x0:1 个 IO
  • 0x1:2 个 IO
  • 0x2:4 个 IO
  • 0x3:8 个 IO

7:0

R/W

0x0

OPERAND

Instruction0 的操作数配置

0x0200 XSPI_TDR

默认值:0x00000000

xSPI 发送数据寄存器(xSPI Transmit Data Register)

位域

类型

默认值

描述

31:0

W

0x0

TDR

发送数据

该寄存器可以通过 AHB 总线以字节,半字或字为单位进行访问。
  • 以字节访问时,每次写一笔数据到 TXFIFO,FIFO 深度加 1。
  • 以半字访问时,每次写两笔数据到 TXFIFO,FIFO 深度加 2。
  • 以字为单位访问时,每次写四笔数据到 TXFIFO,FIFO 深度加 4。

0x0300 XSPI_RDR

默认值:0x00000000

xSPI 接收数据寄存器(xSPI Recieve Data Register)

位域

类型

默认值

描述

31:0

R

0x0

RDR

接收数据

该寄存器可以通过 AHB 总线以字节,半字或字为单位进行访问。
  • 以字节访问时,每次从 RXFIFO 读一笔数据到寄存器,FIFO 深度减 1
  • 以半字访问时,每次从 RXFIFO 读两笔数据,FIFO 深度减 2
  • 以字为单位访问时,每次从 RXFIFO 读四笔数据,FIFO 深度减 4

0x0400 XSPI_DEBUG

默认值:0x00000000

xSPI 调试寄存器(XSPI Debug)

位域

类型

默认值

描述

31:0

R

0x0

DEBUG

0x0404 XSPI_DEBUG_SEL

默认值:0x00000000

xSPI 调试选择寄存器(xSPI Debug Select)

位域

类型

默认值

描述

31:4

-

-

-

3:0

R/W

0x0

DEBUG_SEL

0xFFC VERSION

默认值:0x00000101

xSPI 版本寄存器(xSPI Version)

位域

类型

默认值

描述

31:0

RO

0x00000101 Version

模块版本号,采用 BCD 码显示,V1.1