2026 / 07 / 21
OSPI Flash适配秘籍之内功心法篇

OSPI Flash(Octal SPI Flash)是一种基于SPI(串行外设接口)扩展的高速串行Flash存储器,采用8-bit数据总线通信方式。相比传统的SPI或Quad SPI(QSPI),OSPI提供更高的数据吞吐率与更优的系统性能。OSPI Flash主要应用在高性能嵌入式系统启动,图形界面处理(GUI)/人机交互界面(HMI),嵌入式AI模型存储等领域。瑞萨高性能MCU、MPU都提供了功能强大的OSPI接口,它不仅可以工作在8线的高速模式下,还兼容普通的单线(SPI),双线(DSPI)和四线(QSPI)的多种工作模式和多种协议模式。

然而面对广大不同厂家的OSPI Flash,虽然说大部分功能相似,大部分功能也可以复用,但是不同厂家的OSPI Flash还是存在或多或少的差别。因此如果客户出于成本的考虑,需要更换OSPI Flash的时候,需要做驱动层的适配工作。那如何做OSPI Flash的驱动的适配工作?

下面我以Renesas RA8D1这款高性能MCU为例来说明如何进行OSPI Flash驱动的适配工作,总结成两篇适配秘籍,可以供客户参考。公欲善其事,必先懂其基(基本原理),本篇文章先就OSPI的一些工作模式和协议等基本概念做一个相对系统的介绍。后续的篇章我们将以Winbond W35T51NW OSPI Flash为例来展开具体的驱动的适配工作。请感兴趣的读者持续关注!

读者朋友们可以先了解一下RA8D1的OSPI specifications:

一、RA8D1的OSPI工作模式:



1.1 Support Protocol modes below
xSPI规范支持多种协议模式,包括1S-1S-1S、4S-4D-4D、8D-8D-8D、1S-2S-2S、2S-2S-2S、1S-4S-4S、4S-4S-4S等。这些模式主要是基于数据传输位宽(线数)和时钟模式(SDR/DDR)进行区分。

协议模式的基本概念
   1S、2S、4S、4D、8D代表了数据传输过程中使用的线数:
        ○ 1S(Single Line,单线):每个时钟周期传输1bit数据。
        ○ 2S(Dual Line,双线):每个时钟周期传输2bit数据(双线,每根线1bit)。
        ○ 4S(Quad Line,四线):每个时钟周期传输4bit数据(四线,每根线1bit)。
        ○ 4D(Qcta Line,四线DDR):每个时钟周期传输8bit数据,因为采用DDR(DDR双数据速率)模式,时钟周期的上升沿传输4bit数据,下降沿传输4bit数据。
        ○ 8D(Octa Line,八线DDR):每个时钟周期传输16bit数据,因为采用DDR(DDR双数据速率)模式,时钟周期的上升沿传输8bit数据,下降沿传输8bit数据。
   SDR(Single Data Rate,单数据速率)DDR(Double Data Rate,双数据速率):
        ○ SDR:仅在时钟上升沿传输数据。
        ○ DDR:在时钟上升沿和下降沿传输数据,线数相同的情况下吞吐量是SDR的2倍。

具体模式说明
不同模式的主要区别在于xSPI接口访问Flash的地址、命令和数据阶段分别使用多少条数据线进行传输。



下面以1S-1S-1S、4S-4D-4D、8D-8D-8D三种协议模式举例说明
   1S-1S-1S(传统SPI模式)
        ○ 命令、地址、数据阶段都使用单线传输(每个时钟周期1bit)。
        ○ 这种模式兼容传统SPI,但传输速度较慢。
        ○ 优点:兼容性好,适用于低速SPI设备。
   4S-4D-4D(Quad SPI DDR模式)
        ○ 命令阶段:使用4-bit传输(相比1S提高4倍)。
        ○ 地址阶段:使用4-bitDDR传输(时钟上升沿和下降沿都发送数据)。
        ○ 数据阶段:使用4-bitDDR传输,吞吐量更高。
        ○ 优点:相比1S-1S-1S,吞吐量提高了8倍,适用于高速NORFlash存储应用。
   8D-8D-8D(Octa SPI DDR模式)
        ○ 命令、地址、数据都使用8-bitDDR传输。
        ○ 相比4S-4D-4D,吞吐量翻倍。
        ○ 适用于极高速NORFlash存储,如PSRAM、Octa Flash、Octa HyperRAM。

1.2 Configurable address length
   支持可配置的地址长度(常见如24-bit或32-bit地址模式):
        ○ 24-bit通常用于小于16MB(128Mbit)的Flash;
        ○ 32-bit用于更大容量的Flash(>16MB);

1.3 Configurable initial access latency cycle
   指访问延迟周期(Latency Cycle)可配置,在XIP或连续读取模式中尤为关键:
        ○ 设备允许设置dummy cycle数量;
        ○ 适应不同主频、控制器时序要求;
        ○ 优化带宽性能或兼容性。

