打印

STM32 GPIO 的几种速度的解释?

[复制链接]
19042|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yinguangwei|  楼主 | 2010-12-17 21:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、在网上看到一篇**:用示波器测GPIO的速度,请问一下,这个速度就是指 GPIO的翻转速度吗 ?

翻转速度是不是可以这样理解:程序中往输出寄存器写0,然后再也写入1,信号传输到引脚上,在GPIO引脚检测从0变为1所经历的时间? 这个时间是不是就是指 信号从寄存器传输到引脚所经历的时间呢?

2、还有一个就是那个2M,10M,50M,这类速度指信号的响应速度,即是选择的驱动电路的响应速度。
能否这样理解: 驱动电路的响应速度就是 这个驱动电路多久可以驱动 外部电路一次?

3、信号的输出速度: 这个速度与程序有关,就是指在程序指定的多久输出一次信号,就好比多长时间点亮一次LED?

小弟对这几个概念比较迷糊,请帮解释指导下,不胜感激
沙发
airwill| | 2010-12-17 21:49 | 只看该作者
本人也很迷惑
原因是:
1. GPIO 的时钟每个 IO 口有直接的时钟允许/禁止控制.
2. 关于 2M,10M,50M 的驱动. 却没有提到分频电路, 另外也通常不

使用特权

评论回复
板凳
airwill| | 2010-12-17 22:08 | 只看该作者
本人也很迷惑
原因是:
1. GPIO 的时钟每个 IO 口有直接的时钟允许/禁止控制.
2. 关于 2M,10M,50M 的驱动. 却没有提到分频电路, 另外也通常不会这样分频, 而通常象 2,4,8 这样的分频比较多, 却很少 5,25 倍的分频. 另外这个驱动频率也没有提到 CPU 主频的影响
所以我推测, 这个频率不是真正的 IO 口驱动时钟, 而从其他的说法推测, 可能是驱动能力方面的指标. 也就是 2M,10M,50M 是三级驱动能力. 那么驱动能力为什么说成是频率呢, 我推测是相对于标称的引脚电容的. 这样驱动能力就能反映出驱动的电平变化速度了.

使用特权

评论回复
地板
香水城| | 2010-12-18 13:35 | 只看该作者
端口配置的2M、10M、50M选项表示端口的带宽设置。

使用特权

评论回复
5
yinguangwei|  楼主 | 2010-12-18 16:22 | 只看该作者
4# 香水城
请教香城主,端口的带宽速度 具体怎么理解呢? 最近看这个问题,也差了很多资料,依然迷糊。

使用特权

评论回复
6
mbutterfly| | 2010-12-18 19:34 | 只看该作者
我的理解:1,GPIO的速度应该是GPIO的翻转速度。应该是从低电平到高电平或高到低经历的时间倒数。

使用特权

评论回复
7
香水城| | 2010-12-19 10:40 | 只看该作者
1)用示波器观察到的翻转时间是综合的时间,包括取指令的时间、指令执行的时间、指令执行后信号传递到寄存器的时间(这其中可能经过很多环节,比如AHB、APB、总线仲裁等),最后才是信号从寄存器传输到引脚所经历的时间。

2)端口配置的2M、10M、50M选项表示端口的带宽设置。带宽就是一个驱动电路可以不失真地通过信号的最大频率。如果信号频率为10MHz,而你配置了2MHz的带宽,则10MHz的方波很可能就变成了正弦波。
就好比是公路的设计时速,汽车速度低于设计时速时,可以平稳地运行,如果超过设计时速就会颠簸,甚至翻车。

使用特权

评论回复
8
BitFu| | 2010-12-19 18:53 | 只看该作者
为什么不默认设置成最高(50M)呢?
那设置成2M,10M有什么好处?

使用特权

评论回复
9
yinguangwei|  楼主 | 2010-12-19 18:59 | 只看该作者
7# 香水城
对于用示波器测量的翻转时间,既然这么多影响因素,那结果应该有不少的误差,网上看有朋友说达不到18MHz,也是这个原因吧, 对于手册上指出的最大翻转18MHz,ST 是怎么测出来了呢?~~

下面的引脚速度终于搞明白了,刚开始把带宽和速度没联系上,这里的带宽是一个频率范围。而手册上总说速度,没迷糊过来 呵呵

带宽就是指一个驱动电路通过信号不失真的最大频率,这句话一语中的!
非常感谢城主!

使用特权

