只读分享解决方案文档原理方案设计📅 2026-09-23🔖 Rev 1.0⏳ 29天有效(至 2026-10-31)
🔧解决方案&应用市场分析 -> 原理方案设计 -> 串行总线系列产品方案 -> PSRAM_电路设计指南
生成时间 2026-09-23 14:48:08 有效期至 2026-10-31 23:59:59(29天有效(至 2026-10-31))
同系列 · 原理方案设计

PSRAM 伪静态随机存储器 电路设计指南

Pseudo Static RAM · SPI / Quad / OPI x8 DDR · HyperBus HyperRAM · 并行 ADMUX CellularRAM · 自刷新与延迟设计 | 编制日期 2026-09-23 | 版本号 Rev 1.0

0 · 文档说明

适用范围

  • 本文针对伪静态随机存储器(PSRAM)的硬件电路设计,覆盖 4 Mb ~ 512 Mb 常见容量段,接口含 SPI / Quad SPI、OPI x8 DDR、HyperBus(HyperRAM)、并行 ADMUX(CellularRAM 类)。
  • 适用对象:MCU / SoC / FPGA 的外扩 RAM,用于 XIP 代码执行、GUI 帧缓存、音频缓冲、AI 模型权重缓存、协议栈与网络缓冲、日志环形缓冲等。
  • 内容包含:选型对比、封装引脚、电气参数、四类接口的协议与命令、延迟与刷新机制、电源与低功耗、典型电路(内联原理图)、200 MHz DDR 级 Layout、SI 与端接、可靠性、生产、排查与检查清单。
  • 不包含:控制器驱动实现、Cache 一致性策略、内存分配算法。所有寄存器位定义、命令字与时序数值一律以目标型号 datasheet 为准,本文给出的是工程范围值与设计方法。

本系列其他文档

文档器件类型关注重点
SPI NOR 电路设计指南串行 NOR FlashQuad/QPI 提速、dummy cycles、XIP、DPD 低功耗
SPI NAND 电路设计指南串行 NAND Flash页/块管理、片内 ECC、坏块表、主机 FTL
并行NAND (PPI NAND) 电路设计指南8/16 位并行 NAND宽总线时序、ECC 引擎、40+ 引脚 Layout
eMMC 电路设计指南eMMC 5.0/5.1HS200/HS400、1.8 V VCCQ、DS 选通与等长
SD NAND 电路设计指南贴片式 SD NANDSPI/SDIO 双模式、无休眠指令、VCC 负载开关断电
NAND MCP 电路设计指南多芯片合封存储多 die 与多 CE、双电源轨、HDI 扇出
并行NOR (PPI NOR) 电路设计指南并行 NOR Flash异步读时序、XIP、等待周期、总线扩展
PSRAM 电路设计指南 本文伪静态 RAMOPI/HyperBus、刷新与延迟周期、XIP 与帧缓存
DDR2 电路设计指南DDR2 SDRAMSSTL_18、T 分支拓扑、VTT 端接、ODT
DDR3 电路设计指南DDR3 / DDR3LFly-by 拓扑、write leveling、动态 ODT
DDR4 电路设计指南DDR4 SDRAMPOD12、bank group、DBI、2D 训练
DDR5 电路设计指南DDR5 SDRAM双子通道、On-DIMM PMIC、DFE、同帧 ECC
EEPROM 电路设计指南EEPROMI²C/SPI 接口、上拉电阻与总线电容、页写与写保护
快速决策:什么时候该选 PSRAM

需要 MB 级易失 RAM(1 MB ~ 128 MB)、引脚数极少、单价低、且不想接 SDRAM 控制器 → PSRAM。需要 < 1 MB 且要极低延迟 / 无限次写 → 片内 SRAM 或外挂并行 SRAM。需要 GB 级、GHz 级带宽、且主控有 DDR 控制器 → DDR3 / DDR4。需要 掉电保存代码 → SPI NOR / eMMC(PSRAM 掉电即丢数据)。
PSRAM 的长板是单元面积小、每 MB 成本低、引脚少、内部自带刷新而无需主机管理;短板是读延迟高于 SRAM、必须周期性释放 CS# 供内部刷新、高温下刷新开销翻倍。

三个最常见的翻车点

① 把它当 SRAM 用:CS# 长时间拉低(超过 tCEM,典型 4 µs)会阻断内部刷新,高温下直接丢数据;长事务必须分片。
② 把它当 SPI NOR 用:SOP-8 封装下两者引脚高度重合,贴错料后 ID 读不出来、电压还可能不匹配,必须做防呆。
③ 把 200 MHz DDR 当 50 MHz SPI 走线:OPI / HyperBus 的 DQ 组等长与 CK 差分对不控,表现为高温、低压下偶发校验错或死机。

1 · 器件基础

1.1 定位与选型对比

工作原理:DRAM 内核 + 片内自刷新控制器 + SRAM 兼容接口

PSRAM 的存储内核是 DRAM(1T1C:一个选择晶体管 + 一个存储电容),单元面积约为 SRAM(6T)的 1/4 ~ 1/6,因此每 MB 成本远低于 SRAM;同时芯片内部集成了刷新控制器、地址锁存器、刷新仲裁器与时序发生器,对外呈现的是 SRAM 风格的接口。主机只需给出地址和读/写命令,不需要像 SDRAM 那样发 ACTIVE / PRECHARGE / REFRESH,也不用管理行地址复用与 Bank。"伪静态(Pseudo Static)"正是指"外表静态、内核动态"。

  • 自刷新是"透明"的,但不是"免费"的:内部刷新要占用阵列周期,主机在刷新窗口内访问会被拉长(表现为可变延迟、RWDS 拉高),且主机必须周期性释放 CS#(见 5.3)。
  • 数据易失:掉电即失;部分型号在 Deep Power-Down 模式下不保证数据保持,唤醒后需重新初始化并重载数据(以 datasheet 为准)。
  • 无擦写寿命限制:DRAM 单元没有 P/E 次数概念,可无限次随机写,不需要 ECC、坏块表、磨损均衡,软件模型与 SRAM 基本一致。
  • 密度/成本定位:介于 SRAM 与 DRAM 之间——比 SRAM 便宜、密度高;比 DDR 慢、容量小、但接口简单得多。

与同类存储器的横向对比

对比项PSRAM(本文)异步 SRAMSDRAM / DDRHyperRAMSPI NOR Flash
存储单元1T1C DRAM6T SRAM1T1C DRAM1T1C DRAM浮栅 NOR
常见容量4 Mb ~ 512 Mb
(512 KB ~ 64 MB)
256 Kb ~ 64 Mb256 Mb ~ 32 Gb32 Mb ~ 512 Mb512 Kb ~ 2 Gb
系统常见配置8 MB / 32 MB / 64 MB / 128 MB≤ 8 MB512 MB ~ 8 GB8 MB / 16 MB / 32 MB / 64 MB4 MB ~ 32 MB
接口SPI / Quad / OPI / HyperBus / 并行 ADMUX并行,地址数据分离并行 + 命令总线HyperBus x8 DDRSPI 1/2/4 线
主机引脚数6 ~ 1330 ~ 5060 ~ 120(含地址)12 ~ 134 ~ 6
首字节读延迟60 ~ 200 ns10 ~ 70 ns80 ~ 150 ns(含行激活)80 ~ 200 ns60 ~ 120 ns
持续带宽50 ~ 400 MB/s20 ~ 200 MB/s1.6 ~ 51 GB/s200 ~ 400 MB/s6 ~ 104 MB/s
主机需管理刷新否(片内自刷新)否是否—
主机需管理 ECC / 坏块否否部分需 ECC否NOR 不需要 / NAND 需要
写操作直接写,无擦除直接写直接写直接写先擦后写,ms 级
掉电数据丢失丢失丢失丢失保持
待机电流(1.8 V)20 ~ 300 µA5 ~ 50 µAmA 级(自刷新)20 ~ 200 µA1 ~ 10 µA
每 MB 成本低高最低低中
典型用途MCU 外扩 RAM、帧缓存、XIP、AI 权重高速缓存、小量暂存系统主存高带宽外扩 RAM启动代码、字库、参数
一句话选型结论

