ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

[STM32 H7] STM32H750的最大遗憾:IO输出速度过慢

[复制链接]
1957|49
 楼主 | 2019-12-3 10:48 | 显示全部楼层 |阅读模式
本帖最后由 tzgok 于 2019-12-5 16:37 编辑

STM32H750的遗憾:IO速度居然只能去到16.7MHZ,也就是最快30NS输出一次。
本来,我也是不相信的,拿到开发板后,分别用库函数和寄存器操作,IO输出都是限制到30NS。
相同的情况,搜索了很多,都反馈了这问题,但是,一直没有得到合理的解释和解决。
当然,运算速度那是爽歪歪,超级快,比STM32F429倍儿爽。
针对下面的回复,做个说明:

1,我说的是GPIO输出的速度的问题,回复说什么SDRAM时钟速度,PWM输出速度,定时器速度,这些谁都知道会更高更快。但是这能掩盖GPIO的速度问题吗?,为什么要关心GPIO速度?因为STM32H和FPGA、千兆网、SRAM等外设高速通讯的时候,就要关心IO速率。这些是PWM、SDIO等做不到的。

2,核心频率200MHZ左右的STM32F7的IO输出速度可以达到100MHZ左右,而核心频率400MHZ的STM32H目前实测只能达到16.7MHZ,这就是很多用这个IC的人遇到的问题。

3,遇到同样这个问题的,不单单我,还有很多相同的网友,而且都是用开发板测试的,主频400MHZ的STM32H的IO翻转一次时间是30NS(周期为60NS),主频为480MH的话25NS翻转一次。都是在开发板实测,不是无中生有。

4,这个问题不单单国内用户遇到,国外用户的同样遇到,而且都发到ST的英文社区。这是一个共有问题,而不是我一个人在胡说八道。如下图:
Y3.png
X1.png
Y2.png

使用特权

评论回复

相关资料

| 2019-12-3 16:17 | 显示全部楼层
是不是输出速度没配置好?添加GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH或GPIOx->OSPEEDR |= 3<<y(y是引脚编号)试试?

使用特权

评论回复
 楼主 | 2019-12-3 16:37 | 显示全部楼层
elecns 发表于 2019-12-3 16:17
是不是输出速度没配置好?添加GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH或GPIOx->OSPEEDR |= 3 ...

添加了的,代码默认SPEED都是VERY HIGH

使用特权

评论回复
| 2019-12-3 16:44 | 显示全部楼层
H750是不是没有flash?

使用特权

评论回复
| 2019-12-3 16:51 | 显示全部楼层
tzgok 发表于 2019-12-3 16:37
添加了的,代码默认SPEED都是VERY HIGH

那就真要遗憾了,STM32F7可以去到100多M

使用特权

评论回复
| 2019-12-3 19:07 | 显示全部楼层
我觉得已经超级快了。。。。

使用特权

评论回复
| 2019-12-4 12:16 | 显示全部楼层
这里有点误会。

我刚才用STM32H743测试下,修改BSRR寄存器,简单的IO翻转可以达到40Mhz.
while(1)
{
GPIOB->BSRR =0x00000100;
    GPIOB->BSRR =0x01000000;
          GPIOB->BSRR =0x00000100;
    GPIOB->BSRR =0x01000000;
                GPIOB->BSRR =0x00000100;
    GPIOB->BSRR =0x01000000;
           .........
          GPIOB->BSRR =0x00000100;
    GPIOB->BSRR =0x01000000;
}
这样是CPU跋山涉水去访问GPIO外设执行翻转指令。

你要试GPIO输出能力的话,可以搞个定时器作PWM输出比较方便。


使用特权

评论回复
 楼主 | 2019-12-4 15:10 | 显示全部楼层
香水城 发表于 2019-12-4 12:16
这里有点误会。

我刚才用STM32H743测试下,修改BSRR寄存器,简单的IO翻转可以达到40Mhz.

难道H750不同?下面2张图。
第1张代码:第2张示波器:

p0.png
p1.jpg

使用特权

评论回复

评论

xch 2019-12-4 21:19 回复TA
这只不过是代码执行速度。不是I/O速度 
| 2019-12-4 15:30 | 显示全部楼层
按照你上传的图来看,翻转速度应该是33Mhz.才合理。
2606.png

使用特权

评论回复
 楼主 | 2019-12-4 16:43 | 显示全部楼层
香水城 发表于 2019-12-4 15:30
按照你上传的图来看,翻转速度应该是33Mhz.才合理。

