STM32L4R9的QuadSPI Flash通讯速率不理想

发布者:BlissfulHeart最新更新时间:2024-09-20 来源: elecfans关键字:Flash  通讯速率 手机看文章 扫描二维码
随时随地手机看文章

1. 引言

客户反应STM32L4R9 同QSPI Flash 通讯,测出来的读取速率为10MB/s, 和理论值相差较大。


2.问题分析

按照客户的时钟配置和STM32L4R9 的数据手册中的数据,OSPI 读数速率为10MB/s肯定存在问题。同时我们也可以在AN4760 应用手册中看到如下说明:

wKgZomUDwSqAGFUpAAGskzl0l7c028.png?imageView2/2/w/1000

wKgaomUDwSyAN1EQAABWuoxR0EQ125.png?imageView2/2/w/1000

在客户系统中,IO0~IO3的4线通讯模式下信号波形如下图,可以看出每经过8 个CLK周期就有很长一段时间的延时。如果提高CPU的主频,这个延时会缩短,但客户测到最短的延时也有200ns,并且一直存在:

wKgaomUDwS2Adm2SAABXCNk4Jx0454.png?imageView2/2/w/1000

3.问题解决

从客户测试波形上看,由于是4条数据线,因此8个clock正好是4bytes,也就是32bits数据。怀疑STM32L4R9 QSPI在DMA通讯中,读到一个word(32bits)数据后需要在内部做一定的数据处理,造成时间延迟。

分析代码发现,DMA设置的是byte传输模式,如下面代码:

#define BUFFERSIZE (COUNTOF(aTxBuffer) - 1)

hdma.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;

hdma.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;

STM32L4R9是Cortex-M4 内核,系统总线是32bits的,怀疑是在32bit总线上传输byte数据会降低效率,造成延迟,于是修改代码如下:

示例代码在下面路径,需要使用附件中的main.c文件替换掉下面文件中的main.c:

…STM32Cube_FW_L4_VxxProjects32L4R9IDISCOVERYExamplesOSPIOSPI_NOR_ReadWrite_DMAEWARM

另外程序中做如下改动:

#define BUFFERSIZE 1024 // (COUNTOF(aTxBuffer) - 1)

hdma.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;

hdma.Init.MemDataAlignment = DMA_PDATAALIGN_WORD;

配置时请留意OSPIHandle.Init.FifoThreshold = 4; //也需要4的倍数。

修改代码后进行测试,代码读 4096bytes的图像(1026 words),发现每个word数据中间的延迟已经没有了。之前速度提不上去的问题是DMA byte设置引起,因为STM32L4R9是32bits系统,使用8bits传输会降低效率,需要改为DMA 32bits配置就OK了。图形数据传输的总字节数也要设置为4的倍数,不足的需要补齐。

wKgZomUDwS-AF7RpAAFVkeH39SQ736.png?imageView2/2/w/1000

wKgaomUDwTmAeBiCAAe4kOuKORY077.png?imageView2/2/w/1000

DMA改为word设置后数据传输时没有延迟

4. 小结

对32位系统来说,使用byte的数据传输在一些情况下会降低效率,建议对32bits系统使用32bits的数据传输方式。


关键字:Flash  通讯速率 引用地址:STM32L4R9的QuadSPI Flash通讯速率不理想

上一篇:STM32F051C4引脚图、封装及参数定义
下一篇:用STM32Cube.AI部署ONNX模型实操示例:风扇堵塞检测

推荐阅读最新更新时间:2026-03-20 11:17

中国移动研究院、中兴通讯和高通完成5G Advanced高低频NR-CA端到端验证,实现9Gbps速率里程碑
中国移动研究院、中兴通讯和高通完成5G Advanced高低频NR-CA端到端验证,实现9Gbps速率里程碑 近日, 中国移动研究院、中兴通讯与高通技术公司合作验证了5G Advanced高低频多载波聚合方案,成功展示了新型NR-CA组合下的高速率体验 。此次验证利用超高频段的800MHz带宽与2.6GHz低频段的100MHz带宽进行载波聚合,并且首次采用1024QAM高阶调制方式,实现单用户下行峰值速率达9Gbps的新突破。 此次三方联合实现了端到端的NR-CA技术验证,采用搭载骁龙®X80 5G调制解调器及射频系统的智能手机形态终端,以及中兴通讯的高性能超大带宽毫米波AAU设备。 图1:下行NR-CA实测数据结果
[网络通信]
中国移动研究院、中兴<font color='red'>通讯</font>和高通完成5G Advanced高低频NR-CA端到端验证,实现9Gbps<font color='red'>速率</font>里程碑
浙江移动联合高通和中兴通讯完成5G-A下行三载波聚合+1024QAM全球商用首秀,单用户速率突破
浙江移动联合高通和中兴通讯完成5G-A下行三载波聚合+1024QAM全球商用首秀,单用户速率突破5.4Gbps 要点: 浙江移动联合高通技术公司和中兴通讯,在嘉兴外场完成行业首个下行三载波聚合(3CC)+1024QAM全球商用首秀,并实现5.4Gbps峰值速率突破的里程碑。 三方旨在推动5G Advanced空口增强技术的部署,拓宽5G信息高速公路,充分满足VR智慧体验、超高清直播、裸眼3D等新业务的极致体验要求。 近日,中国移动浙江公司(以下简称浙江移动)联合高通技术公司和中兴通讯,在嘉兴外场完成5G Advanced下行多载波聚合和更高阶调制解调技术的商用验证,突破性地将单用户下行速率提升至超过5.4Gbp
[网络通信]
浙江移动联合高通和中兴<font color='red'>通讯</font>完成5G-A下行三载波聚合+1024QAM全球商用首秀,单用户<font color='red'>速率</font>突破
解决RS-232接口通讯速率不足办法
         RS-232接口 的传输速率为什么只能达到15m,是什么限制了传输速率的进一步提高呢?         RS-232-C标准规定的数据传输速率为每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。           要延长RS-232的距离可以将其转换为R
