[STM32F3] stm32f302 io性能测试.

[复制链接]
 楼主| 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探头测试
QQ图片20140517164953.jpg
mini1400316424631.jpg

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

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

GPIO 输出带宽.png
备注: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.所以不会太快
mmuuss586 发表于 2014-5-17 20:01 | 显示全部楼层
icecut 发表于 2014-5-17 17:23
另外我示波器,没那么好....

:D
恩,我上次用429也是这个波形,示波器带宽不够了;
就变正弦波了
mmuuss586 发表于 2014-5-17 20:02 | 显示全部楼层
yuanquanquan 发表于 2014-5-17 17:15
为什么我的103的板子IO产生方波信号,感觉上百K就变形了?


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

评论

PWM TOP VALUE = 255 的话, 281kHz 就是极限了, 占空比比较极端时会有问题.  发表于 2014-11-8 22:30
 楼主| 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
yuanquanquan 发表于 2014-5-19 18:29 | 显示全部楼层
mmuuss586 发表于 2014-5-17 20:02
你用PWM输出看看,几百K没啥问题的;
另外你的示波器带宽多少啊?
还有测试方法 ...

嗯,今天重新试了下,5M方波波形还是挺不错的。
yuanquanquan 发表于 2014-5-19 18:31 | 显示全部楼层
icecut 发表于 2014-5-17 21:33
f103测量速度比f302慢一倍.示波器20ns/格的时候波形和302 10ns/div波形相同.

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

3Q。我用PWM的形式重新试了下5M方波是不错的,10M波形就变了。20M差不多是个三角波
mmuuss586 发表于 2014-5-19 18:42 | 显示全部楼层
yuanquanquan 发表于 2014-5-19 18:29
嗯,今天重新试了下,5M方波波形还是挺不错的。

:D
5M方波出来了,确实不错;
 楼主| icecut 发表于 2014-5-19 20:47 | 显示全部楼层
yuanquanquan 发表于 2014-5-19 18:31
3Q。我用PWM的形式重新试了下5M方波是不错的,10M波形就变了。20M差不多是个三角波 ...

主要原因是103性能不够好,iar就不会变出302那么高效的单指令代码.
xlsabc123 发表于 2014-5-22 14:27 | 显示全部楼层
103的是18M,数据手册上有的,我也测试过了
 楼主| icecut 发表于 2014-5-22 18:02 | 显示全部楼层
xlsabc123 发表于 2014-5-22 14:27
103的是18M,数据手册上有的,我也测试过了

18M方波.每个方波包含两个跳变指令.如果用循环输出方波,会后很大折扣.
f3 是36M.手册也有说明
香水城 发表于 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

查看全部评分

shdjdq 发表于 2014-5-23 22:41 | 显示全部楼层
明白了。很多时候,IO的速度很重要
eydj2008 发表于 2014-6-16 21:25 | 显示全部楼层
不错的IC 就是为电机驱动器设计的IC 三个比较器 三相 和二相电机用的 好 正打算用 估计现在这IC 有点难买,存货不多.
还带了FPU 和TI的有得一拼.  TI怎么拼不过ST的价格...
通宵敲代码 发表于 2014-6-16 22:43 | 显示全部楼层
涨姿势了!
 楼主| icecut 发表于 2014-6-17 09:54 | 显示全部楼层
通宵敲代码 发表于 2014-6-16 22:43
涨姿势了!

看我的gpio 物理层那篇**.也有知识
通宵敲代码 发表于 2014-6-17 09:55 | 显示全部楼层
icecut 发表于 2014-6-17 09:54
看我的gpio 物理层那篇**.也有知识

恩,多谢!
小小小小白 发表于 2014-7-2 18:43 | 显示全部楼层
香水城 发表于 2014-5-23 16:55
STM32F302,内核主频72MHz,GPIO模块挂在AHB总线上,M4内核的STR指令单周期,因此:GPIO最高toggle频率=72M ...

手册上好像说最高频率50MHz,看来有点假了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

1120

主题

15360

帖子

588

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