你这个图,25NS翻转一次,估计你的主频应该是480MHZ的吧,,如果我把我的H750主频从400MHZ设置为480MHZ,也是25NS。。

使用特权

评论回复
| 2019-12-5 11:22 | 显示全部楼层
tzgok 发表于 2019-12-4 16:43
你这个图,25NS翻转一次,估计你的主频应该是480MHZ的吧,,如果我把我的H750主频从400MHZ设置为480MHZ, ...

示波器碾压你啊....


使用特权

评论回复
| 2019-12-5 11:24 | 显示全部楼层
用定时器驱动io肯定会快. 我估计总线之类的延迟还是比较明显.

使用特权

评论回复
| 2019-12-5 12:03 | 显示全部楼层
APB 从 72MHZ 上到100MHZ MAX ,  

使用特权

评论回复
| 2019-12-5 15:08 | 显示全部楼层
屁。sdram时钟都上120M了,QSPI也是100M

使用特权

评论回复

评论

icecut 2019-12-5 15:33 回复TA
支持啊....要是早年的我,也这么火爆的怼上去了 
 楼主 | 2019-12-5 16:05 | 显示全部楼层
本帖最后由 tzgok 于 2019-12-5 16:15 编辑

1,我说的是GPIO输出的速度的问题,楼上的说什么SDRAM时钟速度,PWM输出速度,定时器速度,这些傻的都知道会更高更快。但是这能掩盖GPIO的速度问题吗?,为什么要关心GPIO速度?因为STM32H和FPGA等外设高速通讯的时候,就要关心IO速率。

2,核心频率200MHZ左右的STM32F7的IO输出速度可以达到100MHZ左右,而核心频率400MHZ的STM32H目前实测只能达到16.7MHZ,这就是很多用这个IC的人遇到的问题。

3,遇到同样这个问题的,不单单我,还有很多相同的网友,而且都是用开发板测试的,400MHZ的话IO翻转一次是30NS(周期为60NS),480MH的话25NS翻转一次。你看着一些宣传资料就说这不对,那不对,,,难道用开发板实测的都是烧坏脑子了?

4,这个问题不单单国内用户遇到,国外用户的同样遇到,而且都发到ST的英文社区。这是一个共有问题,而不是我一个人在胡说八道。如下图:
X1.png

使用特权

评论回复
| 2019-12-5 16:23 | 显示全部楼层
sdram的不是io速度是什么,你定义io速度难道是指写IO寄存器??硬件IO速度100M完全没问题

使用特权

评论回复
 楼主 | 2019-12-5 16:55 | 显示全部楼层
1137475550 发表于 2019-12-5 16:23
sdram的不是io速度是什么,你定义io速度难道是指写IO寄存器??硬件IO速度100M完全没问题 ...

SDRAM:64位总线阵列--》AHB3总线---》FMC外设
IO输出:32位总线阵列--》AHB4总线---》GPIO外设

总线都不同,有可比性吗?

使用特权

评论回复
| 2019-12-5 16:59 | 显示全部楼层
别说了,楼主,你测到的这个情况我之前也实测到了,一模一样情况。也是16.67MHz。

使用特权

评论回复
| 2019-12-5 17:58 | 显示全部楼层
调试模式下看一下SystemCoreClock是多少

使用特权

评论回复
| 2019-12-5 19:42 | 显示全部楼层
littleshrimp 发表于 2019-12-5 17:58
调试模式下看一下SystemCoreClock是多少

没用,我作为也像楼主一样,实测过的,有发言权,我和楼主测的结果一样,也是16.67MHz,

MCO输出的确可以到100MHz以上,200MHz我也测到过。我示波器带宽只有100MHz,MCO 200MHz输出时候示波器上看到的是200MHz的正弦波。

SystemCoreClock =400MHz 石锤。

F7系列的我没测过,我看网上有人发帖说F7系列的可以上到100MHz以上?


F7和H7结构太复杂,还没有研究,我大概分析,可能的情况就是CPU程序指令并不能直接输出到IO口,要经过总线矩阵什么的,所以会有瓶颈和延迟,等实际到了IO就慢很多了。



至于硬件TIM发出的PWM,硬件SPI等各种硬件波形,这个就不说了, 的确可以跑很高速度,我用示波器实测过,这个至少说明IO口是可以承受这么高的速度的,但是为什么cpu直接执行程序指令翻转IO口,实测的IO翻转速度这么慢,我分析就是芯片里面复杂的结构有瓶颈影响,真正到了IO就慢很多了。


使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表