GPIO配置-PIN_Speed的理解

在使用STM32的GPIO 口配置时,经常会疑惑应该选用什么样的配置模式,本文谈谈对pin_speed的理解。

根据数据手册可得,STM32提供10MHz,2MHz和50MHz三种输出速度的配置,三种配置的应用场景是怎么样的?。

1.为什么要配置引脚速度?

STM32在芯片内部的IO输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的,

当响应速度越快,功耗也就越高,同样,引脚反转的速度过快,所带来的噪声也越强了。

2.输出速度如何影响信号的噪音

信号反转频率多了功耗多很好理解,那反转速度是如何影响信号的噪音呢?

这里需要引入一个知识点
波特率 :波特率是对信号传输速率的一种度量,是线路状态更改的次数,在信息传输通道中,带数据信息的信号单元叫码元,单位时间内通过信道传输的码元数称为码元传输速率,简称波特率。

简而言之,为了提高通信的速度,则需要提高单位时间内能够传输的码元数量,而在单片机信号传输过程中,GPIO是以高低电平作为信号01的表征方式的,所以反转速度越快,单位时间能够传输的码元数量就更多了。

但是在IO口的翻转过程中,并不是瞬时反转的,电平的转换有一定的延迟,对比2MHz和10MHz可以看到不同功耗表现下,GPIO的上升时间和下降时间存在很大的不同。

如果说输出应用的信号频率为10MHz,而在IO口配置中配置了2MHz的带宽,由于存在延迟的电平转换,2MHz比10MHz能够保持在高电平的时间小了很多。

这种电平在后续信号接收中是会形成很大干扰的,接收方以10MHz的波特率去读取2MHz的信号时,很可能会读取到一个在0和1之间的电压,因为此时2MHz还没有到达高电平并保持,这种电平对于接收方是无法识别和计算的。这就是噪音产生的原因。

因此,选用适当的IO口速度配置,在功耗和需求之间平衡就显得十分重要了

比如:

2MHz:适用于低频应用,如简单的LED驱动和按键检测,能够有效降低功耗和噪声。

10MHz:中等速度设置,适合一般的数字信号处理,如USART、I2C通信。

50MHz:适用于高频信号处理,如SPI通信。此设置提供最高输出频率,但也带来较大的噪声和功耗。

相关推荐
Lester_11014 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元4 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
z20348315204 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
古译汉书4 天前
【IoT死磕系列】Day 7:只传8字节怎么控机械臂?学习工业控制 CANopen 的“对象字典”(附企业级源码)
数据结构·stm32·物联网·http
Alaso_shuang4 天前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
2501_918126914 天前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
z20348315204 天前
STM32F103系列单片机定时器介绍(一)
stm32·单片机
星马梦缘4 天前
驱动层开发——蜂鸣器驱动
stm32·单片机·嵌入式硬件·hal·驱动
小刘爱玩单片机4 天前
【stm32简单外设篇】- 测速传感器模块(光电)
c语言·stm32·单片机·嵌入式硬件
极客小张4 天前
基于STM32的智能水质监测与远程预警系统设计与实现
c语言·python·stm32·单片机·嵌入式硬件·物联网