社区导航

 

搜索
查看: 4017|回复: 18

[原创] STM32L476和STM32F746的外部Flash复制文件速度对比

[复制链接]

1万

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

发表于 2017-5-2 22:31 | 显示全部楼层 |阅读模式
本帖最后由 dcexpert 于 2017-5-3 15:10 编辑

前一段时间,做了STM32L476-Disco开发板的外部Flash速度测试,发现它的速度很慢。因为micropython中目前使用了标准SPI方式访问,而不是更高速度的QSPI方式,这样使得访问速度非常慢。

今天想到STM32F746上也有一个16M的Flash,可以做一下对比。因为STM32F746DISCO的文件中没有Flash部分,所以就稍微研究了一下,将STM32L476-DISCO的Flash定义移植过去(因为两个开发板有不少差异,移植过程中折腾了几次,具体过程以后在写吧)。

为了保证在相同环境下测试。先从github上更新micropython代码,然后分别编译两个板子文件,并写入开发板。再将一个362KB的文件分别复制到两个开发板的PYBFLASH磁盘,通过时间比较速度(使用手表计时,精度大约在1秒左右)。

STM32L476-DISCOSTM32F746-DISCO
时间210秒55秒

从时间看,STM32F746的明显快很多,这也反映出Cotex-M7内核的性能要快不少。



此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处




回复

使用道具 举报

6938

TA的帖子

17

TA的资源

版主

Rank: 6Rank: 6

发表于 2017-5-2 22:52 | 显示全部楼层
外部flash读写速度还和内核性能有这么大影响?不应该是主要取决于IO速度和prog时间吗?

点评

底层驱动部分还没有看,这个结果应该与GPIO和SPI的速度有关,另外官方代码估计也没有进行优化,远远没有达到STM32例程的速度,使用QSPI会快很多。  详情 回复 发表于 2017-5-2 23:01
training


回复

使用道具 举报

1万

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

 楼主| 发表于 2017-5-2 23:01 | 显示全部楼层
白丁 发表于 2017-5-2 22:52
外部flash读写速度还和内核性能有这么大影响?不应该是主要取决于IO速度和prog时间吗?

底层驱动部分还没有看,这个结果应该与GPIO和SPI的速度有关,另外官方代码估计也没有进行优化,远远没有达到STM32例程的速度,使用QSPI会快很多。


回复

使用道具 举报

129

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-5-3 09:19 | 显示全部楼层
个人觉得 时钟和模式是影响速度的主要原因。


回复

使用道具 举报

787

TA的帖子

2

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2017-5-3 09:36 | 显示全部楼层
F7肯定是要用QSPI的,速度提高非常多,够用了~
物致DIY 欢迎你的加入~
QQ群:646461928 公众号:智物知心致成
小店


回复

使用道具 举报

206

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2017-5-3 10:29 来自手机 | 显示全部楼层
个人觉得这个数据不科学。因为,stm32的spi时钟可以轻松上10M,传递一个500k的文件,最多不超过1秒,再加上flash写的速度,超过10秒都很难。

点评

主要目的是看看micropython对外部flash的使用,看起来现在还不太完善,性能有待提高,还不如用SPI直接挂载SD的速度。而内部flash的性能还可以,就是容量不大。等待官方升级驱动,提高速度。  详情 回复 发表于 2017-5-3 10:40


回复

使用道具 举报

1万

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

 楼主| 发表于 2017-5-3 10:40 | 显示全部楼层
zxq6 发表于 2017-5-3 10:29
个人觉得这个数据不科学。因为,stm32的spi时钟可以轻松上10M,传递一个500k的文件,最多不超过1秒,再加上f ...

主要目的是看看micropython对外部flash的使用,看起来现在还不太完善,性能有待提高,还不如用SPI直接挂载SD的速度。而内部flash的性能还可以,就是容量不大。等待官方升级驱动,提高速度。


回复

使用道具 举报

4193

TA的帖子

9

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2017-5-3 12:10 | 显示全部楼层
F7的系统时钟应该比L476的系统时钟要高,所以对应到SPI外设的总线时钟也应该比L476大一些吧,F7还没有用过哦。。。。。

点评

标题应该改成复制文件速度对比,这样就清楚了,不是单纯的比较系统主频、SPI速度。 F7现在太贵,估计用的人不会多,等两年就会降很多了。  详情 回复 发表于 2017-5-3 15:11


回复

使用道具 举报

1万

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

 楼主| 发表于 2017-5-3 15:11 | 显示全部楼层
huaiqiao 发表于 2017-5-3 12:10
F7的系统时钟应该比L476的系统时钟要高,所以对应到SPI外设的总线时钟也应该比L476大一些吧,F7还没有用过 ...

标题应该改成复制文件速度对比,这样就清楚了,不是单纯的比较系统主频、SPI速度。

F7现在太贵,估计用的人不会多,等两年就会降很多了。

点评

嗯嗯,是的F7的成本毕竟是太高,我们都之前用F4的,发现成本较高后,用F103了。。。。。  详情 回复 发表于 2017-5-3 18:41


回复

使用道具 举报

4193

TA的帖子

9

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2017-5-3 18:41 | 显示全部楼层
dcexpert 发表于 2017-5-3 15:11
标题应该改成复制文件速度对比,这样就清楚了,不是单纯的比较系统主频、SPI速度。

