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


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

    关注

    6069

    文章

    45100

    浏览量

    654105
  • STM32
    +关注

    关注

    2296

    文章

    11039

    浏览量

    366752

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    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 ?6次下载

    电压反馈与电流反馈运算放大器应用笔记

    本应用笔记比较了电压反馈型(VFB)和电流反馈型(CFB)运算放大器的基本性能特征,面向不熟悉CFB放大器的工程师。熟悉该主题的读者可以直接阅读第9页的表l,该表总结了本应用笔记中讨论
    的头像 发表于 02-21 10:37 ?726次阅读
    电压反馈与电流反馈运算放大器应<b class='flag-5'>用笔记</b>

    ADS830/831采样效果不理想是什么原因导致的?

    在使用贵公司的ADS830/831芯片时,采样效果不理想。 在此提出问题: 1 FPGA给AD提供的CLK在80M时是否需要通过5V上拉把CLK信号增强。 2AD输出数据是否要加上电阻,实现
    发表于 02-17 07:58

    CDK应用笔记

    电子发烧友网站提供《CDK应用笔记.pdf》资料免费下载
    发表于 01-16 16:17 ?0次下载
    CDK应<b class='flag-5'>用笔记</b>

    ES32VF2264应用笔记

    电子发烧友网站提供《ES32VF2264应用笔记.pdf》资料免费下载
    发表于 01-16 16:14 ?0次下载
    ES32VF2264应<b class='flag-5'>用笔记</b>

    ES7P0214应用笔记

    电子发烧友网站提供《ES7P0214应用笔记.pdf》资料免费下载
    发表于 01-16 16:06 ?0次下载
    ES7P0214应<b class='flag-5'>用笔记</b>

    ES7P0213应用笔记

    电子发烧友网站提供《ES7P0213应用笔记.pdf》资料免费下载
    发表于 01-16 15:26 ?0次下载
    ES7P0213应<b class='flag-5'>用笔记</b>

    AT32F423 PWC应用笔记

    电子发烧友网站提供《AT32F423 PWC应用笔记.pdf》资料免费下载
    发表于 01-15 15:30 ?0次下载
    AT32F423 PWC应<b class='flag-5'>用笔记</b>

    S32K3xxICU应用笔记

    S32K3xxICU应用笔记
    发表于 12-30 15:38 ?2次下载

    使用JESD204B接口,线速率怎么计算?

    ;#039;=12,M=4,F=8,S=5,R=8,L=4。那按fLINERATE=fs*R=500MHz*8=
    发表于 11-18 07:10

    将OPA690接成减法器,为什么在负半周期是信号不理想

    我将OPA690接成减法器,为什么在负半周期是信号不理想?输入信号为正弦,希望输出信号在正半周期幅度减小0.5V,负半周期输出为零,电路接法如下,结果如示波器所示,正半周期较理想,负半周期输出信号反而为正了,这是怎么回事?
    发表于 09-24 07:14

    基于Pytorch训练并部署ONNX模型在TDA4用笔记

    电子发烧友网站提供《基于Pytorch训练并部署ONNX模型在TDA4用笔记.pdf》资料免费下载
    发表于 09-11 09:24 ?0次下载
    基于Pytorch训练并部署ONNX模型在TDA<b class='flag-5'>4</b>应<b class='flag-5'>用笔记</b>

    STM32CUBEMX(10)--Flash读写

    概述 本例程主要讲解如何对芯片自带Flash进行读写,用芯片内部Flash可以对一些需要断电保存的数据进行保存,无需加外部得存储芯片,本例程采用的是STM32F030R8T6,64K大小的Fl
    发表于 09-10 15:36