主控没有 DDR 控制器(Cortex-M 系列 MCU、多数 IoT SoC、FPGA 软核)却需要 1 MB 以上 RAM 时,PSRAM 是唯一能同时兼顾引脚数、带宽与成本的选择。若主控带 OPI / HyperBus 专用控制器且有 Cache,优先走 OPI / HyperBus 做 memory-mapped XIP;若只有普通 QSPI 控制器,则走 Quad SPI,接受 ~50 MB/s 的带宽上限;若只需几百 KB 且要求确定性延迟,回到片内 SRAM。

主要厂商与型号

厂商典型系列 / 型号接口电压备注
AP Memory 爱普APS1604 / APS6404(Quad SPI)
APS6408 / APS12808 / APS256XX(OPI x8 DDR)
Quad SPI / OPI DDR1.8 V / 3.0 VIoT 领域出货量最大,SOP-8 与 WSON-8 为主流封装,被大量 MCU 平台原生支持
Infineon(原 Cypress)S27KS0641 / S27KS1281 / S27KS2561(1.8 V)
S27KL0642 / S27KL1282(3.0 V)
HyperBus x8 DDR1.8 V / 3.0 VHyperRAM 规范定义者,寄存器定义最完整,BGA-24 为主
ISSI 芯成IS66WVS(Quad SPI)
IS66WVO(OPI)
IS66WV(并行)
Quad SPI / OPI / 并行1.8 V / 3.0 V车规与工规型号齐全,支持 −40 ~ +105 °C
Winbond 华邦W956 系列 HyperRAM
OPI / Quad PSRAM 系列
HyperBus / OPI / Quad1.8 V / 3.0 V与自家 NOR Flash 生态配套,常见 MCU + NOR + RAM 套片
Micron 美光CellularRAM MT45W 系列
(如 MT45W8MW16)
并行 ADMUX(异步 / 页 / 突发)1.8 V / 3.0 V并行 PSRAM 的事实标准,BGA-48,老平台与 FPGA 常用
GigaDevice 兆易创新SPI / OPI PSRAM 系列Quad SPI / OPI1.8 V / 3.0 V与自家 GD25 NOR 组成套片方案
ESMT 晶豪SPI / 并行 PSRAMSPI / 并行 ADMUX1.8 V / 3.0 V成本导向,工控与消费类常见
Dosilicon 东芯SPI / OPI PSRAMQuad / OPI1.8 V / 3.0 V国产替代,可与主流型号做 pin-to-pin 评估
Fudan Micro 复旦微SPI / 并行 PSRAMSPI / 并行1.8 V / 3.0 V / 宽压国产替代,部分型号支持宽压与高低温
型号命名与容量不要靠猜

同一厂商不同代次的命名规则可能变化(例如 AP Memory 中 APS6404 与 APS6408 的数字后缀分别对应 Quad 与 Octal 接口,APS256XX 表示 256 Mb 级 OPI 家族),容量、位宽、最高频率、封装与电压全部以后缀码 + datasheet 为准。选型评审时建议把「型号全称 + 封装代码 + 温度等级代码 + datasheet 版本号」四项写进 BOM,并在原理图符号里标注。

1.2 封装与引脚定义

PSRAM 有三种物理形态,对应三种完全不同的系统设计复杂度:串行 8 脚(最易用,Quad 接口)、BGA-24(HyperBus,带宽最高)、BGA-48(并行 ADMUX,引脚最多,仅用于老平台或 FPGA)。

PSRAM 三种形态封装引脚图 左侧为 SPI/Quad PSRAM 的 SOP-8/WSON-8 顶视图;中间为 HyperRAM 的 24 球 BGA 球位图;右侧为并行 ADMUX PSRAM 的 48 球 BGA 信号分组图。 ① SPI / Quad PSRAM · SOP-8 / WSON-8 SPI PSRAM SOP-8 / WSON-8 顶视 4 Mb ~ 128 Mb Pin 1 CS# SIO1 SIO2 VDD SIO0 SCK VSS SIO3 共 8 脚:4×数据 + CS# + SCK + VDD + VSS Quad 模式 4 位双向,约 104 ~ 133 MHz 无 RESET# / RWDS,靠命令软复位 ② HyperRAM · 24-ball BGA(6 × 4) VSSQ DQ4 VDDQ DQ5 VSS NC VDD INT# DQ7 RWDS DQ6 RST# DQ2 CS# DQ3 CK# VSSQ CK DQ0 VDDQ DQ1 NC VDD VSS 6 × 4 阵列 / 0.8 mm 球距 / 约 5 × 6 mm DQ0-7 + RWDS + CK/CK# + CS# + RESET# + INT# 球位为示意,建库须核对 datasheet Ball Map ③ 并行 ADMUX PSRAM · BGA-48 地址 / 数据复用 · 8 × 6 阵列 ADQ[15:0] 复用地址/数据 低 16 位地址与 16 位数据分时复用 A[22:16] 高位地址 CE# OE# WE# 片选 / 读 / 写 ADV# CLK 地址有效 / 突发时钟 UB# LB# WAIT 字节掩码 / 等待 CRE ZZ# VDD / VSS / VDDQ 有效引脚 30 ~ 40 根 + 电源地,Layout 最重 异步 / 页 / 突发三种模式,须配 FSMC 类控制器
图 1-1 PSRAM 三种形态的封装与引脚/球位示意(SOP-8 / WSON-8、BGA-24、BGA-48;球位排布为示意,建库须核对目标 datasheet)

封装与机械参数

封装典型本体尺寸引脚/球距特点与适用焊接/检测
SOP-8(150 mil)约 3.9 × 4.9 mm1.27 mm最常用,手焊返修友好,样机首选;与 SPI NOR 完全同封装,防呆风险最高AOI + 目视
WSON-8 / USON-86 × 5 mm / 4 × 4 mm / 3 × 2 mm1.27 mm底面散热焊盘,厚度低,适合穿戴与小型模组AOI + X-Ray 抽检
WLCSP(部分小容量)约 2.5 × 3 mm0.4 ~ 0.5 mm极小体积,需 HDI 板与激光盲孔X-Ray 必检
BGA-24(HyperBus)约 5 × 6 mm0.8 mm12 根有效信号,带宽最高;需 4 层以上板与 BGA 扇出X-Ray 必检
BGA-48(并行 ADMUX)约 6 × 8 mm0.75 mm引脚最多,多用于 FPGA / 老平台替换X-Ray 必检
TSOP-44 / 48(并行)约 12 × 18 mm0.8 mm老式并行 PSRAM,占板面积大,已逐步淘汰AOI
建库必读:引脚定义各厂商/各形态均不相同