F7现在太贵,估计 ...

嗯嗯,是的F7的成本毕竟是太高,我们都之前用F4的,发现成本较高后,用F103了。。。。。

点评

F4性能也不错的,现在价格也降下来了。  详情 回复 发表于 2017-5-3 20:47


回复

使用道具 举报

1万

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

 楼主| 发表于 2017-5-3 20:47 | 显示全部楼层
huaiqiao 发表于 2017-5-3 18:41
嗯嗯,是的F7的成本毕竟是太高,我们都之前用F4的,发现成本较高后,用F103了。。。。。

F4性能也不错的,现在价格也降下来了。

点评

我们之前的板子一块板子上就1pcs F045,64腿的。 加上ti的电源芯片,电机驱动芯片啊之类的,还有高速光耦。成本就上来了  详情 回复 发表于 2017-5-3 20:56


回复

使用道具 举报

4193

TA的帖子

9

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2017-5-3 20:56 | 显示全部楼层
dcexpert 发表于 2017-5-3 20:47
F4性能也不错的,现在价格也降下来了。

我们之前的板子一块板子上就1pcs F045,64腿的。
加上ti的电源芯片,电机驱动芯片啊之类的,还有高速光耦。成本就上来了


回复

使用道具 举报

1734

TA的帖子

4

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2017-5-4 09:09 | 显示全部楼层
完全是不同一个级别,


回复

使用道具 举报

208

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-5-4 19:11 | 显示全部楼层
这个怎么能这么比呢,,


回复

使用道具 举报

12

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2020-3-14 10:34 | 显示全部楼层

1.STM32L476使用的是GPIO模拟的SPI,自然速度要慢。STM32F746使用硬件QSPI,会快很多。

2.但也不能简单从你测的这个时间上得出M7性能比M4强的结论(当然M7确实比M4强)。

3.这里速度慢我个人认为主要是SPI FLASH擦除速度太慢。以W25Q256为例,Sector(4KB)擦除时间在45-400mS。

4.如果按362KB计算,FLASH擦除时间最少是(362KB/4KB)*0.045S = 4.07S   最大(362KB/4KB)*0.4S = 36.2S。

5.再加上FLASH写时间,一个PAGE(256Byte)大概在0.7-3mS。(362KB/256B)*0.003=4.344S。

6.再加上一些其它时间开销,55s感觉是差不多的。

7.但QSPI读取FLASH是非常快的,把.py文件保存到板时慢。MCU读取执行非常快,甚至比存在SD卡上读取还要快。

8.我自己做了块Micropython板,STM32F767VI,写了QSPI驱动加到Micropython中,2xFLASH,QSPI采用2xBank x 4Line模式,302KB的文件写入也需要22S之多。

点评

这是L4和M7的简单对比,L4的运行性能并不算好,但是低功耗特性不错。   目前的mpy没有启用QSPI,虽然芯片支持QSPI,但程序仍然使用的是SPI方式。这一点可能是考虑兼容性问题。  详情 回复 发表于 2020-3-14 11:29


回复

使用道具 举报

1万

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

 楼主| 发表于 2020-3-14 11:29 | 显示全部楼层
zengyi703 发表于 2020-3-14 10:34 1.STM32L476使用的是GPIO模拟的SPI,自然速度要慢。STM32F746使用硬件QSPI,会快很多。 2.但也不能简单 ...

这是L4和M7的简单对比,L4的运行性能并不算好,但是低功耗特性不错。

 

目前的mpy没有启用QSPI,虽然芯片支持QSPI,但程序仍然使用的是SPI方式。这一点可能是考虑兼容性问题。



回复

使用道具 举报

12

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2020-3-14 11:33 | 显示全部楼层
dcexpert 发表于 2020-3-14 11:29 这是L4和M7的简单对比,L4的运行性能并不算好,但是低功耗特性不错。   目前的mpy没有启用QSP ...

嗯嗯,我这些天闲着没事,做了块至此MicroPython的小板,调通了用QSPI硬件方式,速度也是上不去。

这类FLASH的擦除和写入速度也就这样了。

 

很高兴楼主回复,大家共同讨论。

点评

理论上QSPI更快,对于大量数据读写时性能有改善,但是普通单片机不能发挥它的性能,usb是usb 2.0接口,也限制通信速度。  详情 回复 发表于 2020-3-14 16:55


回复

使用道具 举报

1万

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

 楼主| 发表于 2020-3-14 16:55 | 显示全部楼层
zengyi703 发表于 2020-3-14 11:33 嗯嗯,我这些天闲着没事,做了块至此MicroPython的小板,调通了用QSPI硬件方式,速度也是上不去。 这 ...

理论上QSPI更快,对于大量数据读写时性能有改善,但是普通单片机不能发挥它的性能,usb是usb 2.0接口,也限制通信速度。



回复

使用道具 举报

12

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2020-3-14 20:59 | 显示全部楼层
dcexpert 发表于 2020-3-14 16:55 理论上QSPI更快,对于大量数据读写时性能有改善,但是普通单片机不能发挥它的性能,usb是usb 2.0接口,也 ...

对,STM32这种MCU,USB大部分是Full Speed的,最高才12Mbps。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-6-1 16:15 , Processed in 0.553574 second(s), 40 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表