STM32的GPIO输出SPEED怎么设置?

[复制链接]
 楼主| YUCHUN0607 发表于 2010-12-2 08:17 | 显示全部楼层 |阅读模式
本帖最后由 YUCHUN0607 于 2010-12-2 08:23 编辑

如题,
假如我实际的输出速度与设置的不符会产生什么结果?
另外,当设置成输入时,怎么设置是上拉,怎么设置是下拉?
IJK 发表于 2010-12-2 10:07 | 显示全部楼层
如题,
假如我实际的输出速度与设置的不符会产生什么结果?
另外,当设置成输入时,怎么设置是上拉,怎么设置是下拉?
YUCHUN0607 发表于 2010-12-2 08:17


当设置成输入时,怎么设置是上拉,怎么设置是下拉?
这个容易,建议用STM32的固件库(FWLib)。
zddxmu 发表于 2010-12-2 10:27 | 显示全部楼层
在stm8s系列的manual里,GPIO的速度设置是靠CR寄存器,STM32你查下GPIO的寄存器吧
jgphu 发表于 2010-12-2 11:31 | 显示全部楼层
还是好好看看SPEC吧,上面说的很清楚的
 楼主| YUCHUN0607 发表于 2010-12-2 11:43 | 显示全部楼层
当设置成输入时,怎么设置是上拉,怎么设置是下拉?
这个容易,建议用STM32的固件库(FWLib)。
IJK 发表于 2010-12-2 10:07

只说了GPIO_IPD是设置成上/下拉输入模式,那到底是上拉还是下拉啊?
 楼主| YUCHUN0607 发表于 2010-12-2 11:46 | 显示全部楼层
在stm8s系列的manual里,GPIO的速度设置是靠CR寄存器,STM32你查下GPIO的寄存器吧
zddxmu 发表于 2010-12-2 10:27

我现在的问题是假如我的输出速度很慢,但我设置成了50M模式;或者我速度很快,但是我设成了慢速模式,这样会发生什么情况
IJK 发表于 2010-12-2 11:46 | 显示全部楼层
只说了GPIO_IPD是设置成上/下拉输入模式,那到底是上拉还是下拉啊?
YUCHUN0607 发表于 2010-12-2 11:43


印象里应该既可以设置上拉、也可以设置下拉,具体情况可以看reference manual(参考手册),也可以参考固件库
 楼主| YUCHUN0607 发表于 2010-12-2 11:46 | 显示全部楼层
还是好好看看SPEC吧,上面说的很清楚的
jgphu 发表于 2010-12-2 11:31

SPEC是什么?
vigia 发表于 2010-12-2 12:02 | 显示全部楼层
我现在的问题是假如我的输出速度很慢,但我设置成了50M模式;或者我速度很快,但是我设成了慢速模式,这样会发生什么情况
YUCHUN0607 发表于 2010-12-2 11:46


速度应该和芯片内部用的门有关吧


低速的输出,设置50M模式,对输出应该没有影响,但是耗电会比20M高一点。
香水城 发表于 2010-12-3 07:06 | 显示全部楼层
STM32中GPIO的速度设置是配置输出通道的带宽,如果输出的信号速度较低但你设置了较高的输出带宽,则不会对输出信号产生影响,只会增加功耗和噪声;如果输出的信号速度较高但你设置了较低的输出带宽,则会得到失真的波形。
say_sth_freely 发表于 2010-12-3 08:14 | 显示全部楼层
关于上拉和下拉是这样的:
stm32的GPIO既可以设置为输出也可以设置为输入,当设置为输入时,输出还是可以有效的,当设为上拉时,可以把输出设为高电平,而设为下拉输入时,把输出设为低电平,这样就有了上拉和下拉。
say_sth_freely 发表于 2010-12-3 08:31 | 显示全部楼层
其实为了保险起见,如果你设置为上拉最好在脚外加个上拉电阻,设为下拉就加个下拉电阻,只靠stm32内部的上拉下拉可能不好用
 楼主| YUCHUN0607 发表于 2010-12-3 08:51 | 显示全部楼层
STM32中GPIO的速度设置是配置输出通道的带宽,如果输出的信号速度较低但你设置了较高的输出带宽,则不会对输出信号产生影响,只会增加功耗和噪声;如果输出的信号速度较高但你设置了较低的输出带宽,则会得到失真的 ...
香水城 发表于 2010-12-3 07:06

还是香主
 楼主| YUCHUN0607 发表于 2010-12-3 08:52 | 显示全部楼层
关于上拉和下拉是这样的:
stm32的GPIO既可以设置为输出也可以设置为输入,当设置为输入时,输出还是可以有效的,当设为上拉时,可以把输出设为高电平,而设为下拉输入时,把输出设为低电平,这样就有了上拉和下拉。 ...
say_sth_freely 发表于 2010-12-3 08:14

哦,还可以这样用啊,见识了
zddxmu 发表于 2010-12-3 09:23 | 显示全部楼层
GPIO的速度设置是配置输出通道的带宽.

这样的表述专业多了,呵呵
czc818 发表于 2013-4-9 13:54 | 显示全部楼层
没能理解 GPIO输出时 Speed 配置,不知为什么要配置不同的速度
czc818 发表于 2013-4-9 13:58 | 显示全部楼层
1.1 I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O口 的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路)。通过选择速度来选择不同的输出驱动模块,达到最佳的噪声 控制和降低功耗的目的。高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号。

关键是GPIO的引脚速度跟应用匹配(推荐10倍以上?)。比如:
1.1.1 对于串口,假如最大波特率只需115.2k,那么用2M的GPIO的引脚速度就够了,既省电也噪声小。
1.1.2 对于I2C接口,假如使用400k波特率,若想把余量留大些,那么用2M的GPIO的引脚速度或许不够,这时可以选用10M的GPIO引脚速度。
1.1.3 对于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引脚速度显然不够了,需要选用50M的GPIO的引脚速度。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

54

帖子

0

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