上图球位为示意性排布,不可直接用于建库。实际差异至少包括:
· SPI/Quad 8 脚型号中,部分厂商把第 3 脚定义为 SIO2,也有把第 3/7 脚做成 NC 或 RESET# 的(Quad 模式下无剩余脚位时只能靠命令软复位);
· HyperRAM 的 NC 球位置、INT# 是否存在、VDDQ 与 VDD 是否可在外部短接,各厂不同;部分型号 NC 脚必须悬空,接地会导致异常电流;
· 并行 ADMUX 的地址位宽(A[22:16] 还是 A[20:16])、字节掩码脚名(UB#/LB# 或 BHE#/BLE#)、WAIT 极性,各厂不同。
规则:每个新型号必须逐脚核对目标 datasheet 的 Pin/Ball Configuration 章节,并在原理图符号属性中写入型号全称、封装代码与文档版本号。

关键引脚说明(按接口分类)

信号适用接口方向说明与设计要求
CS#(CE#)全部输入片选,低有效。必须 10 kΩ 上拉到 VDDQ,保证上电与主控 IO 未初始化期间不被误选中;同时承担"刷新窗口"职责(见 5.3)
SCK / CK CK#SPI / OPI / HyperBus输入时钟。SPI 为单端;OPI/HyperBus 多为差分 CK/CK#(部分 OPI 为单端)。禁止上拉/下拉;空闲应停在确定电平(通常 CK 低)
SIO0..3 / DQ0..7SPI/Quad / OPI / HyperBus双向数据总线。DDR 模式下每时钟传 2 个数据。组内必须等长(见 6.4)
RWDS(DQS / DM)HyperBus / OPI双向读写数据选通。读时由 PSRAM 输出随路选通;延迟期间被驱动,用于指示可变延迟与刷新。必须 10 kΩ 上拉或下拉(按 datasheet)避免浮空
RESET#HyperBus / 部分 OPI / 并行输入硬件复位,低有效。建议 10 kΩ 上拉 + 100 nF 对地(复位端可加 RC),并由 GPIO 或复位芯片驱动;未使用时不得悬空
INT#HyperBus(部分型号)输出中断/事件指示,开漏,需 10 kΩ 上拉;不用时可悬空(按 datasheet)
VDD全部电源内核电源(阵列与逻辑)。1.8 V 或 3.0 V,见 3.1
VDDQOPI / HyperBus / 并行电源IO 电源。与主控 IO 电平必须一致;部分型号允许与 VDD 外部短接,部分要求独立(以 datasheet 为准)
VSS / VSSQ全部地地,短粗走线直连地平面;BGA 下建议每个地球独立过孔
ADV#(地址有效)并行 ADMUX输入地址锁存指示,下降沿锁存复用地址
WAIT并行 ADMUX输出突发模式下插入等待周期,需主控支持;上拉
ZZ#并行 ADMUX输入休眠/掉电模式使能;建议由 GPIO 控制并带上拉
CRE并行 ADMUX输入配置寄存器使能(总线配置寄存器访问)

1.3 关键电气参数

下表为工程常用范围值,用于前期方案评估与原理图设计;正式设计必须以目标型号 datasheet 的 Electrical Characteristics 与 AC Timing 表为准。

参数典型范围 / 值说明与设计影响
容量4 Mb ~ 512 Mb(512 KB ~ 64 MB)
系统常见 8 / 32 / 64 / 128 MB
更大容量需多 die、MCP 或多片并联实现
内核电源电压 VDD1.8 V(1.70 ~ 1.95 V)为主流
3.0 V(2.70 ~ 3.60 V)
部分宽压 1.7 ~ 3.6 V
决定 LDO/PMIC 选型与容差;1.8 V 型号不可直接接 3.3 V
IO 电源电压 VDDQ1.8 V / 3.0 V,部分支持 1.2 V必须与主控 IO 电平一致;与 VDD 可分离或合并(按型号)
最高时钟频率SPI/Quad:104 ~ 133 MHz
OPI DDR:166 ~ 200 MHz
HyperBus DDR:166 ~ 200 MHz
并行突发:66 ~ 133 MHz
频率越高,Layout 等长与端接要求越严;超过 133 MHz 必须按 DDR 级处理
峰值带宽Quad SPI DDR@133 MHz:133 MB/s
OPI x8 DDR@200 MHz:400 MB/s
HyperBus x8 DDR@166 MHz:332 MB/s
理论值,实际有效带宽见 2.6 与 5.5
初始读延迟(latency)固定 3 ~ 7 个 CK;可变模式 +1 ~ +2 CK延迟周期数 × 时钟周期 = 首字节延迟,直接影响 XIP 命中率
页 / 突发长度页 512 B / 1 KB / 2 KB;突发 16 / 32 / 64 / 128 B,可配置为包封或线性突发越长,命令开销占比越低,有效带宽越高
最大 CS# 低电平时间 tCEM典型 4 µs(部分型号 5 µs)硬约束超时会阻断内部刷新导致数据丢失
最小 CS# 高电平时间 tCPH15 ~ 22 ns两次事务之间必须满足,刷新窗口也在此区间
刷新机制片内自刷新;高温(> 85 °C)刷新率加倍主机需周期性释放 CS#(见 5.3)
工作电流(读 @200 MHz)15 ~ 40 mA(1.8 V)决定电源轨电流预算与去耦
待机 / 休眠电流Standby 100 ~ 300 µA
Deep Sleep 20 ~ 80 µA
DPD 1 ~ 10 µA
电池产品的主要优化对象
输入高/低电平(1.8 V)VIH ≥ 0.8×VDDQ,VIL ≤ 0.2×VDDQ与主控 IO 的 VIL/VIH 需交叉校验裕量
输出驱动强度可配 20 / 33 / 50 / 100 Ω 等(寄存器配置)驱动过强引起过冲与 EMI,过弱导致边沿缓慢;见第 7 章
ESD 等级HBM ±2 ~ ±4 kV;CDM ±500 V ~ ±1 kV见第 8 章;BGA 封装 CDM 风险更需关注
工作温度商规 0 ~ +70 °C
工规 −40 ~ +85 °C
车规/宽温 −40 ~ +105 °C
高温档刷新率加倍,需在控制器配置中体现
数据保持在规定刷新条件下无限保持;掉电即失与 EEPROM/Flash 的本质区别
1.8 V 与 3.0 V 型号不要混用同一 BOM 位号

同封装、同容量的 PSRAM 常有 1.8 V 与 3.0 V 两个版本(例如 AP Memory 的 -3SQR 与 -1SQR、Infineon 的 KL 与 KS 前缀)。若 BOM 只写"64 Mb PSRAM"而不写电压代码,采购可能买到 3.0 V 版本并直接烧毁 1.8 V 主控 IO。建议在原理图符号旁用文字标注"VDD=1.8 V ONLY",并在 BOM 中把电压代码写进型号字段。

2 · 接口与协议

2.1 四类接口对比

接口SPI / Quad SPIOPI(x8 DDR)HyperBus(HyperRAM)并行 ADMUX
数据位宽1 / 2 / 48(DDR)8(DDR)8 / 16
时钟单端 SCK单端 CK 或差分 CK/CK#差分 CK / CK#异步无时钟 / 突发模式 CLK
最高频率104 ~ 133 MHz166 ~ 200 MHz DDR166 ~ 200 MHz DDR突发 66 ~ 133 MHz
峰值带宽52 ~ 133 MB/s~400 MB/s332 ~ 400 MB/s100 ~ 266 MB/s
有效信号数6(CS# SCK SIO0-3)11 ~ 12(+RWDS,+CK#,+RESET#)12 ~ 13(+INT# +RESET#)30 ~ 40
命令/地址传输串行,8 bit/周期8 bit/边沿(DDR)48 bit CA,8 bit/边沿地址与数据复用 ADQ
事务开销命令 1 B + 地址 3 B + dummy命令 1~2 CK + 地址 4 CK固定 6 字节 CA(3 CK DDR)地址锁存 1~2 周期
延迟可配置dummy cycles(读)/ 无(写)模式寄存器配置延迟周期CR0 配置初始延迟 3~7 CK固定等待状态数
选通信号无(主机用 SCK 采样)RWDS / DQSRWDS(兼延迟与刷新指示)无 / WAIT
主机 IP 要求普通 QSPI 控制器即可OPI 专用控制器(多含 Cache/MMU)HyperBus 控制器FSMC / EBI / 外部总线接口
Layout 难度低高(DDR 级)高(DDR 级)中(走线多)
典型型号APS6404、IS66WVSAPS6408 / APS12808 / APS256XXS27KS0641、W956MT45W8MW16

2.2 SPI / Quad PSRAM 命令集与初始化

Quad SPI PSRAM 的软件模型与 SPI NOR 高度相似(命令 + 地址 + 数据),但没有状态寄存器的忙标志,也没有擦除/编程等待——写操作是立即完成的,软件上不需要轮询"忙",这一点是新工程师最容易惯性犯错的地方(照抄 NOR 的 wait_busy() 会死等)。

常用命令表

命令字名称地址/空周期说明
0x9FRead ID / JEDEC ID0 B 地址 + 0 dummy读出厂商 ID、密度码、KGD、EID;上电自检与防呆的第一道关
0x03Read(低速)3 B 地址单线读,无 dummy,速率受限(常见 ≤ 33 MHz),用于极低速率与调试
0x0BFast Read3 B 地址 + 8 dummy单线读,带空周期,可到标称最高频率
0xEBQuad I/O Fast Read3 B 地址 + 模式字节 + dummy主力读命令;地址与数据均走 4 线;dummy 数随频率变化(常见 4~8)
0x38Quad Write3 B 地址主力写命令;地址与数据均走 4 线;无 dummy
0x02Write / Page Program3 B 地址单线写,部分型号称为线性突发写
0x35Enter Quad Mode无进入 QPI/Quad 模式;部分型号无需此命令,靠 0xEB 自动进入
0xF5Exit Quad Mode无退出 Quad,回到单线 SPI;用于兼容启动与救砖
0x66 / 0x99Reset Enable / Reset无软复位序列,8 脚封装无 RESET# 时的唯一复位手段
模式寄存器读/写各厂不同—配置突发长度、驱动强度、延迟、休眠;命令字与位定义必须查 datasheet
与 SPI NOR 的三个关键差异

① 没有"忙"状态:PSRAM 写完即完成,不需要轮询状态寄存器,也不存在页编程超时。
② 没有扇区/块擦除:任意地址可直接覆盖写,最小写粒度为字节(受总线宽度影响)。
③ 没有写使能(WREN)概念:多数 PSRAM 不需要每次写前发 0x06;若驱动里残留了 NOR 的 WREN 逻辑,会被 PSRAM 当成未知命令而忽略或进入异常状态。

初始化序列(伪代码)

/* ===== Quad SPI PSRAM 初始化序列(命令字以目标 datasheet 为准) ===== */
  1) 上电
     VDD / VDDQ 单调上升至容差范围内;
     CS# 由外部 10 kΩ 上拉保持高电平;
     延时 tPU(VDD 稳定 → 首次访问,典型 150 ~ 500 µs)。

  2) 软复位(8 脚封装无 RESET# 时)
     CS#↓  → 发 0x66 →  CS#↑        /* Reset Enable  */
     CS#↓  → 发 0x99 →  CS#↑        /* Reset Memory  */
     延时 tRST(典型 10 ~ 200 µs,以 datasheet 为准)。

  3) 读 ID 并校验(防呆关键步骤)
     CS#↓ → 发 0x9F → 读 3 ~ 8 字节 → CS#↑
     校验:MF ID 是否等于期望厂商(如 AP Memory 0x5D);
           密度码是否等于 BOM 型号对应密度;
           不一致 → 记录错误码、禁止进入 memory-mapped,并打印 ID。

  4) 进入 Quad 模式
     CS#↓ → 发 0x35 → CS#↑

  5) 配置模式寄存器
     突发长度(16 / 32 / 64 / 128 B,包封或线性);
     读延迟 / dummy cycles(按目标频率,见 5.4);
     驱动强度(默认中间档,见第 7 章)。

  6) 提速
     SCK 切到目标频率(如 104 MHz)→ 重新按频率配置 dummy cycles。

  7) 自检(建议量产必做)
     末地址写 0xAA55AA55 / 0x55AA55AA / 0x00000000 / 0xFFFFFFFF 回读比较;
     再按 1 KB 步进做地址行走位(walking 1)抽检;
     全片读写校验耗时较长,可只在研发与首件执行。