[嵌入式]
BiCS FLASH进阶时,加速存储新进化
AI算力需求爆炸,海量数据频繁调动,致使存储行业变得愈发重要。 无论是当下的生成式AI,还是即将到来的AI智能体、端侧AI,高性能、高密度、高能效存储解决方案都将作为可靠的硬件基础,进而解决数据中心、AI训练推理以及移动设备在数据存储与访问的瓶颈问题。在众多存储技术发展路径中,铠侠BiCS FLASH 3D闪存技术为行业提供了大量支持,也是高性能存储中,不可缺少的关键角色。 铠侠作为闪存技术的发明者,秉承着Bit Cost Scalable Flash的理念, BiCS FLASH在2D NAND遇到容量提升瓶颈的之后,转而向垂直方向堆叠存储单元,通过巧妙的交替堆叠板状电极和绝缘体,一次性垂直打孔穿透存储层,并在孔内填充电荷储
[嵌入式]
BiCS <font color='red'>FLASH</font>进阶时,加速存储新进化
关于STM32的FLASH、ROM、RAM是什么,有什么用,注意事项,如何计算
一、stm32 的flash是什么、有什么用、注意事项、如何查看 一、说明 它主要用于存储代码,FLASH 存储器的内容在掉电后不会丢失,STM32 芯片在运行的时候,也能对自身的内部 FLASH 进行读写,因此,若内部 FLASH 存储了应用程序后还有剩余的空间,我们可以把它像外部 SPI-FLASH 那样利用起来,存储一些程序运行时产生的需要掉电保存的数据。并且访问内部 FLASH 的速度要比外部的 SPI-FLASH 快得多。 二、结构 STM32 的内部 FLASH 包含主存储器、系统存储器、 OTP 区域以及选项字节区域,它们的地址分布及大小下表: 各个存储区域的说明如下: (1)主存储器 一般我们说 STM32 内
[单片机]
MCU片上存储器详解:RAM、ROM、Flash及TF卡、SD卡的原理与区别总汇
一般来说,MCU里的存储器件包括RAM、ROM以及Flash三种,而RAM又分为DRAM和SRAM,ROM又分为EPROM、EEPROM,Flash又分为NOR和NAND,此外,还有一种被称为SD/TF卡的存储器,它们的主要区别是什么?常见容量是多少?常见的使用场景又是什么样的?本篇笔记将回答这些问题。 1. RAM 首先来说RAM,RAM分为DRAM和SRAM,简单来说,DRAM使用电容器存储数据,数据会随时间消失,因此需要定期刷新以保持数据,所以称之为Dynamic,DRAM速度较慢但存储容量大,且成本低,一般用作MCU的主内存或者图形内存,比如我们常说的“代码会先读入RAM,然后再运行”,这里的RAM就是指的
[单片机]
单片机内存结构解析:Flash、RAM、堆与栈详解及其相互关系
前言 : 在嵌入式开发中,理解单片机的内存结构对于程序设计、资源管理和系统稳定性至关重要。STM32 单片机(以 STM32F103 系列为例)中包含多种类型的存储器资源,包括 Flash、RAM、堆(Heap)和栈(Stack)。本文将全面介绍它们的作用、存放内容以及它们之间的联系。 将结合下图进行讲解。 一、Flash:非易失性程序存储器 特性: 1.Flash 是非易失性存储器,即掉电后数据仍然保留。 2.在 STM32 中通常用于存储程序和常量。 3.Flash 地址起始于 (Start) 0x08000000是 STM32 的默认程序存储地址,大小(Size)为 0x10000 有 64KB Flash。
[单片机]
单片机内存结构解析:<font color='red'>Flash</font>、RAM、堆与栈详解及其相互关系
ESP32的Flash加密知识
一、Flash 加密功能用于加密与 ESP32-S2 搭载使用的 SPI Flash 中的内容。启用 Flash 加密功能后,物理读取 SPI Flash 便无法恢复大部分 Flash 内容。通过明文数据烧录 ESP32-S2 可应用加密功能,(若已启用加密功能)引导加载程序会在首次启动时对数据进行加密。 启用 Flash 加密后,系统将默认加密下列类型的 Flash 数据: 引导加载程序 分区表 所有 “app” 类型的分区 其他类型的 Flash 数据将视情况进行加密: 安全启动引导加载程序摘要(如果已启用安全启动) 分区表中标有“加密”标记的分区 二、开发模式:可使用 ESP32-S2 内部生成的密钥或外部主
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved