Edit online

寄存器描述

22 Aug 2024
Read time: 32 minute(s)

0x0000 XSPI_CTL

默认值:0x00000100 xSPI 控制(xSPI Control)
位域 类型 默认值 描述
31:20 - - -
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:使能
3 - - -
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
3 - - -
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

引脚输出驱动能力

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

默认值:0x00000100 xSPI 版本寄存器(xSPI Version)
位域 类型 默认值 描述
31:0 RO 0x00000100 Version

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