2.3 OPI x8 DDR 事务结构

OPI(Octal Peripheral Interface)把命令、地址、数据全部放到 8 条 DQ 线上,并在时钟的上升沿与下降沿都传数据(DDR)。200 MHz × 2 边沿 × 8 bit = 3.2 Gbps = 400 MB/s 理论峰值,是目前 MCU 外扩 PSRAM 的主流高速方案。

阶段占用时钟(典型)内容设计要点
命令1 ~ 2 CK命令字节(读/写/寄存器/复位)命令字由厂商定义,量产前必须对照 datasheet 核对
地址2 ~ 4 CK24 位或 32 位行/列地址32 位地址型号需确认控制器地址模式配置
延迟周期(Latency)6 ~ 8 CK器件内部取数频率越高所需延迟周期越多(见 5.4)
总线转向(写事务)0 ~ 2 CKDQ 由主机驱动切到器件驱动转向周期不足会出现首字节冲突
数据突发长度 / 2 CK64 B 突发 = 32 CK;128 B = 64 CK突发越长效率越高(见 2.6)
片选恢复tCPH ≥ 15 ~ 22 nsCS# 拉高必须周期性释放,保证刷新窗口
/* ===== OPI PSRAM 读事务的时间构成(示例:200 MHz DDR,突发 64 B) ===== */
  tCK        = 1 / 200 MHz = 5.00 ns
  N_cmd      = 2 CK      /* 命令                     */
  N_addr     = 4 CK      /* 32 位地址,8 bit/边沿     */
  N_latency  = 8 CK      /* 由模式寄存器按频率配置     */
  N_turn     = 1 CK      /* 总线转向                  */
  N_data     = 32 CK     /* 64 B / (2 B per CK)       */
  ─────────────────────────────────────────────────
  N_total    = 47 CK = 235 ns
  有效带宽   = 64 B / 235 ns ≈ 272 MB/s   (峰值利用率 68 %)

/* ===== OPI 初始化要点 ===== */
  1) 多数 OPI PSRAM 上电后默认处于 SPI/Quad 单线模式,
     必须先以低速 SPI 完成识别与模式寄存器配置,再切到 OPI x8 DDR。
  2) 切换命令与切换后的首条命令之间要留足 tCPH,且切换后
     第一次访问建议用低速(≤ 50 MHz)验证读写正常再提速。
  3) 控制器侧需同时配置:CK 差分/单端、延迟周期数、突发类型、
     RWDS 采样沿、驱动强度、采样时钟相位(多数需做 read strobe 训练)。
OPI/HyperBus 必须做读选通训练(Read Strobe Training)

200 MHz DDR 下每 bit 窗口只有 5 ns,扣除器件输出抖动、PCB 传播延迟、控制器采样不确定性后,实际采样窗口往往只剩 1.5 ~ 2.5 ns。因此控制器通常提供 DQS/RWDS 延迟链(delay line)与读训练流程(发送已知 pattern,扫描延迟档位找窗口中心)。训练必须在每个板型、每批器件、全温度范围内验证,不能只跑常温。

2.4 HyperBus / HyperRAM 协议

HyperBus 用 48 位命令-地址包(CA)在 DQ[7:0] 上以 DDR 方式传输(6 字节 / 3 个 CK),随后是可配置的初始延迟,再进入数据阶段;RWDS 是双向选通,同时承担延迟扩展与刷新指示。

CA(Command-Address)位定义

位域名称取值说明
CA[47]R/W#1 = 读,0 = 写决定事务方向
CA[46]寄存器/存储器选择(AS)1 = 寄存器空间,0 = 存储器空间访问 CR0/CR1/IDR 时置 1
CA[45]突发类型(Burst Type)1 = 线性,0 = 包封(Wrapped)Cache 行填充分推荐包封;大数据块搬运用线性
CA[44]保留0部分型号用于扩展地址
CA[43:16]行地址 + 列地址高位—寄存器访问时,寄存器地址也放在该位域(如 CR0 = 0x000800)
CA[15:3]保留0必须写 0,否则行为未定义
CA[2:0]列地址低位—决定突发起始列,包封模式下用于行内回绕

寄存器空间(地址与位定义以 datasheet 为准)

