搜索
查看: 4559|回复: 2

[原创] 550MHz!STM32H730入坑体验(一)

[复制链接]

该用户从未签到

0

主题

1

帖子

0

蝴蝶豆

初级会员

最后登录
2021-3-10
发表于 2021-2-12 23:29:29 | 显示全部楼层 |阅读模式
声明:本文为作者原创文章,转载请注明链接。

前言

STM32H730(以下简称H730)系列是ST于2020年新发布的基于Cortext-M7内核的高性能MCU产品。作为性价比传奇STM32H750(以下简称H750)同一产品线的新品,其最大的特点就是主频由H750的480M提升到了550MHz,并提供了双模Octo-SPI的支持。
2021年1月末,STM32的官方旗舰店放出了少量STM32H730VBT6的样品,早有关注的我立即购买了一颗。由于H730VB的Pinout是和H750VB兼容的,所以暂时焊接到H750的核心板上进行一些简单的测试。
本系列文章预期会有2到3篇的样子,所有的这些文章在撰文时都将以同产品线的H750作为参考。
主角:STM32H730VBT6(可以看到,版本号已经到了Z,生产日期为2020年第21周)

对比
看H730的命名,我们可能会觉得H730是H750的“低配版”。其实ST官方在宣传的时候也是这么暗示的,甚至H730的售价也比H750要低的多(撰文时,H750VB的10k官方指导价为$3.685,H730VB则为2.828,便宜约23%,当然,有没有货和实际拿到货是多少钱那就是另一个故事了)。但是事实上H730相较于H750并不是简单的减配,下边我们就来详细的看看H730于H750的那些异同点。
image-20210127233919845.png

我们先来看H730相较H750比较重要的缩水部分:
首先,经简单测试,H750的隐藏福利——高达2M的片内Flash似乎已经没了。STLinkUtility完全无法识别H730,而CubeProgrammer虽然能识别出8个128K的Sector,也能读取这些Sector的数据(都是0xFF),但是无法编程。真实情况如何还得进一步研究。当然,严格来说,H750也是128KB的Flash,所以这条其实算不得缩水。

image-20210127234545648.png


其次是内存大小,H730的内存由H750的1M缩水到了564KB,缩水将近一半。当然,虽然此缩水看起来触目惊心,但是由于D1域的AXI-SRAM依然有320K,所以实际使用中可玩性并没有下降太多,就是没H750那么富裕了。此外,RAM这块儿还有一个缩水的地方,那就是H730最高支持的SDRAM位宽由32bit降低到了24bit,虽然对于LTDC这类应用影响不大,但是多少还是会给内存需求较多的场景(如图形库,多媒体解码,机器学习等)带来一定的影响。
image-20210127235657573.png

最后是一些外设:硬件JPEG解码没了(这个是最最令我痛心的了)。少了JPEG解码,这就意味着一些对硬件JPEG优化比较好的图形库(比如TouchGFX)将无法发挥出100%的实力。也没法像H750那样流畅播放高分辨率的MJPEG编码的视频了。虽然高主频会弥补一些,但是始终没有硬件JPEG来得爽快。还有就是内置的Trace Buffer由H750的4KB缩水到了2KB,缩水了一半,暂时还看不出这对调试有什么影响。HRTIM也没了,这点挺奇怪的,H730有对于电机和数字电源控制类应用的针对性增强,而HRTIM显然对这些方面的应用很重要。
主要的缩水部分就是这些了。说完了缩水,我们再来谈谈增强的部分。比起缩水,这些增强的部分显然更值得关注一些:
首先,最值得关注的自然是高达550MHz的主频了,这次不像H750刚开始Y版本还是400M,直接一上来就是550MHz拉满。虽说主频不代表一切,但是在MCU这块儿,尤其是M7高性能MCU这块儿,主频对性能的影响还是最关键的因素。(暗搓搓说一句,隔壁NXP都已经1GHz了,ST真的不准备做点什么吗?)

image-20210128003700288.png

