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通信。此设置提供最高输出频率,但也带来较大的噪声和功耗。

相关推荐
LCG元8 小时前
STM32 硬件SPI驱动W25Q Flash实战:从CubeMX配置到DMA高速读写
stm32·单片机·嵌入式硬件
铅笔小新z9 小时前
【stm32】I2C 阻塞通信实战与 HAL 源码
stm32·单片机·嵌入式硬件
码上上岸11 小时前
基于stm32的智能荷兰豆生长舱监控系统
stm32·单片机·嵌入式硬件·物联网
星栖与芯12 小时前
STM32MP157 M4 指针避坑(一):先看清“客栈“——内存布局与指针基础
stm32·单片机·嵌入式硬件
沉淀的.晴天13 小时前
FreeRTOS任务挂起与恢复
stm32
大漠飞鹰666614 小时前
【Uart串口-GD32无标题】
stm32·单片机·嵌入式硬件
亮工硬件14 小时前
1-8 简易串口通讯协议(UART + 自定义帧协议)
笔记·stm32·单片机·嵌入式硬件·学习
星栖与芯15 小时前
STM32MP157 M4 指针避坑(三):生命周期与内存踩踏——HardFault 重灾区
java·网络·stm32
wuyk55516 小时前
从零吃透 MQTT 通信|第 6 章 MQTT 主题、过滤器、通配符、订阅管理、拒收机制详解与代码实现
c语言·stm32·学习
周洲08301 天前
STM32 最简工程搭建|标准库/HAL库规范化模板,零冗余可直接落地
stm32·单片机·嵌入式硬件