寄存器地址名称主要内容
0x000000IDR0 识别寄存器 0器件类型、密度、行/列地址位数
0x000001IDR1 识别寄存器 1厂商 ID、版本、特性位
0x000800CR0 配置寄存器 0初始延迟(Initial Latency)、固定/可变延迟选择、驱动强度、深度休眠使能
0x000801CR1 配置寄存器 1刷新配置(温度补偿刷新 TCSR)、阵列刷新范围、混合/半休眠使能
/* ===== HyperBus 寄存器读(以读 CR0 @ 0x000800 为例,位域以 datasheet 为准) ===== */
  uint64_t ca = 0;
  ca |= (1ULL << 47);                              /* R/W#  = 1 : 读           */
  ca |= (1ULL << 46);                              /* AS    = 1 : 寄存器空间    */
  ca |= (1ULL << 45);                              /* Burst = 1 : 线性突发      */
  ca |= ((uint64_t)(0x000800ULL & 0xFFFFFF) << 16); /* 寄存器地址 → CA[39:16]   */
  /* CA[15:3] 保留写 0;CA[2:0] 保留写 0 */
  发送 6 字节 CA(DDR,8 bit/边沿,3 个 CK)→ 等待初始延迟 → 读 2 字节数据

/* ===== HyperBus 初始化序列 ===== */
  1) 上电:VDD / VDDQ 单调上升;RESET# 保持低 ≥ tRST(10 ~ 200 µs)
     → 释放 RESET# → 等待 tPU(150 ~ 500 µs);CS# 全程由上拉保持高。
  2) 读 IDR0 / IDR1,校验厂商 ID 与密度码。
  3) 写 CR0:初始延迟按目标频率选取(见 5.4 表);
             选择固定延迟(时序确定,推荐)或可变延迟(性能略高、时序可变);
             配置驱动强度(默认中档)与输出压摆率。
  4) 写 CR1:使能温度补偿刷新(TCSR),配置阵列刷新范围(全阵列 / 半阵列)。
  5) 读回 CR0 / CR1 校验写入生效(回读不一致 → 判定焊接或电源异常)。
  6) 切换到目标时钟频率,执行读选通训练,然后开始正常访问。

2.5 延迟周期、RWDS 与刷新指示

HyperBus / OPI 读时序波形图 展示 CK/CK# 差分时钟、CS# 片选、DQ 总线上的命令地址阶段、延迟周期阶段与数据阶段,以及 RWDS 在延迟期间的刷新/附加延迟指示与数据阶段的选通波形。 HyperBus / OPI 读事务时序(固定延迟 6 CK + 线性突发,示意) CK / CK# CS# DQ[7:0] RWDS 上拉保持高 命令 + 地址 DDR 8 bit/边沿 · 6 CK 初始延迟周期 Latency 6 CK(CR0 可配 3 ~ 7) 数据输出 8 B / 4 CK(2 B 每 CK) D0D1 D2D3 D4D5 D6D7 Hi-Z(总线释放,CS# 已拉高) 延迟期由器件驱动 数据选通(随路时钟) CS#↓ CS#↑(tCPH ≥ 15 ~ 22 ns) 延迟 = 6 × tCK(200 MHz 时 = 30 ns) CS# 最大低电平时间 tCEM ≤ 4 µs(超出将阻断内部刷新) ① 固定延迟:延迟周期数固定,主机按配置值采样,时序确定,推荐优先使用。 ② 可变延迟:器件在延迟末尾用 RWDS 指示是否追加 1 个周期(内部刷新冲突时),主机必须支持 RWDS 采样才能启用。 ③ 线性突发可跨行连续读;包封突发在突发长度边界回绕,适合 Cache 行填充与帧缓冲行读取。
图 2-1 HyperBus / OPI 读事务时序:命令地址 → 初始延迟 → 数据,RWDS 在延迟期间指示刷新/附加延迟,数据期间作为随路选通

延迟机制要点

项目固定延迟(Fixed Latency)可变延迟(Variable Latency)
延迟周期数由 CR0 静态配置,恒定不变基础延迟 + 由 RWDS 动态追加 0 / 1 个周期
主机要求只需按配置计数,控制器实现简单必须能采样 RWDS 并动态改变采样时刻
时序确定性确定,XIP 与 DMA 友好不确定,最坏情况需按 +1 周期预算
性能略低(需按最坏情况配置延迟数)略高(平均延迟更短)
刷新冲突处理拉长内部时序,主机无感(延迟已足够)通过 RWDS 追加周期告知主机
推荐场景推荐默认:XIP、DMA 帧缓冲、RTOS 确定性要求带宽敏感且控制器支持 RWDS 训练的场景

2.6 带宽与吞吐计算

/* ===== 1) 理论峰值带宽 ===== */
  BW_peak = f_CK × DDR倍数 × 位宽 / 8           (单位:MB/s)

  Quad SPI SDR @104 MHz ×4 : 104e6 × 1 × 4 / 8 =  52 MB/s
  Quad SPI DDR @133 MHz ×4 : 133e6 × 2 × 4 / 8 = 133 MB/s
  HyperBus   DDR @166 MHz ×8 : 166e6 × 2 × 8 / 8 = 332 MB/s
  OPI        DDR @200 MHz ×8 : 200e6 × 2 × 8 / 8 = 400 MB/s

/* ===== 2) 有效带宽(计入事务开销) ===== */
              突发数据字节数
  BW_eff = ─────────────────────────────────
           (N_cmd + N_addr + N_lat + N_data) × tCK

  N_data = 突发长度 / (位宽字节 × DDR倍数)      /* OPI: 64 B 突发 → 32 CK */

/* ===== 3) 计算示例:OPI @200 MHz DDR,突发 64 B ===== */
  tCK = 5 ns;N_cmd+N_addr = 6 CK;N_lat = 8 CK;N_data = 32 CK
  总时间 = (6 + 8 + 32) × 5 ns = 230 ns
  BW_eff = 64 B / 230 ns = 278 MB/s      → 峰值利用率 69.6 %

/* ===== 4) 同一配置改为 128 B 突发 ===== */
  总时间 = (6 + 8 + 64) × 5 ns = 390 ns
  BW_eff = 128 B / 390 ns = 328 MB/s     → 峰值利用率 82.1 %

/* ===== 5) 首字节延迟(影响 XIP 与随机访问性能) ===== */
  T_first = (N_cmd + N_addr + N_lat) × tCK
  OPI @200 MHz,延迟 8 CK      : (6 + 8) × 5.0 ns = 70 ns
  HyperBus @166 MHz,延迟 6 CK : (3 + 6) × 6.0 ns = 54 ns
接口 / 频率峰值带宽16 B 突发64 B 突发128 B 突发首字节延迟
Quad SPI SDR 104 MHz52 MB/s28 MB/s42 MB/s46 MB/s~120 ns
Quad SPI DDR 133 MHz133 MB/s66 MB/s100 MB/s113 MB/s~105 ns
HyperBus DDR 166 MHz332 MB/s121 MB/s252 MB/s284 MB/s~54 ns
OPI DDR 200 MHz400 MB/s145 MB/s278 MB/s328 MB/s~70 ns
并行 ADMUX 突发 100 MHz ×16200 MB/s120 MB/s170 MB/s185 MB/s~90 ns

注:表中有效带宽为按典型事务开销(命令+地址 6 CK、延迟 6~8 CK)计算的理论估计,未计入 CS# 释放、刷新插入与总线竞争,实测值通常再低 10 % ~ 20 %。另外,PSRAM 硬件突发上限为 1 KB(wrap),软件驱动通常按 64 B 页缓存管理单次事务,64 B 封顶属于驱动策略而非硬件限制。

用带宽反推能否带得动屏幕

例:800 × 480 RGB565 显示屏,60 fps,需持续带宽 = 800 × 480 × 2 B × 60 = 46 MB/s;若叠加 UI 合成的双缓冲与 30 % 刷新开销(约 120 MB/s),Quad SPI(52 MB/s)已明显不足,需上 HyperBus / OPI。
例:16 bit / 48 kHz 立体声环形缓冲 = 48000 × 2 B × 2 ch = 192 KB/s,任意接口都无压力,此时应优先优化休眠电流而非带宽。

2.7 并行 ADMUX PSRAM(CellularRAM)

并行 PSRAM 采用地址数据复用(ADMUX):低 16 位地址与 16 位数据共用 ADQ[15:0],靠 ADV# 的下降沿锁存地址,高位地址由 A[22:16] 提供。支持三种访问模式。

