寄存器描述
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 总线以字节,半字或字为单位进行访问。 
  | 
                        
