定时器翻转io口的好处_请教一个 STM32H7 IO 翻转速度的问题

回复: 71

请教一个 STM32H7 IO 翻转速度的问题

(65536350)

出0入0汤圆

电梯直达

发表于 2018-11-23 14:45:20

|

只看该作者

|正序浏览

|阅读模式

如题,由于案子需要用到高速的IO通信,还是特殊协议的那种,担心STM32F1和STM32F4 端口速度以及数据处理速度跟不上,就买了个STM32H7 的开发板,想试一下看看H7 的 IO 翻转速度有多快。

但结果有点出乎意料,用正点原子的例程,STM32H7 主频设置到400MHz,主循环里面就下面这样:

while(1)

{

GPIOB->ODR = 1;

GPIOB->ODR = 0;

}

IO 口示波器实测速度才 16.7MHz 左右;

然后,为了避免其他因素的干扰,我又尝试,直接把 HSI 8分频,也就是64MHz/8 = 8MHz 作为系统时钟,各路总线都不再分频,跑起来,IO 的翻转速度才670KHz 左右;

相对于 400MHz 的时候,HCLK 是系统时钟 二分频了的,也就是说总线时钟 200MHz,200MHz/8MHz * 670KHz = 16.75MHz,这个和之前的测试结果基本吻合。

网上一查,发现也有人和我遇到同样的问题,或者说是现象,但却没有寻找到有效的提高 IO 翻转速度的方法。

那么问题来了,STM32H7 这样的 IO 翻转速度表现,甚至远低于 STM23F4 的水准,这显然应该是不可能的,这里面肯定有哪里没有配置正确吧,我猜;

但是我用自己贫瘠的英语水平以及比较low的专业能力,翻看了好几天参考手册并尝试修改各种时钟配置,一直没有解决,不知道坛子里有没有遇到同样问题的人,或者有大神给指点迷津。

发表于 2020-8-13 19:38:06

|

只看该作者

去瞅瞅  NXP 的芯片 ,有能串并 转换 并且自定义的 硬件,很适合特殊接口。

(11176667)

出0入0汤圆

发表于 2020-8-13 18:40:03

来自手机

|

只看该作者

4317mjh 发表于 2020-4-30 13:45

今天测试双核的H7,通过GPIO-BSRR寄存器翻转IO;

系统时钟,M7是400M,M4是200M;

专门给你用来翻转的

(11206849)

出0入0汤圆

楼主|

发表于 2020-8-13 10:17:01

|

只看该作者

是不是就因为这个,出了个双核,另一个就是给你们HLHLHLHL的

(11689626)

出0入0汤圆

发表于 2020-8-7 20:10:44

来自手机

|

只看该作者

測試過,480兆h750,高低高低io是25ns改變狀態,推算一次io要12個時鐘完成

(11724677)

出0入4汤圆

发表于 2020-8-7 10:26:33

|

只看该作者

F767的汇编指令:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

(11724815)

出0入4汤圆

发表于 2020-8-7 10:24:15

|

只看该作者

请问,F7的汇编也会占据时钟周期

那么为什么实验证明F7是能够软件翻转达到108MHZ的波形呢?

手册里确实也有写。

最后一个疑问,每个汇编指令消耗的时钟周期是固定的吗,还是具体芯片具体规定?(不好意思,在手册里没找到)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

(20266320)

出0入0汤圆

发表于 2020-4-30 13:45:50

|

只看该作者

今天测试双核的H7,通过GPIO-BSRR寄存器翻转IO;

系统时钟,M7是400M,M4是200M;

M7只能达到16.67MHz;

但是M4,能达到100MHZ;

真实奇怪,M4也走了一个总线桥,但是还是能达到100MHZ。

只能解释为AXI转AHB桥的要比AHB转AHB的要慢很多。

发表于 2019-3-25 15:04:54

|

只看该作者

测了一下,H743 IO 真的只有 16.7M  而 F767 能达到 108M

(63196419)

出0入0汤圆

楼主|

发表于 2018-12-20 16:44:11

|

只看该作者

大神啊,我感觉,你这个解释很合理,看起来,H7真的就这样了,IO口软件来跑很吃亏

(63391586)

出0入0汤圆

发表于 2018-12-18 10:31:24

|

只看该作者

我也测了一下F7可达100M翻转,谁个解释下

49:         {

0x080016A8 4805      LDR           r0,[pc,#20]  ; @0x080016C0

0x080016AA 4669      MOV           r1,sp

0x080016AC F7FEFE8E  BL.W          HAL_GPIO_Init (0x080003CC)

50:                 GPIOC->BSRR = 0x00000008U;

0x080016B0 4803      LDR           r0,[pc,#12]  ; @0x080016C0

0x080016B2 3018      ADDS          r0,r0,#0x18

51:                 GPIOC->BSRR = 0x00080000U;

0x080016B4 0421      LSLS          r1,r4,#16

0x080016B6 6004      STR           r4,[r0,#0x00]

0x080016B8 6001      STR           r1,[r0,#0x00]

48:         while (1)

0x080016BA E7FC      B             0x080016B6

0x080016BC 3830      DCW           0x3830

0x080016BE 4002      DCW           0x4002

0x080016C0 0800      DCW           0x0800

0x080016C2 4002      DCW           0x4002

0x080016C4 F04F7040  MOV           r0,#0x3000000

0x080016C8 EEE10A10  VMSR           FPSCR, r0

0x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值