5. Quad SPI指令
GT5G系列芯片支持"Quad Output Fast Read"和"Quad I/O Fast Read"两类Quad SPI指令。Quad SPI模式下,SI/SO/WP#/HOLD#引脚分别变为IO0/IO1/IO2/IO3,实现4线并行数据传输,数据传输速率相比标准SPI提升4倍。
Quad SPI模式要求:
- Quad Enable bit (QE) 必须置为 1
- IO0~IO3 四线同时工作
- 时钟频率可达 45MHz
5.1 Quad Read (QREAD, 6BH)
QREAD是NOR Flash最常见的Quad读取指令。在Quad Enable (QE=1) 后,指令和地址仍通过IO0 (SI) 单线发送,数据通过4个I/O并行输出,每个SCLK时钟输出4位数据。
时序过程:
- CS# 拉低
- IO0 发送 0x6B (指令码)
- IO0 发送 3字节地址(SI,单线)
- 插入8个空周期
- IO3/IO2/IO1/IO0 四线同时输出数据(每时钟4位)
- CS# 拉高,停止读取
数据输出顺序:
- 每4个时钟周期输出2字节(IO0输出低4位,IO3输出高4位)
- 连续输出直到CS#拉高
QREAD 时序图
5.2 4I/O Read (4READ, EBH)
4READ指令在Quad Read基础上进一步优化:指令码和地址也通过4线并行发送,进一步提升读取速度。
时序过程:
- CS# 拉低
- IO3/IO2/IO1/IO0 四线并行发送 0xEB (指令码)
- IO3/IO2/IO1/IO0 四线发送 3字节地址(24位,6个时钟周期)
- 插入6或10个空周期(取决于M7-M0配置)
- IO3/IO2/IO1/IO0 四线同时输出数据
- CS# 拉高,停止读取
Mode Reset (M7-M0) 配置:
如果 I/O M7-0 = 0XH (AXH),则地址后插入6个空周期;如果 I/O M7-0 = AXH,则插入10个空周期。该值用于4READ连续读取模式的自动切换。
4READ连续读取模式: 4READ支持连续读取模式,当上一次4READ完成后,再次发送地址(省略指令码)即可继续在相同模式下读取,大幅减少指令开销。
4READ 时序图
5.3 Quad Page Program (QPP, 32H)
QPP指令通过四线并行方式写入数据,写入速度是标准Page Program的4倍。写入前必须先执行WREN指令,并确保WEL和QE位都置为1。
时序过程:
- 执行WREN指令
- CS# 拉低
- IO0 发送 0x32 (指令码)
- IO0 发送 3字节地址(SI,单线)
- IO3/IO2/IO1/IO0 四线并行发送写入数据(每时钟4位)
- CS# 拉高,开始内部编程
写入限制:
- 每页最多256字节
- 地址跨页回卷(与PP相同)
- QPP频率 f_QPP 取决于芯片配置
QPP 时序图
5.4 Quad SPI操作要点
| 项目 | 说明 |
|---|---|
| Quad Enable (QE) | 使用Quad指令前必须置1 |
| QE置位方式 | 通过状态寄存器写入配置 |
| 时钟频率 | 最高 45MHz (D.C.) |
| 数据宽度 | 4线并行,每时钟4位 |
| 兼容性 | Quad SPI向下兼容标准SPI |
Quad SPI引脚映射:
| 标准SPI | Quad SPI | 说明 |
|---|---|---|
| SI | IO0 | 双向数据线0 |
| SO | IO1 | 双向数据线1 |
| WP# | IO2 | 双向数据线2 |
| HOLD# | IO3 | 双向数据线3 |
| CS# | CS# | 片选(不变) |
| SCLK | SCLK | 时钟(不变) |