为了配合这么高的主频,H730的L1-Cache也由H750的16K I-Cache+16K D-Cache增加到了32K I-Cache+32K D-Cache,整整翻了一倍。这个容量已经超过市面上大部分MCU的SRAM大小了。从以往的经验来看,L1-Cache的提升会大幅度减少Cache Miss的情况,有效增加热点代码和数据的执行和访问效率。
然后就是双模Octo-SPI了。依然支持从外置的Octo-SPI Flash运行代码(XIP)。由于内置的Flash只有128K,所以Octo-SPI的支持可谓是雪中送碳了。配合增强的L1-Cache,ST甚至宣称可以让外部Flash中的代码访问延迟也达到0-wait。此外,混合型Hyper-RAM的支持也为H730的内存扩展提供了另一个较为简单的方法,这对于H730VB这种无法挂接SDRAM的型号而言显得更为重要。还有,考虑到外置代码的安全性问题,H730添加了动态解密技术来保证外部代码的安全。
最后是一些外设的更新:32bit的Timer增加到了4个(H750是2个)。模拟外设(ADC,DAC,COMP,OPAMP)的性能得到了全面提升(尤其是DAC,增强到了5MSPS,5倍的提升)。增加了一个CORDIC协处理器用来为一些数学计算提供硬件加速(如三角函数),这会使得如电机控制、计量、信号处理和许多其他应用得到增强(所以为啥去掉了HRTIM?)。内置了SMPS。还有就是ST宣传H730的功耗比起H750有了明显的下降(希望H730别像H750那么烫了)。
点灯
对于一款MCU,我们到手做的第一件事当然是点灯了。

Video_2021-01-28_011538.gif

当然只这样点灯没意思,我们来点高级的。

网传测H750的GPIO通过直接操作寄存器进行电平翻转速率大约为16MHz,这也是H750一直被诟病的地方之一。现在,我们来实际做一下实验看看,实验代码为:

image-20210128012351400.png

这里的开发环境为CubeIDE,编译器为GCC,开启O3优化,MCU关闭L1-Cache,GPIO-Speed设置为VeryHigh,主频和总线频率均设定为手册上的最大值
先看H750:实测翻转速率在约20MHz,果然如网上所讲,不是很快。要知道通过外设(如FMC)控制GPIO时,GPIO的翻转频率可以达到133MHz!与这个频率相比,直接控制GPIO寄存器时的翻转速率可以说是龟速。

image-20210128012611480.png

然后是H730:实测翻转速率约23MHz。嗯。。。。好吧,沾了主频提升的光(约15%,与主频的提升基本一致),略有改善。

image-20210128012706471.png

作为对比,我们来看看STM32F730R8(主频216MHz)的翻转速率,108MHz不带含糊的:

image-20210128014218815.png

所以你要说ST没有人为限制这个东西,我是不信的。至于限制原因嘛,我就不知道了。好在这种极端的使用场景并不多,所以影响并不大。但总归是一个小小的遗憾吧。



结语
时间所限,对于H730还没有深入进行研究。随后待把玩了之后,我会继续更新关于H730的更多使用体验,请大家关注。受限于本人的技术和能力,文章所讲的内容无法保证100%准确,有不对之处欢迎大家指摘。谢谢大家的围观~

回复

使用道具 举报

该用户从未签到

29

主题

322

帖子

15

蝴蝶豆

论坛元老

最后登录
2021-4-23
发表于 2021-2-17 14:43:04 | 显示全部楼层
感谢分享。IO翻转速度是否和生产工艺或芯片的设计有关?
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

1

帖子

0

蝴蝶豆

初级会员

最后登录
2021-3-10
 楼主| 发表于 2021-2-25 16:19:47 | 显示全部楼层
pythonworld 发表于 2021-2-17 14:43
感谢分享。IO翻转速度是否和生产工艺或芯片的设计有关?

不太清楚,我感觉要么是故意做的限制,要么跟H7的总线设计有关系。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-5-2 17:36 , Processed in 0.183295 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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