打印
[STM32F3]

stm32f302 io性能测试.

[复制链接]
9316|41
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
icecut|  楼主 | 2014-5-17 17:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 icecut 于 2014-7-8 21:21 编辑

注意,本测试仅仅测试io性能.

使用nucleo f302r8t6芯片
  for(;;)
  {
    *((volatile int*)0x48000414) =0x2000;
    *((volatile int*)0x48000414) =0x0000;
    *((volatile int*)0x48000414) =0x2000;
    *((volatile int*)0x48000414) =0x0000;
    *((volatile int*)0x48000414) =0x2000;
    *((volatile int*)0x48000414) =0x0000;
    *((volatile int*)0x48000414) =0x2000;
    *((volatile int*)0x48000414) =0x0000;
  }
io上外挂了一个led,使用rigol 10x探头测试



芯片手册:Fast I/O handling allows I/O toggling up to 36 MHz.
我测试数据应该优于这个保守的效果.

下图是香水城回帖中的测试.好牛x的示波器


备注:arm的分支预测似乎没想象的好.




沙发
yuanquanquan| | 2014-5-17 17:15 | 只看该作者
为什么我的103的板子IO产生方波信号,感觉上百K就变形了?

使用特权

评论回复
板凳
icecut|  楼主 | 2014-5-17 17:23 | 只看该作者
另外我示波器,没那么好....

使用特权

评论回复
地板
icecut|  楼主 | 2014-5-17 19:56 | 只看该作者
yuanquanquan 发表于 2014-5-17 17:15
为什么我的103的板子IO产生方波信号,感觉上百K就变形了?

有空我再测试一下103.因为103的手册没有写fast io.所以不会太快

使用特权

评论回复
5
mmuuss586| | 2014-5-17 20:01 | 只看该作者
icecut 发表于 2014-5-17 17:23
另外我示波器,没那么好....

:D
恩,我上次用429也是这个波形,示波器带宽不够了;
就变正弦波了

使用特权

评论回复
6
mmuuss586| | 2014-5-17 20:02 | 只看该作者
yuanquanquan 发表于 2014-5-17 17:15
为什么我的103的板子IO产生方波信号,感觉上百K就变形了?


你用PWM输出看看,几百K没啥问题的;
另外你的示波器带宽多少啊?
还有测试方法

使用特权

评论回复
评论
cool_coder 2014-11-8 22:30 回复TA
PWM TOP VALUE = 255 的话, 281kHz 就是极限了, 占空比比较极端时会有问题. 
7
icecut|  楼主 | 2014-5-17 21:33 | 只看该作者
yuanquanquan 发表于 2014-5-17 17:15
为什么我的103的板子IO产生方波信号,感觉上百K就变形了?

f103测量速度比f302慢一倍.示波器20ns/格的时候波形和302 10ns/div波形相同.

但是依旧是循环最后的分支预测会浪费4个指令周期.极限周期20MHZ,io指令周期40M指令/s[一个波形周期需要2条指令.]

302应该是在40MHZ,官方说明36Mhz,指令周期80M指令/s

使用特权

评论回复
8
yuanquanquan| | 2014-5-19 18:29 | 只看该作者
mmuuss586 发表于 2014-5-17 20:02
你用PWM输出看看,几百K没啥问题的;
另外你的示波器带宽多少啊?
还有测试方法 ...

嗯,今天重新试了下,5M方波波形还是挺不错的。

使用特权

评论回复
9
yuanquanquan| | 2014-5-19 18:31 | 只看该作者
icecut 发表于 2014-5-17 21:33
f103测量速度比f302慢一倍.示波器20ns/格的时候波形和302 10ns/div波形相同.

但是依旧是循环最后的分支 ...

3Q。我用PWM的形式重新试了下5M方波是不错的,10M波形就变了。20M差不多是个三角波

使用特权

评论回复
10
mmuuss586| | 2014-5-19 18:42 | 只看该作者
yuanquanquan 发表于 2014-5-19 18:29
嗯,今天重新试了下,5M方波波形还是挺不错的。

:D
5M方波出来了,确实不错;

使用特权

评论回复
11
icecut|  楼主 | 2014-5-19 20:47 | 只看该作者
yuanquanquan 发表于 2014-5-19 18:31
3Q。我用PWM的形式重新试了下5M方波是不错的,10M波形就变了。20M差不多是个三角波 ...

主要原因是103性能不够好,iar就不会变出302那么高效的单指令代码.

使用特权

评论回复
12
xlsabc123| | 2014-5-22 14:27 | 只看该作者
103的是18M,数据手册上有的,我也测试过了

使用特权

评论回复
13
icecut|  楼主 | 2014-5-22 18:02 | 只看该作者
xlsabc123 发表于 2014-5-22 14:27
103的是18M,数据手册上有的,我也测试过了

18M方波.每个方波包含两个跳变指令.如果用循环输出方波,会后很大折扣.
f3 是36M.手册也有说明

使用特权

评论回复
14
香水城| | 2014-5-23 16:55 | 只看该作者
STM32F302,内核主频72MHz,GPIO模块挂在AHB总线上,M4内核的STR指令单周期,因此:GPIO最高toggle频率=72MHz/2  =  36MHz

STM32F103,内核主频72MHz,但是GPIO模块挂在APBx总线上,M3内核的STR指令单周期,因此:GPIO最高toggle频率=72MHz/4  =  18MHz。为什么除以4?因为指令要过桥,AHB-APB

STM32F072,内核主频48MHz,但是GPIO模块挂在AHB总线上M0内核的STR指令双周期,因此:GPIO最高toggle频率=48MHz/4  =  12MHz。为什么除以4?因为指令双周期

使用特权

评论回复
评分
参与人数 3威望 +14 收起 理由
老鱼探戈 + 2
通宵敲代码 + 6 赞一个,尽管看不大懂!
dong_abc + 6
15
shdjdq| | 2014-5-23 22:41 | 只看该作者
明白了。很多时候,IO的速度很重要

使用特权

评论回复
16
eydj2008| | 2014-6-16 21:25 | 只看该作者
不错的IC 就是为电机驱动器设计的IC 三个比较器 三相 和二相电机用的 好 正打算用 估计现在这IC 有点难买,存货不多.
还带了FPU 和TI的有得一拼.  TI怎么拼不过ST的价格...

使用特权

评论回复
17
通宵敲代码| | 2014-6-16 22:43 | 只看该作者
涨姿势了!

使用特权

评论回复
18
icecut|  楼主 | 2014-6-17 09:54 | 只看该作者
通宵敲代码 发表于 2014-6-16 22:43
涨姿势了!

看我的gpio 物理层那篇**.也有知识

使用特权

评论回复
19
通宵敲代码| | 2014-6-17 09:55 | 只看该作者
icecut 发表于 2014-6-17 09:54
看我的gpio 物理层那篇**.也有知识

恩,多谢!

使用特权

评论回复
20
小小小小白| | 2014-7-2 18:43 | 只看该作者
香水城 发表于 2014-5-23 16:55
STM32F302,内核主频72MHz,GPIO模块挂在AHB总线上,M4内核的STR指令单周期,因此:GPIO最高toggle频率=72M ...

手册上好像说最高频率50MHz,看来有点假了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:个人发展,技术咨询,点此  嵌入式arm爱好者←← +→→点击-->小 i 精品课全集,给你全方位的技能策划~~←←

1120

主题

15359

帖子

584

粉丝