打印
[资源共享]

单片机低功耗几点内容

[复制链接]
1139|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
有做过低功耗产品开发的读者都应该知道,一个产品的功耗不光是硬件功耗的事,其实软件也是影响整个产品功耗的一个关键因素


我之前也开发过几款使用电池供电的产品,调试起来,那叫一个痛苦,软件和硬件各种因素都要考虑。
当你确信软件没问题了,可能硬件某个地方又存在漏电流,这其中的“痛苦”我也不再这里描述了。
今下面以STM32为例,简单描述下低功耗时IO引脚的注意事项。

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


GPIO始终有一个输入通道,可以是数字或模拟通道。
如果不需要读取GPIO数据,则优先配置为模拟输入。这节省了输入施密特触发器的消耗。
在STM32CubeMX配置中都有这么一个选项:将不用引脚配置为模拟状态。

调整GPIO速度


现在的单片机,大部分都可以配置速度,也就是上升时间,下降时间和最大频率,这些都可以用软件进行配置。
这种调整对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)模式替代关机模式。

使用特权

评论回复
沙发
tpgf| | 2022-12-1 17:35 | 只看该作者
软硬件是相辅相成的  偏重哪一个也达不到目的

使用特权

评论回复
板凳
qcliu| | 2022-12-2 13:08 | 只看该作者
主要需要考虑的是无关外设如何进行设置处理

使用特权

评论回复
地板
drer| | 2022-12-2 13:16 | 只看该作者
在进入低功耗的时候很多细节都非常容易忽略掉

使用特权

评论回复
5
coshi| | 2022-12-2 13:26 | 只看该作者
未使用的GPIO输入配置为模拟输入,这种配置适用于所有型号的单片机吗

使用特权

评论回复
6
kxsi| | 2022-12-2 14:31 | 只看该作者
感觉时钟和引脚配置是最不好弄的,不过可以通过不同的配置来摸索他们的功耗

使用特权

评论回复
7
海滨消消| | 2022-12-2 21:05 | 只看该作者
想要单片机到达低功耗软件硬件相辅相成

使用特权

评论回复
8
wiba| | 2022-12-3 08:14 | 只看该作者
在低功耗的模式下 还能正常运行io脚吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

567

主题

2517

帖子

4

粉丝