寄存器描述
0x000 SPI_VER
默认值:0x00090001 | SPI 控制器版本 (SPI Controller Version) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:16 | R | 0×9 | VER_H 控制器高位版本号 |
15:0 | R | 0×1 | VER_L 控制器低位版本号 |
0x004 SPI_CFG
默认值:0x00000080 | SPI 配置 (SPI Configuration) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31 | R/WAC | 0×0 | CTRL_RST 控制器复位(Controller Reset) 置1,SPI控制器复位,完成后自动清0。 |
30:8 | - | - | - |
7 | R/W | 0×1 | RXFULL_STOP 传输停止使能(RX FIFO Full Transfer Stop
Enable)
|
6:2 | - | - | - |
1 | R/W | 0×0 | CTRL_MODE_SEL 工作模式选择(Controller Work Mode
Select)
注: 当 START = 1时,不能写入。
|
0 | R/W | 0×0 | CTRL_EN 控制器使能(Controller Enable)
注: 当传输形式从 bit_mode 切换到 byte_mode
时,必须使能一次。
|
0x008 SPI_TCFG
默认值:0x00000087 | SPI 传输配置 (SPI Transfer Configuration) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31 | R/WAC | 0x0 | START 启动数据传输(Start Data Transfer)
注: 当START=1时不能写入。
|
30:26 | - | - | - |
25 | R/W | 0x0 | 3WIRE_EN 三线 byte 模式传输使能(3-Wire Byte Mode Transfer
Enable)
|
24:15 | - | - | - |
14 | R/W | 0x0 | TXDLY_EN 发送数据延时模式使能(TX Data Delay Mode Enable)
注: 在
Dual/Quad模式下,该位必须置1,发送数据延时半个时钟周期。
|
13 | R/W | 0x0 | RXDLY_DIS 接收数据延时采样模式配置(RX Data Delay Sample Mode
Disable)
|
12 | R/W | 0x0 | LSB_EN 最低有效位优先传输使能(Low Significant Bit Transmit
Enable)
注: 当START=1时不能写入。
|
11 | R/W | 0x0 | RXINDLY_EN 接收数据内部采样点模式配置(RX Data Inner Sample
Delay Mode Enable)
|
10 | R/W | 0x0 | HSWM 高速写模式配置(High Speed Write Mode
Configuration)
注: 当START=1时不能写入。
|
9 | R/W | 0x0 | DMY_VAL 填充数据值配置(Dummy Byte Value Configuration)
注: 当START=1时不能写入。 |
8 | R/W | 0x0 | DINVD 丢弃无效数据(Discard Invalid Data) 发送数据时,设备端会主动发无效数据回来,此时如果不能及时读取FIFO的数据,该位需要使能,自动丢弃读到的无效数据。
注: 当START=1时不能写入。 |
7 | R/W | 0x1 | CS_LEVEL 片选信号电平配置(CS Level Configuration)
注: 当START=1时不能写入。 |
6 | R/W | 0x0 | CS_CTL_SEL 片选信号控制模式选择(CS Control Mode Select)
通常由控制器自动发送CS信号,当该位置1,必须手动配置CS_LEVEL的电平状态。 注: 当START=1时不能写入。 |
5:4 | R/W | 0x0 | CS_NUM 选中外部SPI设备的CS引脚序号(CS Pin Number)
注: 当START=1时不能写入。 |
3 | R/W | 0x0 | CS_VALID_CTL 片选信号有效控制(CS Valid Mode Control)
注: 当START=1时不能写入,当CS_CTL_SEL=0时该位才有效。 |
2 | R/W | 0x1 | CS_POL 片选信号极性控制(CS Polarity Control)
注: 当START=1时不能写入。 |
1 | R/W | 0x1 | CPOL 时钟极性控制(Clock Polarity Control)
注: 当START=1时不能写入。 |
0 | R/W | 0x1 | CPHA 时钟/数据相位控制(Clock Phase Control)
注: 当START=1时不能写入。 |
0x010 SPI_ICR
默认值:0x00000000 | SPI 中断控制 (SPI Interrupt Control) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:16 | - | - | - |
15:14 | - | - | - |
13 | R/W | 0x0 | CS_INTE CS无效中断使能(CS Invalid Interrupt Enable) 片选信号从有效状态变到无效状态。
|
12 | R/W | 0x0 | TD_INTE 传输完成中断使能(Transfer Done Interrupt
Enable)
|
11 | R/W | 0x0 | TF_UDR_INTE TX FIFO下溢出中断使能(TX FIFO Underrun
Interrupt Enable)
当CPU/DMA读取空的TX FIFO会产生此中断。 |
10 | R/W | 0x0 | TF_OVF_INTE TX FIFO上溢出中断使能(TX FIFO Overflow
Interrupt Enable)
当CPU/DMA写入满的TX FIFO会产生此中断。 |
9 | R/W | 0x0 | RF_UDR_INTE RX FIFO下溢出中断使能(RX FIFO Underrun
Interrupt Enable)
当CPU/DMA读取空的RX FIFO会产生此中断。 |
8 | R/W | 0x0 | RF_OVF_INTE RX FIFO上溢出中断使能(RX FIFO Overflow
Interrupt Enable)
当CPU/DMA写入满的RX FIFO会产生此中断。 |
7 | - | - | - |
6 | R/W | 0x0 | TF_FUL_INTE TX FIFO满中断使能(TX FIFO Full Interrupt
Enable)
|
5 | R/W | 0x0 | TF_EMP_INTE TX FIFO为空中断使能(TX FIFO Empty Interrupt
Enable)
|
4 | R/W | 0x0 | TF_RDY_INTE TX FIFO准备好中断使能(TX FIFO Ready Interrupt
Enable)
|
3 | - | - | - |
2 | R/W | 0x0 | RF_FUL_INTE RX FIFO满中断使能(RX FIFO Full Interrupt
Enable)
|
1 | R/W | 0x0 | RF_EMP_INTE RX FIFO为空中断使能(RX FIFO Empty Interrupt
Enable)
|
0 | R/W | 0x0 | RF_RDY_INTE RX FIFO准备好中断使能(RX FIFO Ready Interrupt
Enable)
|
0x014 SPI_ISTS
默认值:0x00000032 | SPI 中断状态 (SPI Interrupt Status) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:16 | - | - | - |
15:14 | - | - | - |
13 | R/W1C | 0x0 | CS_INV 片选信号无效中断(CS Invalid Interrupt) 置1,表示片选状态从有效变为无效。 |
12 | R/W1C | 0x0 | TD 传输完成中断(Transfer Done Interrupt)
|
11 | R/W1C | 0x0 | TF_UDFTX FIFO 下溢出中断(TX FIFO Underrun Interrupt)
|
10 | R/W1C | 0x0 | TF_OVF TX FIFO 上溢出中断(TX FIFO Overflow
Interrupt)
|
9 | R/W1C | 0x0 | RF_UDF RX FIFO下溢出中断(RX FIFO Underrun Interrupt)
|
8 | R/W1C | 0x0 | RF_OVF RX FIFO上溢出中断(RX FIFO Overflow Interrupt)
|
7 | - | - | - |
6 | R/W1C | 0x0 | TF_FULL TX FIFO 满中断(TX FIFO Full Interrupt)
|
5 | R/W1C | 0x1 | TF_EMP TX FIFO为空中断(TX FIFO Empty Interrupt)
|
4 | R/W1C | 0x1 | TF_READY TX FIFO准备好中断(TX FIFO Ready Interrupt)
|
3 | - | - | - |
2 | R/W1C | 0x0 | RF_FULL RX FIFO满中断(RX FIFO Full Interrupt)
|
1 | R/W1C | 0x1 | RF_EMP RX FIFO为空中断(RX FIFO Empty Interrupt)
|
0 | R/W1C | 0x0 | RF_READY RX FIFO准备好中断(RX FIFO Ready Interrupt)
|
0x018 SPI_FCTL
默认值:0x00400001 | SPI FIFO 控制 (SPI FIFO Control) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31 | R/WAC | 0x0 | TF_RST TX FIFO复位,完成后自动清零。 |
30:25 | - | - | - |
24 | R/W | 0x0 | TF_DREQ_EN TX FIFO DMA请求使能
|
23:16 | R/W | 0x40 | TF_WATER_MARK TX FIFO发出写请求信号的FIFO水位值,当FIFO水位小于该值,并且TF_DREQ_EN=1,向DMA发起写请求。 |
15 | R/WAC | 0x0 | RF_RST RX FIFO复位,完成后自动清零。 |
14:9 | - | - | - |
8 | R/W | 0x0 | RF_DREQ_EN RX FIFO DMA请求使能。
|
7:0 | R/W | 0x1 | RF_WATER_MARK RX FIFO发出读请求信号的FIFO水位值,当FIFO水位大于该值,并且RF_DREQ_EN=1,向DMA发起读请求。 |
0x01C SPI_FSTS
默认值:0x00000000 | SPI FIFO 状态 (SPI FIFO Status) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31 | R | 0x0 | TF_WBUF_STS TX FIFO Write Buffer Status,TX FIFO 写缓存状态 置1,表示写缓存正在执行写操作。 |
30:28 | R | 0x0 | TF_WBUF_CNT TX FIFO Write Buffer Counter,写缓存计数器 表示 TX FIFO 写缓存中字节的数量。 |
27:24 | - | - | - |
23:16 | R | 0x0 | TF_CNT TX FIFO 计数器(TX FIFO Counter)
|
15 | R | 0x0 | RF_RBUF_STS RX FIFO Read Buffer Status,RX FIFO 读缓存状态 置1,表示读缓存正在执行读操作。 |
14:12 | R | 0x0 | RF_RBUF_CNT RX FIFO Read Buffer Counter,读缓存计数器 表示 RX FIFO 读缓存中字节的数量。 注: QSPI0 最大
4byte 数据,QSPI1 最大 64byte 数据 |
11:8 | - | - | - |
7:0 | R | 0x0 | RF_CNT RX FIFO 计数器(RX FIFO Counter)
|
0x024 SPI_CCFG
默认值:0x00000002 | SPI 时钟配置 (SPI Clock Configuration) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:13 | - | - | - |
12 | R/W | 0x0 | CKDIV_SEL 时钟分频器选择(Clock Divider Select)
|
11:8 | R | 0x0 | CKDIV1 时钟分频器1(Clock Divider 1) SPI接口时钟频率根据如下公式计算 SPI_CLK =
源时钟频率/(2^CKDIV1) |
7:0 | R/W | 0x2 | CKDIV2 时钟分频器2(Clock Divider 2) SPI接口时钟频率根据如下公式计算: SPI_CLK = 源时钟频率/(2*(CKDIV2 +
1)) |
0x030 SPI_TBC
默认值:0x00000000 | SPI 总传输字节计数器 (SPI Total Bytes Counter) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:24 | - | - | - |
23:0 | R/W | 0x0 | TB_CNT 总传输字节计数器(Total Bytes Counter) 该值定义了传输的字节总数,包括发送,接收和填充数据。
注: 传输数据总数=发送数据+接收数据+填充数据 |
0x034 SPI_TWC
默认值:0x00000000 | SPI 写发送计数器 (SPI Transmit Write Counter) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:24 | - | - | - |
23:0 | R/W | 0x0 | TXD_CNT 写数据计数器(TX Data Counter) 该值定义了在填充数据之前发送到TXFIFO的写数据字节总数,为了节约带宽,填充数据由控制器自动发送。
|
0x038 SPI_TMC
默认值:0x00000000 | SPI 传输控制 (SPI Transmit Miscellaneous Control) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
29 | R/W | 0x0 | QUAD_EN 四线数据传输模式使能(Quad Transfer Mode Enable)
注: 4线数据模式包括4线输入和4线输出。 |
28 | R/W | 0x0 | DUAL_EN 双线数据传输模式使能(Dual Transfer Mode Enable)
注: 当START=1时不能写入,仅当QUAD_EN=0时有效。 |
27:24 | R/W | 0x0 | DMY_CNT 填充数据计数器(Dummy Bytes
Counter)定义了待发送的填充数据的字节数,用于双路模式和四路模式。
注: 当START=1时不能写入。 |
23:0 | R/W | 0x0 | STXD_CNT 单线发送数据计数器(Single TX Data Counter) 该值定义了需要使用单线模式发送的数据长度。
注: 当START=1时不能写入。 |
0x040 SPI_BMTC
默认值:0x000000A0 | SPI 位模式传输配置 (SPI Bit-Mode Transfer Configuration) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31 | R/WAC | 0x0 | BM_START 启动传输数据(Bit-Mode Start Data Transfer)
该字段置1,启动发送串行数据流,数据存放在 (SPI_BMTXD和SPI_BMRXD寄存器),传输完成后自动清零。 |
30 | R/W | 0x0 | BM_SMP_SEL 采样模式选择(Bit-Mode Sample Mode Select)
在标准采样模式下,SPI主机在SCLK的上升边沿采样数据;在延时采样模式下,SPI主机延时半个时钟周期,在SCLK的上升边沿采样数据。 |
29::26 | - | - | - |
25 | R/W1C | 0x0 | BM_TD 传输完成(Bit-Mode Transfer Done)
|
24 | R/W | 0x0 | BM_TD_INTE 传输完成中断使能(Bit-Mode Transfer Done
Interrupt Enable)。
|
23:22 | - | - | - |
21:16 | R/W | 0x00 | BM_RXCNT 接收串行数据长度(Bit-Mode RX Data Length)
注: 当总线模式选择10b/11b时有效,当BM_START=1时不能写入。 |
15:14 | - | - | - |
13:8 | R/W | 0x00 | BM_TXCNT 发送串行数据长度(Bit-Mode TX Data Length)
注: 当总线模式选择10b/11b时有效,当BM_START=1时不能写入。 |
7 | R/W | 0x1 | BMCS_LEVEL 片选信号电平配置0:配置片选信号为低电平1:配置片选信号为高电平 注: 当总线模式选择10b/11b时有效,当BM_START=1时不能写入。 |
6 | R/W | 0x0 | BMCS_CTRL_SEL 片选信号输出控制方式选择
通常控制器会自动控制片选信号高低电平。当该位置1,则需要通过软件编程写入SPI_TCFG.CS_LEVEL的值,来控制片选信号。 注: 当总线模式选择10b/11b时有效,当BM_START=1时不能写入。 |
5 | R/W | 0x1 | BMCS_POL 片选信号极性控制
注: 当总线模式选择10b/11b时有效,当BM_START=1时不能写入。 |
4 | - | - | - |
3:2 | R/W | 0x0 | BMCS_NUM 片选信号引脚序号选择
注: 当总线模式选择10/11b时有效,当BM_START=1时不能写入。 |
1:0 | R/W | 0x0 | BMOD_SEL 总线模式选择(Bus Mode Select)
|
0x044 SPI_BMCLK
默认值:0x00000000 | SPI 位模式时钟配置 (SPI Bit-Mode Clock Configuration) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:8 | - | - | - |
7:0 | R/W | 0x0 | BM_CKDIV 位模式时钟分频比例(Bit-Mode Clock Divide) 接口时钟频率计算公式如下:SPI_CLK = 源时钟/(2*(BM_CKDIV + 1)) |
0x048 SPI_BMTXD
默认值:0x00000000 | SPI 位模式发送数据值 (SPI Bit-Mode TX Data) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x0 | BMTXD 位模式发送数据值 该寄存器用来存储发送的数据 注: 在传输过程中,最高有效位先发送。 |
0x04C SPI_BMRXD
默认值:0x00000000 | SPI 位模式接收数据值 (SPI Bit-Mode RX Data) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x0 | BMRXD 位模式接收数据值 该寄存器用来存储接收的数据 注: 在传输过程中,最高有效位先接收。 |
0x200 SPI_TXD
默认值:0x00000000 | SPI 发送数据 (SPI TX Data) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | WO | 0x0 | TXD 发送数据值 该寄存器可以通过 AHB 总线以字节,半字或字为单位进行访问:
|
0x300 SPI_RXD
默认值:0x00000000 | SPI 接收数据 (SPI RX Data) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | RO | 0x0 | RXD 接收数据值 该寄存器可以通过 AHB 总线以字节,半字或字为单位进行访问。
|