stm32中GPIO口的最大输出速度如何理解?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32中GPIO口的最大输出速度如何理解?相关的知识,希望对你有一定的参考价值。

2M、10M和50M,这个如何理解?我的理解如下,估计不对。
比如最大输出速度设为2M,那么如果输出频率超过2M,stm32就反应不过来了,输出的波形就不对了。是不是这样的啊?

几种速度的区别:
(1). GPIO 引脚速度: GPIO_Speed_2MHz (10MHz, 50MHz) ;
又称输出驱动电路的响应速度:(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。)
可理解为: 输出驱动电路的带宽:即一个驱动电路可以不失真地通过信号的最大频率。
(如果一个信号的频率超过了驱动电路的响应速度,就有可能信号失真。失真因素?)
如果信号频率为10MHz,而你配置了2MHz的带宽,则10MHz的方波很可能就变成了正弦波。就好比是公路的设计时速,汽车速度低于设计时速时,可以平稳地运行,如果超过设计时速就会颠簸,甚至翻车。
关键是: GPIO的引脚速度跟应用相匹配,速度配置越高,噪声越大,功耗越大。
带宽速度高的驱动器耗电大、噪声也大,带宽低的驱动器耗电小、噪声也小。使用合适的驱动器可以降低功耗和噪声
比如:高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号。关键是GPIO的引脚速度跟应用匹配(推荐10倍以上?)。
比如:
</>① </>USART串口,若最大波特率只需115.2k,那用2M的速度就够了,既省电也噪声小。
</>② </>I2C接口,若使用400k波特率,若想把余量留大些,可以选用10M的GPIO引脚速度。
</>③ </>SPI接口,若使用18M或9M波特率,需要选用50M的GPIO的引脚速度。
(2). GPIO的翻转速度指:输入/输出寄存器的0 ,1 值反映到外部引脚(APB2上)高低电平的速度.手册上指出GPIO最大翻转速度可达18MHz。
@通过简单的程序测试,用示波器观察到的翻转时间: 是综合的时间,包括取指令的时间、指令执行的时间、指令执行后信号传递到寄存器的时间(这其中可能经过很多环节,比如AHB、APB、总线仲裁等),最后才是信号从寄存器传输到引脚所经历的时间。
如:有上拉电阻,其阻值越大,RC延时越大,即逻辑电平转换的速度越慢,功耗越大。
(3).GPIO 输出速度:与程序有关,(程序中写的多久输出一个信号)。
2、GPIO口设为输入时,输出驱动电路与端口是断开,所以输出速度配置无意义。
3、在复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式。
4、所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式。
5、GPIO口的配置具有上锁功能,当配置好GPIO口后,可以通过程序锁住配置组合,直到下次芯片复位才能解锁。
参考技术A   当STM32的GPIO端口设置为输出模式时,有三种速度可以选择:2MHz、10MHz和50MHz,这个速度是指I/O口驱动电路的速度,是用来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。

  高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。

  当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号。
参考技术B stm32中GPIO口的最大输出速度如何理解??

1,是这样的,2M、10M和50M是指GPIO口的采样频率。。不知这样理解对不对,我就是这样做的。
2,我通过PB6采集80KBPS/S的方波,通过中断计采集,完全胜任。追问

可不可以理解成GPIO的频率要大于外设的频率才可以。不然就跟不上了?
但也不能太低,不然功耗、噪声什么的就多了。
这样理解对吗?

追答

是的,为了不丢失数据,甚至要大于2倍以上。
功耗、噪声是大一点,但系统已经优化,可以不于考虑!

本回答被提问者采纳

STM32 GPIO输入输出模式的理解

四种输出模式:

1、推挽输出

      所谓推挽输出模式是根据两个MOS管的工作方式命名的。

      功能:推挽输出可输出高电平,可输出低电平。

      应用:一般应用在输出电平为VSS和VDD,而且需要高速切换开关状态的场合。在STM32的应用中,除必须使用开漏模式的场合,我们都使用推挽输出模式。

2、推挽复用模式

     应用于内容来自STM32片上外设。即GPIO被用作复用功能时使用。

3、开漏输出

     功能:只能输出低电平,如需输出高高电平,需外接电路(单片机输出3.3V时,外接电路为3,3V时,输出3.3V.外接5V时,可输出5V)。

    应用:一般应用在输出电平在IIC、SMBUS通信等需要"线与"功能的总线中。除此之外,还用在电平不匹配的场合,如需输出5伏的高电平,就可以外部接一上拉电阻,上拉电源为5伏。并且把GPIO设置为开漏模 式,当输出高阻态时,由上拉电阻和电源向外输出5伏的电平。

4、开漏复用

    

四种输入模式:

1、上拉输入

     在没有输入信号的时候,输入端默认输入高电平(由上拉决定)。

2、下拉输入

     如上拉输入

3、浮空输入

     浮空输入的电平是不确定的,完全由外部的输入决定。

     应用:一般用于接按键。

4、模拟输入

     用于ADC采集。

 

以上是关于stm32中GPIO口的最大输出速度如何理解?的主要内容,如果未能解决你的问题,请参考以下文章

stm32读取gpio高低电平速度

stm32GPIO的速度是什么意思

stm32寄存器版学习笔记01 GPIO口的配置(LED按键)

STM32:GPIO口的使用

STM32:GPIO口的使用

STM32的GPIO口的复用功能