1.4 Support XiP mode
   支持Execute in Place(XIP)模式:
        ○ MCU/MPU可将Flash映射入内部地址空间;
        ○ 支持直接读取并执行,不需复制到RAM;
        ○ 通常与memory-mapped mode、持续读取命令组合使用。

二、RA8D1的OSPI接口功能



2.1 Support Write Data Mask(支持写数据掩码)
        ○ 允许在写入数据时屏蔽某些字节,使其不被改写,而其他字节仍然可以被正常写入。
        ○ 这种功能通常用于按位更新存储器内容,而无需先读取、修改、再写入完整数据。1

2.2 Support In-band Reset(支持带内复位)
   通过OSPI总线上的指令或数据序列触发设备复位,而不是依赖额外的硬件复位引脚。
       ○ 适用于系统集成度高、不易接触硬件复位引脚的应用,如嵌入式系统和工业控制设备。1

2.3 Memory-mapping(内存映射模式)
OSPI控制器支持将外部Flash设备的存储空间直接映射到MCU地址空间,使其像内部RAM/ROM一样被访问。

Support up to 256MB address space each CS(每个CS支持高达256MB的地址空间)
   在内存映射模式下,每个片选(CS,Chip Select)可支持高达256MB的存储空间,这意味着可以使用较大的外部存储器。
   应用场景:
        ○ 适用于大容量代码存储(如执行XIP(execute In Place)),即代码直接在Flash中运行,而无需拷贝到RAM。
        ○ 适用于存储大量数据,如日志记录、固件存储、AI推理模型等。

Prefetch function for burst-read with low latency(预取功能,提高突发读取性能)
   在突发读取(BurstRead)模式下,OSPI控制器会提前读取后续数据并存入缓冲区,减少访问延迟。
   应用场景:
        ○ 适用于实时性要求较高的应用,例如高速图像处理、实时操作系统(RTOS)等。
        ○ XIP模式下,可以减少CPU访问外部Flash的延迟,提高程序运行效率。

Outstanding buffer for burst-write with high throughput(突发写入优化,提高吞吐量)
   突发写入(BurstWrite)时,OSPI控制器使用Outstanding buffer(写入缓冲区),允许CPU快速提交数据,而不必等待Flash完成写入,提高吞吐量。
   应用场景:
        ○ 适用于数据流量较大的应用,如数据记录、固件升级、机器学习模型加载等。

2.4 Manual command(手动指令模式)
OSPI支持手动发送自定义指令,使其适用于不同厂商的Flash设备,并提供更灵活的操作方式。

Configurable up to 4 commands(可配置最多4条指令)
   用户可以预设4条常用指令(如读、写、擦除等),减少软件控制开销,提高效率。

Status Register Polling function(状态寄存器轮询功能)
   允许MCU轮询Flash的状态寄存器,以确定Flash是否完成写入、擦除等操作,避免不必要的等待。

2.5 Input Strobe port timing shift(输入同步信号端口的时序调整)
   在高速OSPI传输中,数据可能会有时序偏移。这个功能允许调整数据采样时钟,以确保数据稳定可靠。
   应用场景:
        ○ 当使用不同的Flash器件时,可能会因工艺或PCB布局导致时序误差,调整该参数可以优化信号完整性。
        ○ 适用于高速通信场景,如工业自动化、汽车电子、无线通信设备等。

下面具体给读者解读一下在8D-8D-8D协议下的时序图:



图中相关信号线的含义如下表所示:




从上图可以看到command field的一个时钟周期的上升沿可以采集8位数据(因为有OM_SIO0-OM_SIO7八根线的数据,每根线上一位数据),下降沿也可以采集8位数据,这样一个时钟周期可以采集16bit的数据。同样的道理地址段两个时钟周期,可以采集32位数据。那么这样数据段的传输速率,相比1S-1S-1S协议提高了16倍。






文件下载
隐私条款

一、接受条款 使用者(也称"您")在访问或使用本网站及其服务时,即已经表示同意并不加修改地接受本《用户协议》、本网站的《隐私声明》、《法律声明》以及其关或相链接的网页和网站的条件和条款的规定。我们强烈建议:在您阅读和接受本《用户协议》时,也应阅读并接受本《用户协议》中所提到《隐私声明》、《法律声明》及其相关或相链接网页或网站所包含的资料,因为《隐私声明》、《法律声明》及其它相关网页或网站可能包含对您适用的进一步规定。(请注意:点击划有底线的词句即可链接到上述《隐私声明》、《法律声明》及其它相关或相链接的网页和网站。

 

二、使用者的资格要求 在本网站中"使用者"指的是浏览、阅读、使用本网站信息或服务的任何个人或组织。本网站的服务仅适用于根据相关法律的规定具有签订有约束力的合同的个人或组织并仅由其使用。本网站的服务不向18周岁以下的个人使用者提供,也不向临时被本网站中止或取消使用者资格的使用者提供。如果使用者不符合本条规定,请停止使用本网站或本网站的服务。

样品
申请

应用
资源

微信