评论回复
10
airwill| | 2010-12-19 21:35 | 只看该作者
这个带宽室怎么控制和实现的呢?

使用特权

评论回复
11
xwj| | 2010-12-19 21:44 | 只看该作者
同样很疑惑,同问。

使用特权

评论回复
12
香水城| | 2010-12-20 08:44 | 只看该作者
为什么不默认设置成最高(50M)呢?
那设置成2M,10M有什么好处?
BitFu 发表于 2010-12-19 18:53


带宽高的驱动器耗电大、噪声也大,带宽低的驱动器耗电小、噪声也小。使用合适的驱动器可以降低功耗和噪声。

使用特权

评论回复
13
香水城| | 2010-12-20 08:49 | 只看该作者
7# 香水城
对于用示波器测量的翻转时间,既然这么多影响因素,那结果应该有不少的误差,网上看有朋友说达不到18MHz,也是这个原因吧, 对于手册上指出的最大翻转18MHz,ST 是怎么测出来了呢?~~

下面的引脚速度终 ...
yinguangwei 发表于 2010-12-19 18:59


用示波器观察到的翻转时间是综合的时间,包括取指令的时间、指令执行的时间、指令执行后信号传递到寄存器的时间(这其中可能经过很多环节,比如AHB、APB、总线仲裁等),最后才是信号从寄存器传输到引脚所经历的时间。这么多影响因素之中,在一种时钟配置组合(CPUCLK, AHBCLK, APBCLK等)确定之后,只有总线仲裁是可变的,但如果没有DMA操作则总线仲裁时间也就不变了,所以手册上指出的最大翻转18MHz,是在所有时钟频率配置为规定的最大频率,同时没有DMA操作的时候得到的。

使用特权

评论回复
14
香水城| | 2010-12-20 08:51 | 只看该作者
这个带宽室怎么控制和实现的呢?
airwill 发表于 2010-12-19 21:35


这是电路设计和芯片设计的问题,我也不知道,我只管使用,:lol

使用特权

评论回复
15
jgphu| | 2010-12-20 09:38 | 只看该作者
STM的芯片这方面介绍的确不够好。
关于这个频率也没有作介绍,还有I2C那个输入时钟频率同样让人不可理解。

使用特权

评论回复
16
McuPlayer| | 2010-12-20 09:57 | 只看该作者
一般用途直接用50M的就可以了
低带宽的抗干扰力更强,相当于加了一级低通滤波,干掉了高频毛刺
根据自己的需求来做决定吧

使用特权

评论回复
17
yinguangwei|  楼主 | 2010-12-20 10:38 | 只看该作者
这是电路设计和芯片设计的问题,我也不知道,我只管使用,:lol
香水城 发表于 2010-12-20 08:51



这个驱动带宽是不是跟 GPIO 的端口结构有关那? 但是输出驱动结构中没有指明速度选择影响什么硬件....

使用特权

评论回复
18
tumin| | 2012-7-14 14:30 | 只看该作者
学习了

使用特权

评论回复
19
zh5202| | 2012-7-14 15:23 | 只看该作者
1)用示波器观察到的翻转时间是综合的时间,包括取指令的时间、指令执行的时间、指令执行后信号传递到寄存器的时间(这其中可能经过很多环节,比如AHB、APB、总线仲裁等),最后才是信号从寄存器传输到引脚所经历的时 ...
香水城 发表于 2010-12-19 10:40

香主,按照上面的说法:那GPIO的翻转时间就是CPU从准备翻转GPIO端口到实际操作其翻转所经历的时间了,可是这个时间和GPIO翻转速度又有什么关系呢?是不是GPIO翻转速度就是GPIO端口翻转一次所经历的时间呢?
第二个就是,大家讨论的很好,但是楼主的第三个问题好像没有人回答啊:什么是信号输出速度?小弟对这个也是比较迷惑?它与输出带宽有什么联系呢?

使用特权

评论回复
20
zh5202| | 2012-7-14 16:28 | 只看该作者
还有,香主说的:用示波器观察到的翻转时间是综合的时间,包括取指令的时间、指令执行的时间、指令执行后信号传递到寄存器的时间(这其中可能经过很多环节,比如AHB、APB、总线仲裁等),最后才是信号从寄存器传输到引脚所经历的时间。那意思不用示波器还有一种翻转时间了,要是有的话,又是指什么呢?

使用特权

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

本版积分规则

10

主题

101

帖子

1

粉丝