高通字库
版本 V1.1 · 更新于 2026-03

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位数据。

时序过程:

  1. CS# 拉低
  2. IO0 发送 0x6B (指令码)
  3. IO0 发送 3字节地址(SI,单线)
  4. 插入8个空周期
  5. IO3/IO2/IO1/IO0 四线同时输出数据(每时钟4位)
  6. CS# 拉高,停止读取

数据输出顺序:

  • 每4个时钟周期输出2字节(IO0输出低4位,IO3输出高4位)
  • 连续输出直到CS#拉高

QREAD 时序图QREAD 时序图

5.2 4I/O Read (4READ, EBH)

4READ指令在Quad Read基础上进一步优化:指令码和地址也通过4线并行发送,进一步提升读取速度。

时序过程:

  1. CS# 拉低
  2. IO3/IO2/IO1/IO0 四线并行发送 0xEB (指令码)
  3. IO3/IO2/IO1/IO0 四线发送 3字节地址(24位,6个时钟周期)
  4. 插入6或10个空周期(取决于M7-M0配置)
  5. IO3/IO2/IO1/IO0 四线同时输出数据
  6. CS# 拉高,停止读取

Mode Reset (M7-M0) 配置:

如果 I/O M7-0 = 0XH (AXH),则地址后插入6个空周期;如果 I/O M7-0 = AXH,则插入10个空周期。该值用于4READ连续读取模式的自动切换。

4READ连续读取模式: 4READ支持连续读取模式,当上一次4READ完成后,再次发送地址(省略指令码)即可继续在相同模式下读取,大幅减少指令开销。

4READ 时序图4READ 时序图

5.3 Quad Page Program (QPP, 32H)

QPP指令通过四线并行方式写入数据,写入速度是标准Page Program的4倍。写入前必须先执行WREN指令,并确保WEL和QE位都置为1。

时序过程:

  1. 执行WREN指令
  2. CS# 拉低
  3. IO0 发送 0x32 (指令码)
  4. IO0 发送 3字节地址(SI,单线)
  5. IO3/IO2/IO1/IO0 四线并行发送写入数据(每时钟4位)
  6. CS# 拉高,开始内部编程

写入限制:

  • 每页最多256字节
  • 地址跨页回卷(与PP相同)
  • QPP频率 f_QPP 取决于芯片配置

QPP 时序图QPP 时序图

5.4 Quad SPI操作要点

项目说明
Quad Enable (QE)使用Quad指令前必须置1
QE置位方式通过状态寄存器写入配置
时钟频率最高 45MHz (D.C.)
数据宽度4线并行,每时钟4位
兼容性Quad SPI向下兼容标准SPI

Quad SPI引脚映射:

标准SPIQuad SPI说明
SIIO0双向数据线0
SOIO1双向数据线1
WP#IO2双向数据线2
HOLD#IO3双向数据线3
CS#CS#片选(不变)
SCLKSCLK时钟(不变)