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单片机】欢迎添加关注!文章转载请注明出处。


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

    关注

    6002

    文章

    43990

    浏览量

    621219
  • STM32
    +关注

    关注

    2240

    文章

    10675

    浏览量

    348963

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

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

收藏 人收藏

    评论

    相关推荐

    使用STM32L4R9单片机开发板,DfuSeDemo无法检测到设备的原因?

    使用STM32L4R9单片机开发板,官方例程STM32Cube_FW_L4_V1.16.0Projects32L4R9IDISCOVERYApplicationsUSB_DeviceDFU_Standalone 实现USB的IAP,下载完DFU程序后,DfuSeDemo无
    发表于 04-09 07:59

    STM32CubeMX配置STM32L4R9ZI的硬件SDMMC缺少DMA Settings配置是怎么回事?

    STM32CubeMX配置STM32L4R9ZI的硬件SDMMC1,缺少DMA Settings配置?
    发表于 04-08 07:25

    STM32L4R5VGT6 flash超512K时,无法下载的原因?

    the File 当flash低于512K时,就能正常下载。 2、当注释掉Fatfs相关函数,发现超512K也是可以正常下载的。使用Fatfs相关函数,flash超512K就无法下载。 STM32L4R5VGT6
    发表于 03-27 07:18

    STM32L4R9ZI芯片不能烧录,ST-LINK无法连接上是怎么回事?如何处理?

    STM32L4R9ZI芯片不能烧录,ST-LINK无法连接上
    发表于 03-25 08:17

    STM32L4R9驱动480*800的LCD屏幕,结果屏幕刷新看起来是逐行进行,刷新速度较慢,是否正常?

    请问一下,用STM32L4R9驱动480*800的LCD屏幕(采用一个数据通道),结果屏幕刷新看起来是逐行进行,刷新速度较慢,是否正常,如果有问题可能会是哪里?例程和资料都可以看出整屏同时刷新才对。谢谢
    发表于 03-22 07:04

    stm32l4r9i-disco ARGB图片不能正确显示怎么解决?

    stm32l4r9i-disco开发,使用板子上带的390 x 390 DSI屏显示ARGB8888图片。具体用到了 DMA2D,GFXMMU和LTDC,但是显示有问题。图片一分为二,而且是从屏幕中间开始显示。请问各位有没有什么建议?
    发表于 03-19 07:17

    STM32L4R9QuadSPI Flash通讯速率不理想

    STM32L4R9QuadSPI Flash通讯速率不理想
    的头像 发表于 11-06 17:06 473次阅读
    <b class='flag-5'>STM32L4R9</b>的<b class='flag-5'>QuadSPI</b> <b class='flag-5'>Flash</b><b class='flag-5'>通讯</b><b class='flag-5'>速率</b><b class='flag-5'>不理想</b>

    AN2784应用笔记

    这个应用笔记说明了如何使用大容量的STM32F10xxx的FSMC(灵活的静态存储器控制器)驱动一组外部的存储器。文中首先简要地介绍了STM32F10xxx的FSMC控制器,然后给出了包含典型
    发表于 10-10 07:45

    用笔记 | STM32U575/585 MCU 硬件开发入门

    用笔记 | STM32U575/585 MCU 硬件开发入门
    的头像 发表于 09-28 18:13 2708次阅读
    应<b class='flag-5'>用笔记</b> | <b class='flag-5'>STM32</b>U575/585 MCU 硬件开发入门

    HK32MCU应用笔记(十一)| HK32F103xC/D/E的flash读保护应用及注意事项

    HK32MCU应用笔记(十一)| HK32F103xC/D/E的flash读保护应用及注意事项
    的头像 发表于 09-18 10:58 698次阅读
    HK32MCU应<b class='flag-5'>用笔记</b>(十一)| HK32F103xC/D/E的<b class='flag-5'>flash</b>读保护应用及注意事项

    HK32MCU应用笔记(十七)| HK32F103xC/D/E-flash擦写应用及注意事项

    HK32MCU应用笔记(十七)| HK32F103xC/D/E-flash擦写应用及注意事项
    的头像 发表于 09-18 10:58 714次阅读
    HK32MCU应<b class='flag-5'>用笔记</b>(十七)| HK32F103xC/D/E-<b class='flag-5'>flash</b>擦写应用及注意事项

    FLASH擦写操作非法操作解决方案-HK32F030M应用笔记(二十四)

    FLASH擦写操作非法操作解决方案-HK32F030M应用笔记(二十四)
    的头像 发表于 09-18 10:56 381次阅读
    <b class='flag-5'>FLASH</b>擦写操作非法操作解决方案-HK32F030M应<b class='flag-5'>用笔记</b>(二十四)

    基于STM32L4R9I-DISCO的低功耗系统设计

    本动手实验的目的是学会自己构建工程,实现STM32L4R9不同的低功耗模式和理解如何进入、退出的触发机制,并且对比分析实测功耗和理论推导功耗。• 实验1 :STM32L4R9低功耗模式和特性• 任务
    发表于 09-07 07:08

    求助,需要STM32L4R9I-DISCO带的屏幕手册

    需要STM32L4R9I-DISCO带的屏幕手册
    发表于 08-07 15:02

    使用STM32缓存来优化性能与功率效率应用笔记

    电子发烧友网站提供《使用STM32缓存来优化性能与功率效率应用笔记.pdf》资料免费下载
    发表于 08-01 10:02 0次下载
    使用<b class='flag-5'>STM32</b>缓存来优化性能与功率效率应<b class='flag-5'>用笔记</b>