良许Linux教程网 干货合集 STM32低功耗时,IO引脚配置的问题

STM32低功耗时,IO引脚配置的问题

有经验的低功耗产品设计者都明白,一个产品的功耗不仅仅受硬件功耗的影响,软件也是影响整个产品功耗的关键因素。

我之前曾经开发过一些使用电池供电的产品,调试的过程真是痛苦不堪,不得不考虑诸多软件和硬件方面的因素。

就当你确信软件方面没有问题时,可能会发现硬件中存在某些地方的漏电流问题。这其中的痛苦就不再赘述了。

今天,我想和大家分享一些关于在低功耗状态下,如何对STM32的IO引脚进行常规的配置的经验。

将未使用的GPIO输入配置为模拟输入

GPIO始终有一个输入通道,可以是数字或模拟通道。

如果不需要读取GPIO数据,则优先配置为模拟输入。这节省了输入施密特触发器的消耗。

在STM32CubeMX配置中都有这么一个选项:将不用引脚配置为模拟状态。

image-20230811092831364
image-20230811092831364

调节GPIO速度

上升时间,下降时间和最大频率可使用GPIOx_OSPEEDR配置寄存器进行配置。

这种调整对EMI(电磁干扰)和SSO(同时开关输出)有影响,因为开关电流峰值较高。因此必须平衡GPIO性能与噪声。

每个GPIO信号的上升时间和下降时间必须适应与相关信号频率和电路板容性负载兼容的最小值。

不使用时禁用GPIO寄存器时钟

如果某个GPIO组不需要长时间使用,禁用其时钟。

比如标准外设库,禁用GPIOA时钟:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, DISABLE);

HAL库,禁止GPIOA时钟:

__HAL_RCC_GPIOA_CLK_DISABLE();

进入低功耗模式时配置GPIO

进入低功耗模式时,所有引脚信号必须连接到VDD或接地。

如果GPIO连接到外部接收器(外部元件输入),则必须使用PP或PU/PD强制GPIO信号值。

当GPIO连接到驱动器(外部元件输出或总线)时,驱动器必须提供有效电平( VDD或接地)。如果未定义驱动器电平,则必须使用PU/PD强制GPIO上的信号。

出于实际原因,当GPIO是运行模式下的输入(模拟或数字)时,在低功耗模式下使用输入PU/PD可能更容易;当GPIO是运行模式下的输出时,则使用输出PP。这可以避免在进入或退出停止模式时管理更改。

退出关机模式

退出关机(shut down)模式时, GPIO会在上电复位时重新配置为默认值。

在将它们重新编程为正确值之前,这会需要额外的系统消耗。

如果这是应用程序的问题,则必须使用待机(standby)模式替代关机模式。

(仅限STM32L4系列和STM32L4+系列)

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部