功能概述
本 SPI 主控制器设计主要包含以下核心特性:
- SPI 模式支持:兼容模式 0 和模式 3。需注意,发送端在时钟下降沿输出数据,接收端在上升沿采样。
- 传输模式:支持 Standard、Dual 及 Quad SPI 模式。
- XIP 模式:支持 W25Q、N25Q、MX25L 等主流系列 SPI Flash。在此模式下,Flash 可视为类 SRAM 存储设备,通过地址直接读取内容,无需像传统 SPI 那样先发送命令、地址及 Dummy Cycle。AHB 路径将读操作直接转换为 SPI 读 Flash 操作,对 AHB 接口而言如同访问普通 SRAM。
- 性能指标:当 SPI 控制器时钟为 50MHz(接口 sclk 最高 25MHz)时,AHB 连续读 W25QXX Flash 带宽可达约 12.5MB/s,随机地址读带宽约 4.3MB/s。
- 数据校验:支持对 AHB 接口读取的数据计算 CRC32 校验码,确保数据传输完整性。
架构设计
整体架构如下图所示,涵盖了 AHB 与 APB 总线接口以及 SPI 外设接口。
接口介绍
系统主要包含三类接口:
- AMBA3 AHB-Lite 接口:用于高速数据读取(XIP 模式)。
- AMBA4 APB 接口:用于寄存器配置及低速控制。
- SPI 接口:连接外部 Flash 器件。
| 信号名 | IO 类型 | 描述 |
|---|---|---|
| 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 |
此外,系统在中断电平信号上做了优化,在以下情况触发中断:
- 发送缓冲区为空;
- 接收缓冲区非空;
- AHB 路径检测到写操作(注:AHB 路径仅支持读操作,此中断主要用于异常检测或特定逻辑)。
寄存器介绍
控制器内部寄存器映射如下,用于配置工作模式及状态监控。