模式信号使用特点适用
异步(Asynchronous)CE# OE# WE# ADV# UB#/LB#无需时钟,每次访问重新送地址;访问时间 60 ~ 90 ns简单 MCU、低速随机访问
页模式(Page)同上,页内只送一次行地址页内连续访问 20 ~ 30 ns/次;页大小常见 8 / 16 / 32 B中速连续访问
突发(Burst / 同步)额外需要 CLK、WAIT、ADV#首地址锁存后按 CLK 连续输出;CLK 最高 66 ~ 133 MHzFPGA / 带 FSMC 的主控
信号方向设计要点
ADQ[15:0]双向16 位组内等长 ±0.5 mm;与地址锁存时序强相关,禁止在中途加缓冲器
A[22:16]输入仅在地址锁存沿有效;可与 ADQ 不等长,但需满足地址建立/保持
CE# / OE# / WE#输入CE# 上拉;OE#/WE# 建议上拉防止上电期间误写
ADV#输入下降沿锁存地址;走线需与 ADQ 组满足地址建立时间
UB# / LB#输入高/低字节掩码;8 位总线时 LB# 可固定有效
CLK输入突发模式时钟;可串联 22 ~ 33 Ω 源端电阻
WAIT输出开漏或推挽(按型号);需上拉,主控必须支持等待插入
CRE输入配置寄存器访问使能;不使用时按 datasheet 处理(通常下拉)
ZZ#输入休眠使能;建议 GPIO 控制 + 上拉,进入后需 tZZ 唤醒时间

3 · 电源设计

3.1 供电轨与去耦

电源轨标称值典型容差电流(读 @最高频)设计要点
VDD(内核)1.8 V / 3.0 V±5 %(1.70 ~ 1.95 V)
3.0 V 档 2.70 ~ 3.60 V
15 ~ 40 mA与 VDDQ 是否可合并取决于型号;必须核对 datasheet 的 Power Supply 章节
VDDQ(IO)1.8 V / 3.0 V / 1.2 V±5 %5 ~ 20 mA(IO 充放电)必须与主控 IO 电平一致;电平不匹配会直接损坏 IO
VSS / VSSQ0 V——BGA 封装每个地球建议独立过孔;地平面完整
双电源与单电源型号的处理差异

· 单电源型号:芯片内部把 VDD 与 VDDQ 连在一起,外部只需一路电源,两个引脚都接到同一网络并各自去耦。
· 双电源型号:VDD 与 VDDQ 是独立电源域,可以按不同电压供电(例如 VDD=1.8 V、VDDQ=1.8 V 或 3.0 V)。此时要满足 |VDD − VDDQ| 的额定差值限制(常见 ≤ 0.5 V ~ 1.0 V,或明确要求上电顺序),违反会导致闩锁或 IO 漏电。
· 若 datasheet 明确"VDDQ 不得先于 VDD 上电",则用同一电源轨 + 磁珠隔离,或用带使能时序的 PMIC;不要用两个独立 LDO 各控一路而放任上电顺序。

去耦电容配置(推荐基线)

位号容值封装数量位置要求作用
C1(高频)100 nF0402 / 0201每路电源 1 ~ 2 只紧靠 VDD/VDDQ 引脚,回流路径总长 ≤ 3 mm抑制 10 ~ 100 MHz 高频噪声
C2(中频)1 µF0603 / 0402每路电源 1 只距器件 ≤ 10 mm补充突发电流,抑制 1 ~ 10 MHz
C3(体电容)4.7 ~ 10 µF0603 / 0805整板共享 1 只电源输出端或器件附近稳压与低频纹波
C4(VDDQ 专属)100 nF + 1 µF0402 / 0603各 1 只紧靠 VDDQDDR 高速 IO 的瞬态电流(200 MHz 下最关键)
可选:磁珠/0 Ω—0603按需隔离 VDD 与 VDDQ(双电源型号)降低 IO 噪声耦合到内核
去耦设计的三条硬规则

① 去耦电容的接地过孔必须打在电容焊盘侧面,与电源过孔紧邻(孔间距 1 ~ 2 mm),形成最小回流环路;不要拉长走线到远处过孔。
② 200 MHz DDR 器件,VDDQ 的瞬态电流可达数十 mA/ns,VDDQ 去耦不足是"高温下偶发数据错"的高频根因。
③ 电容材质优先 X5R / X7R,避免使用 Y5V(容值随电压与温度大幅衰减);1 µF 0402 在 1.8 V 偏置下的有效容值可能只有标称的 40 %,需按 DC bias 曲线降额。

3.2 上电 / 掉电时序

PSRAM 上电复位时序波形图 VDD 与 VDDQ 单调上升,RESET# 保持低电平到电源稳定后释放,CS# 由上拉保持高电平,经过 tPU 后首次访问拉低。 PSRAM 上电 / 复位时序(示意,数值以目标 datasheet 为准) VDD VDDQ RESET# CS# VDD 单调上升(禁止回勾) VDDQ 上升,与 VDD 差值须满足额定 |VDD − VDDQ| |ΔV| ≤ 额定值 RESET# 低电平:硬件复位 释放(外部 10 kΩ 上拉) CS# 由上拉保持高(禁止浮空) 首次访问 tRST:RESET# 低脉冲 ≥ 10 ~ 200 µs tPU:电源稳定 → 首次访问 ≥ 150 ~ 500 µs
图 3-1 PSRAM 上电与复位时序:电源单调上升、RESET# 保持低电平至电源稳定、CS# 全程上拉,经 tPU 后才可首次访问

上电 / 掉电约束(写入设计文件的检查项)

/* ===== 上电时序约束模板(数值需替换为目标 datasheet 值) ===== */
  tVR     : VDD 上升时间        ≤ 规定值(常见 ≤ 20 ms,部分型号要求 ≤ 500 µs)
  tVQ     : VDDQ 上升时间       ≤ 规定值
  |VDD − VDDQ|                 ≤ 额定差值(常见 0.5 V ~ 1.0 V),全程不得超出
  VDD/VDDQ 单调性               : 上升沿不得回勾或跌落(回勾 > 100 mV 需重做电源)
  tRST    : RESET# 低脉冲宽度   ≥ 10 ~ 200 µs(按型号)
  tPU     : 电源稳定 → 首次访问 ≥ 150 ~ 500 µs
  CS# 状态: 上电全过程必须由上拉保持为高(主控 IO 默认高阻时尤其重要)
  SCK/CK  : 上电期间必须处于确定电平(禁止浮空或振荡)

/* ===== 掉电与异常断电 ===== */
  · 掉电时 VDD 与 VDDQ 应同时或 VDDQ 先于 VDD 下降到 0.5 V 以下(按型号);
  · 任何时刻若 VDD 跌出容差,必须重新执行完整上电复位流程,
    不可仅靠软复位恢复——低压下内部刷新控制器状态可能已紊乱;
  · 电池供电产品建议给 PSRAM 电源加欠压锁定(UVLO)或由 PMIC 统一断电,
    避免"慢速掉电"导致阵列进入未知状态。

3.3 低功耗模式

PSRAM 的数据保持依赖内部刷新,因此"休眠越深、刷新越少、功耗越低、但唤醒越慢且风险越高"。下表按深度排序(模式名称、进入命令、电流与唤醒时间各厂不同,必须查 datasheet)。

模式数据保持典型电流(1.8 V, 25 °C)进入方式唤醒 / 退出适用
Active(读/写)—15 ~ 40 mACS# 低 + 时钟—正常访问
Standby(待机)保持100 ~ 300 µACS# 高且时钟停止即时(下一次 CS#↓)两次访问之间
Partial Array Refresh
(半阵列 / 部分阵列刷新)
仅保留指定区域60 ~ 120 µACR1 / 模式寄存器配置刷新范围需重新配置才能访问其余区域只保留少量关键数据的超低功耗场景
Hybrid Sleep
(混合休眠)
保持30 ~ 80 µACR0 / CR1 配置tXHS:数十 µs(以 datasheet 为准)间歇唤醒的物联网终端
Deep Sleep
(深度休眠)
保持20 ~ 70 µACR0 / 模式寄存器配置tXHS:数十 ~ 150 µs长时间待机,要求数据不丢
Deep Power-Down
(DPD)
多数型号不保持1 ~ 10 µACR0 / 专用命令需完整重新初始化长期断电存放、可接受数据重载
深度休眠的两个陷阱

