一、功能
- 支持 SPI 模式 0 和模式 3。重点注意:对于模式 0 和模式 3,发送端在 SPI 时钟下降沿发送数据,接收端在 SPI 时钟上升沿采样数据;
- 支持 Standard SPI,Dual SPI,Quad SPI 模式;
- 支持 XIP 模式(支持 W25Q、N25Q、MX25L 等系列 SPI Flash)。在 XIP 模式下,Flash 器件可视为类似 SRAM 的存储设备,通过地址直接读取内容,无需像普通 SPI 接口那样先发送命令、地址及 dummy cycle。本设计的 SPI 主控制器 AHB path 能将 AHB 读操作直接转换为 SPI 读 Flash 操作;
- SPI 控制器时钟频率为 50MHz 时(SPI 接口时钟 sclk 频率最高为 25MHz),AHB 接口地址连续读 W25QXX Flash 带宽最高约为 12.5MB/s,随机地址读带宽约 4.3MB/s;
- 支持对 AHB 接口读取的数据计算 CRC32 校验码,用于验证 Flash Device 中的数据是否被正确传输到 SPI 主控制器端。
二、架构设计
三、接口介绍
- AMBA3 AHB-Lite 接口
- AMBA4 APB 接口
- SPI 接口
| Name | IO Type | description |
|---|---|---|
| cs_n | output | SPI 片选信号 |
| sclk | output | SPI 时钟信号 |
| io_0 | inout | SPI 数据线 0,MOSI |
| io_1 | inout | SPI 数据线 1,MISO |
| io_2 | inout | SPI 数据线 2 |
| io_3 | inout | SPI 数据线 3 |
- 中断电平信号 在以下情况时会产生中断:
- 发送 buffer 为空;
- 接收 buffer 非空;
- 在 AHB path 检测到写操作(AHB path 为 XIP 模式,只支持读操作)。
四、寄存器介绍

五、APB 接口读写 W25Q128 Flash
APB 读写 Flash 需要通过多次访问寄存器来实现。
5.1 APB 写 Flash
以 W25Q128 Flash 中写 Flash 的命令 Page Program (02h)为例,只需要通过访问寄存器依次将 1byte 命令、3byte 地址和若干待写入的数据以 byte 为单位发送出去即可。W25Q128 的 Page Program 命令的 sequence 如下图所示:






