0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应用笔记 | STM32L4R9 的QuadSPI Flash 通讯速率不理想

STM32单片机 来源:未知 2023-08-04 08:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

关键字:Octo-SPI, Quad Serial Flash

目录预览

1 引言2 问题分析3 问题解决

4 小结

1. 引言

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

2.问题分析

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

6cc038be-325a-11ee-9e74-dac502259ad0.png

6cebba8e-325a-11ee-9e74-dac502259ad0.png

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

6d11ce72-325a-11ee-9e74-dac502259ad0.png

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的倍数,不足的需要补齐。

6d322aa0-325a-11ee-9e74-dac502259ad0.png

6d79e958-325a-11ee-9e74-dac502259ad0.png

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

4. 小结

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

完整内容请点击“阅读原文”下载原文档。

6db75658-325a-11ee-9e74-dac502259ad0.png

长按扫码关注公众号

更多资讯,尽在STM32

点击“阅读原文”,可下载原文档


原文标题:应用笔记 | STM32L4R9 的QuadSPI Flash 通讯速率不理想

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6078

    文章

    45568

    浏览量

    673296
  • STM32
    +关注

    关注

    2312

    文章

    11189

    浏览量

    374514

原文标题:应用笔记 | STM32L4R9 的QuadSPI Flash 通讯速率不理想

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32L053x6/8:超低功耗32位MCU的卓越之选

    功耗特性和丰富的功能,成为了电子工程师在设计各类设备时的理想选择。本文将深入介绍STM32L053x6/8的特点、功能和应用,帮助工程师更好地了解和使用这款MCU。 文件下载
    的头像 发表于 04-18 09:05 67次阅读

    STM32L151xC和STM32L152xC微控制器:低功耗设计的理想之选

    STM32L151xC和STM32L152xC微控制器:低功耗设计的理想之选 在电子设计领域,低功耗、高性能的微控制器一直是工程师们追求的目标。ST公司的STM32L
    的头像 发表于 04-17 14:45 63次阅读

    STM32L151/152系列超低功耗MCU:特性、应用与设计要点

    其卓越的性能和丰富的特性,成为了众多应用领域的理想选择。本文将深入探讨这一系列MCU的特点、功能以及在设计过程中需要关注的要点。 文件下载: STM32L152R8T6TR.pdf 一、产品概述
    的头像 发表于 04-17 14:45 69次阅读

    STM32L151xD/STM32L152xD:超低功耗32位MCU的卓越之选

    151xD和STM32L152xD系列MCU凭借其出色的特性,成为众多应用场景的理想选择。本文将深入剖析这两款MCU的特点、功能及应用,为电子工程师们提供全面的参考。 文件下载: STM32L152QDH6.pdf 一
    的头像 发表于 04-17 14:45 65次阅读

    深入剖析STM32L010F4/K4:低功耗32位MCU的卓越之选

    深入剖析STM32L010F4/K4:低功耗32位MCU的卓越之选 在当今对功耗要求日益严苛的电子设备领域,低功耗微控制器(MCU)的重要性不言而喻。STM32L010F4/K4作为S
    的头像 发表于 04-15 15:40 145次阅读

    STM32L052x6/8:超低功耗32位MCU的卓越之选

    了电子工程师们的理想选择。本文将深入剖析这款MCU的特点、功能、电气特性以及应用场景,为工程师们在设计过程中提供全面的参考。 文件下载: STM32L052R8T6.pdf 一、产品概述
    的头像 发表于 02-11 15:20 277次阅读

    LAT1180+STM32L4R9QuadSPI Flash 通讯速率不理想用笔记

    客户反应 STM32L4R9 同 QSPI Flash 通讯,测出来的读取速率为 10MB/s, 和理论值相差较大。按照客户的时钟配置和 STM32
    发表于 01-11 17:30 0次下载

    LAT1198+通过 KEIL 制作 QSPI 接口的外部 Flash 下载算法应用笔记

    时,需要将代码或数据烧录到外部 Flash。如果调试工具不能够一键烧录,势必会给调试带来诸多的麻烦。本文以 STM32H750 芯片为例,介绍通过 KEIL制作 QSPI 接口的外部 Flash 下载算法的方法。
    发表于 01-11 17:25 0次下载

    基于STM32的VL53L4CD高精度飞行时间传感器技术解析与应用实践

    STMicroelectronics X-NUCLEO-53L4A1扩展板设计用于配有Arduino R3连接器的任何STM32 Nucleo板。X-NUCLEO-53L4A1扩展板包
    的头像 发表于 10-31 09:24 737次阅读
    基于<b class='flag-5'>STM32</b>的VL53<b class='flag-5'>L4</b>CD高精度飞行时间传感器技术解析与应用实践

    传感器数据计算质心位移轨迹,结果不理想

    6、减去初始段的速度平均值,消除速度偏置 7、对速度梯形积分得到位移 8、 使用ZUPT优化位移结果 9、 绘制原始位移轨迹和优化后的位移轨迹 问题如下 :测试结果不理想,存在几厘米的差异,请问改进的方向都有什么呢? 结果如下:
    发表于 06-24 17:07

    【RA4L1-SENSOR】+ RA4L1-SENSOR开发版之CoreMark跑分测试

    对着数据手册,我们无法得知RA4L1的CPU性能参数,就好比新买了一台笔记本电脑,需要用鲁大师先测下CPU能跑多少分!!! 刚好有个专业软件叫coremark专门用来测试嵌入式MCU的性能的。 它
    发表于 06-09 11:05

    【RA4L1-SENSOR】+ RA4L1-SENSOR开发版串口打印功能printf实现

    很高兴收到瑞萨RA生态工作室给与试用的RA4L1-SENSOR开发板,本期就来讲解使用RA4L1-SENSOR开发板实现串口打印功能! 1。打开原理图 可以知道板载的USB串口使用的是USART9
    发表于 06-08 15:01

    GPDV6624C应用笔记1.0版

    电子发烧友网站提供《GPDV6624C应用笔记1.0版.pdf》资料免费下载
    发表于 06-06 17:20 0次下载

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册

    电子发烧友网站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册.pdf》资料
    发表于 06-06 17:06 17次下载

    STM32L476 Flash擦除失败的原因?

    开发板MCU型号:STM32L476RG 同样的固件在开发板中flash读写擦除操作都没问题,但在产品中擦除函数返回成功,但flash中的数据其实并没有擦除。 这两款MCU在Flash
    发表于 04-23 08:26