① 数据是否真的保持:Deep Sleep 与 DPD 常被混为一谈。前者带自刷新、数据保持;后者多数型号会丢失数据。若软件把缓存的 AI 权重或帧缓冲放在 PSRAM 里却进了 DPD,唤醒后读到的是乱码,且不会有任何报错。
② 高温下刷新电流显著上升:同一器件在 85 °C 的待机电流可能是 25 °C 时的 3 ~ 10 倍(刷新率加倍 + 结漏电)。电池产品做续航估算时,必须按最高工作温度下的电流值计算,不能用常温值。

/* ===== 低功耗进入/退出流程(伪代码,命令与位定义以 datasheet 为准) ===== */
  进入 Deep Sleep:
    1) 等待所有进行中的 DMA / XIP 访问结束(否则会丢事务);
    2) 确保 CS# 已拉高且满足 tCPH;
    3) 写 CR0/模式寄存器使能 Deep Sleep;
    4) 主控可将 PSRAM 的时钟关闭(停止 CK 输出)以进一步省电;
    5) 若主控 IO 会在休眠中变高阻 → 必须靠外部上拉保持 CS# 为高。

  退出 Deep Sleep:
    1) 恢复时钟输出,等待时钟稳定;
    2) CS#↓ → 等待 tXHS(唤醒时间,数十 ~ 150 µs)→ 再发起正常命令;
    3) 建议读一次 ID 或模式寄存器确认器件已就绪;
    4) 若之前进入的是 DPD → 走完整初始化流程(复位 → 配置 → 读选通训练);
    5) 恢复 DMA / Cache / XIP 配置。

  周期性刷新释放(非休眠场景也必须做):
    每笔事务结束后释放 CS#,保证在任意 tCEM(4 µs)窗口内
    至少有一次 CS# 高电平(≥ tCPH),否则高温下有丢数据风险。

4 · 典型应用电路

4.1 SoC ↔ OPI PSRAM(推荐主方案)

SoC 与 OPI PSRAM 典型应用电路原理图 SoC/MCU 的 OPI 控制器通过 CS#、差分 CK/CK#、8 位 DQ 总线、RWDS、RESET#、INT# 连接到 OPI PSRAM,含源端串联电阻、上拉电阻与三级去耦电容。 SoC / MCU ↔ OPI PSRAM 典型应用电路(200 MHz DDR,1.8 V) SoC / MCU OPI 控制器 + Cache / MMU IO 电源域 = 1.8 V(须与 VDDQ 一致) OPI PSRAM 如 APS6408 / APS12808 / APS256XX WSON-8 / BGA-24,64 Mb ~ 256 Mb R1 33 Ω(可选) R2 33 Ω(可选) R3 33 Ω(可选) CS# CK CK# DQ[7:0] RWDS RESET# INT#(可选) 8 位数据总线 · 组内等长 ±0.6 mm · 50 Ω ×8 1.8 V R4 10 kΩ 1.8 V R5 10 kΩ 1.8 V R6 10 kΩ 1.8 V VDD / VDDQ(PMIC 或 LDO 输出,纹波 ≤ ±3 %) C1 100 nF C2 1 µF C3 10 µF 去耦电容紧靠 PSRAM 的 VDD / VDDQ 引脚(走线总长 ≤ 3 mm),电源过孔与接地过孔紧邻成对放置。 R1~R3 为源端串联端接,靠近主控放置;取值需按仿真/实测调整,见第 7 章。CK/CK# 走 100 Ω 差分,全程参考完整地平面。
图 4-1 SoC / MCU ↔ OPI PSRAM 典型应用电路:差分时钟、8 位 DQ 总线、RWDS 选通、三级去耦与源端串联端接

逐网络说明(OPI PSRAM)

网络连接串接 / 上下拉设计要求
PSRAM_CS#SoC OPI_CS# ↔ PSRAM CS#10 kΩ 上拉至 VDDQ上电与主控高阻期间必须保持高;避免与 DQ 长距离平行;多片时每片独立
PSRAM_CK / PSRAM_CK#SoC OPI_CK(P/N) ↔ PSRAM CK/CK#各串 33 Ω(靠近 SoC)100 Ω 差分阻抗;对内等长 ≤ 5 mil(0.13 mm);禁止上下拉;单端时钟型号除外
PSRAM_DQ[7:0]SoC OPI_DQ0-7 ↔ PSRAM DQ0-7可选 22 ~ 33 Ω(双向,靠近主控)50 Ω 单端;组内等长 ≤ 25 mil(0.64 mm);不得换序(OPI 一般不支持位交换)
PSRAM_RWDSSoC OPI_DQS ↔ PSRAM RWDS10 kΩ 上拉(部分型号要求下拉)与 DQ 组等长;两侧加地线屏蔽;不得与其他信号共用电阻排
PSRAM_RST#SoC GPIO / 复位芯片 ↔ PSRAM RESET#10 kΩ 上拉 + 可选 100 nF 对地低电平 ≥ tRST(10 ~ 200 µs);未使用时按 datasheet 上拉,禁止悬空
PSRAM_INT#SoC GPIO(中断输入)↔ PSRAM INT#10 kΩ 上拉开漏输出,仅部分型号具备;不用时可悬空(按 datasheet)或接测试点
VDD_1V8PMIC / LDO ↔ PSRAM VDDC1 100 nF + C2 1 µF + C3 10 µF容差 ±5 %,纹波 ≤ ±3 %;C1 最靠近引脚
VDDQ_1V8主控 IO 同电源域 ↔ PSRAM VDDQ100 nF + 1 µF(专属)必须与主控 OPI IO 电源同域;双电源型号需满足 |VDD − VDDQ| 限制
GNDPSRAM VSS / VSSQ ↔ 地平面—BGA 每个地球至少一个过孔;顶层铺地并密集打地孔

4.2 SPI / Quad PSRAM(低引脚数方案)

SPI / Quad PSRAM 典型应用电路原理图 MCU 的 QSPI 控制器通过 CS#、SCK、SIO0~SIO3 连接到八脚 SPI PSRAM,含 CS# 上拉、SCK 源端串联电阻与 VDD 处的两级去耦。 MCU ↔ SPI / Quad PSRAM 典型应用电路(SOP-8 / WSON-8,104 ~ 133 MHz) MCU / SoC QSPI 控制器(普通四线 SPI 即可) IO 电平须与 PSRAM VDD 一致 SPI / Quad PSRAM 如 APS6404 / IS66WVS(SOP-8) R1 22 ~ 33 Ω(可选) CS# SIO1(IO1) SIO2(IO2) SIO0(IO0) SCK SIO3(IO3) 1 2 3 5 6 7 VDD R2 10 kΩ VDD 1.8 / 3.0 V 8 C1 100 nF C2 1 µF 4 VSS C1 必须紧靠第 8 脚(VDD)放置,回流路径 ≤ 3 mm;C2 距器件 ≤ 10 mm。 Quad 模式下 SIO2 / SIO3 为数据线,不可再当作 WP# / HOLD# / RESET# 使用;8 脚封装无硬件复位,只能靠 0x66 + 0x99 软复位。 该封装与 SPI NOR Flash 完全相同,必须做贴错料防呆(见第 9 章)。
图 4-2 MCU ↔ SPI / Quad PSRAM 典型应用电路:CS# 上拉、SCK 源端串联电阻、VDD 两级去耦

逐网络说明(SPI / Quad PSRAM)

脚位网络串接 / 上下拉设计要求
1PSRAM_CS#10 kΩ 上拉至 VDD禁止浮空;多片时每片独立 GPIO 或经译码器驱动
2PSRAM_SIO1可选 22 Ω(双向,靠近主控)Quad 数据线 1;单线模式下为 SO / MISO
3PSRAM_SIO2可选 22 ΩQuad 数据线 2;不再是 WP#
4GND—直连地平面,短粗走线
5PSRAM_SIO0可选 22 ΩQuad 数据线 0;单线模式下为 SI / MOSI
6PSRAM_SCK串 22 ~ 33 Ω(靠近主控)禁止上下拉;空闲电平由主控 SPI 模式(CPOL)决定
7PSRAM_SIO3可选 22 ΩQuad 数据线 3;不再是 HOLD# / RESET#
8VDDC1 100 nF + C2 1 µF1.8 V 或 3.0 V,必须与主控 IO 电平一致

4.3 HyperRAM(HyperBus)电路

HyperRAM 的电气连接与 OPI 高度相似(拓扑同见图 4-1),差异集中在以下几点:

差异项HyperRAM(HyperBus)OPI PSRAM设计影响
时钟必须使用差分 CK / CK#差分或单端(部分型号)HyperRAM 漏接 CK# 直接无法工作
命令 / 地址固定 48 bit CA(6 字节 DDR = 3 CK)命令 1~2 CK + 地址 2~4 CKHyperBus 事务开销固定,效率略高
选通RWDS(双向,兼延迟与刷新指示)RWDS / DQS(同)两者都需 10 kΩ 上拉防浮空
复位有专用 RESET# 引脚(BGA-24)多数 8 脚型号无HyperRAM 可由 GPIO 硬件复位,救砖更容易
中断部分型号有 INT#(开漏)少见需 10 kΩ 上拉;不用时按 datasheet 悬空
寄存器CR0 / CR1 / IDR0 / IDR1(地址较统一)各厂私有模式寄存器HyperBus 跨厂移植成本较低
封装BGA-24(0.8 mm 球距)WSON-8 / BGA-24HyperRAM 需要 BGA 扇出能力与 X-Ray 检测
NC 球NC 球必须悬空(按 datasheet)—NC 球接地或接电源会导致异常电流甚至损坏

逐网络说明(HyperRAM,BGA-24)

网络串接 / 上下拉设计要求
CS#10 kΩ 上拉至 VDDQ与 CK 满足 tCSS / tCSH 建立保持;每事务后必须释放以保证刷新
CK / CK#各串 22 ~ 33 Ω(靠近主控)100 Ω 差分;对内等长 ≤ 5 mil;两条线全程等长
DQ[7:0]可选 22 ~ 33 Ω50 Ω 单端;组内等长 ≤ 25 mil;禁止位交换
RWDS10 kΩ 上拉(部分型号要求下拉)与 DQ 同组等长;两侧加地线屏蔽
RESET#10 kΩ 上拉 + 100 nF 对地(可选)由 GPIO 或复位芯片驱动;低电平 ≥ tRST;上电期间保持低
INT#10 kΩ 上拉开漏;接到主控可唤醒 GPIO 或测试点
VDD / VDDQ各 100 nF + 共享 1 µF / 10 µF双电源型号需核对是否允许外部短接
NC 球—按 datasheet 悬空;钢网禁止开孔;PCB 焊盘按 datasheet 处理

4.4 并行 ADMUX PSRAM 电路

网络组位宽串接 / 上下拉设计要求
ADQ[15:0]16可选 22 ~ 33 Ω组内等长 ≤ 20 mil(0.5 mm);与主控 FSMC / EBI 数据脚一一对应,允许位交换(与 OPI 不同)
A[22:16]7—仅在 ADV# 锁存沿有效;组内等长 ≤ 50 mil
CE#110 kΩ 上拉可与主控片选直连;多片时由高位地址译码
OE# / WE#210 kΩ 上拉上拉防止上电期间误写;与 CE# 满足读写时序
ADV#1—下降沿锁存地址;与 ADQ 组满足地址建立 / 保持
UB# / LB#2按需上拉 / 下拉8 位总线时,未使用的一侧按 datasheet 固定为有效或无效
CLK1串 22 ~ 33 Ω突发模式时钟;66 ~ 133 MHz 时按时钟线处理,避免分支
WAIT110 kΩ 上拉主控必须支持等待插入;不支持则只能跑异步 / 页模式
CRE / ZZ#2CRE 下拉、ZZ# 上拉(按 datasheet)由 GPIO 控制;ZZ# 进入休眠后需满足唤醒时间
并行 PSRAM 的"等长陷阱"

并行接口中 ADQ 组必须严格等长,地址组可放宽;但 ADV# 与 ADQ 之间要满足地址锁存的建立 / 保持,两者不能相差过大(建议 ≤ 100 mil)。很多工程师把 ADV# 当作普通控制信号随意走线,结果在高频突发模式下首地址锁错,表现为"连续读时第一拍数据错位"。

4.5 多片 SPI PSRAM 共总线与 CS 译码拓扑

当单片容量不足(例如需要 4 × 64 Mb = 32 MB)时有两种做法:共总线多片选(本节)与直接选用更大容量单片(优先推荐——共总线会显著增加负载与 Layout 难度)。

多片 SPI PSRAM 共总线 CS 译码拓扑图 MCU 的 SCK 与 SIO0~SIO3 构成共享总线,经短分支连接到四片 SPI PSRAM;MCU 的 3 个 GPIO 经 74LVC138 译码器产生 4 路独立片选 CS0#~CS3#。 多片 SPI PSRAM 共总线 + 74LVC138 片选译码拓扑 MCU / SoC QSPI 控制器 共享总线 SCK / SIO0~SIO3 SCK SIO0 SIO1 SIO2 SIO3 PSRAM #1 64 Mb · CS0# PSRAM #2 64 Mb · CS1# PSRAM #3 64 Mb · CS2# PSRAM #4 64 Mb · CS3# 74LVC138 3 → 8 译码器 tpd ≈ 3 ~ 5 ns GPIO A0 GPIO A1 GPIO A2 CS0# CS1# CS2# CS3# 总线分支长度 ≤ 10 mm,必要时在分支串 22 Ω;每片 VDD 各自 100 nF 去耦,每片 CS# 各自 10 kΩ 上拉。 优先选更大容量单片:多片并联会带来负载翻倍、频率降额、软件地址分片与故障率翻倍等代价。
图 4-3 多片 SPI PSRAM 共总线与 74LVC138 片选译码拓扑:SCK / SIO0-3 共享,片选由 3 位地址译码产生

多片设计规则

项目规则原因
片数上限共总线建议 ≤ 2 片(@133 MHz)或 ≤ 4 片(≤ 80 MHz)负载电容叠加,边沿变缓,时序裕量不足
总线电容预算ΣCIN + CPCB ≤ 主控驱动能力(常见 ≤ 30 ~ 50 pF)超出后上升 / 下降时间超标,采样失败
分支长度≤ 10 mm,且分支尽量对称长分支形成 stub,引起反射与振铃
片选方式≤ 4 片用 MCU 直接 GPIO;更多用 74LVC138 / 74LVC139译码器传播延迟(3 ~ 5 ns)需计入时序预算
片选上拉每片独立 10 kΩ 上拉避免上电期间多片同时响应造成总线冲突
去耦每片独立 100 nF,靠近各自 VDD共享去耦会在并发切换时造成电源塌陷
频率降额每多 1 片,建议频率降 10 % ~ 20 %留出负载与串扰裕量
片选切换间隔两片切换之间满足 tCPH(15 ~ 22 ns)防止总线竞争与刷新窗口丢失
优先选更大容量单片,而不是多片并联

多片并联看似"容量翻倍、成本相近",实际带来负载电容翻倍、Layout 拓扑复杂、频率降额、软件需做地址分片管理、故障率翻倍等问题。若目标容量有对应单片型号(如 256 Mb / 512 Mb OPI PSRAM),优先选单片;多片方案只在"单片买不到 / 供应不合法 / 需要物理隔离"时才使用。