打印
[产品应用]

单片机低功耗处理

[复制链接]
800|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
iyoum|  楼主 | 2022-12-23 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果一个电路里面只有一个单片机以及单片机最基本的外围电路,那么它的功耗是很低的,特别是一些专门用于低功耗产品的单片机但是如果你以为你用了超低功耗的单片机就一定能降低功耗的话那你就错了,无论是用什么单片机,在程序上和电路上都是要一些处理才能把功耗控制在比较低的范围。

程序的处理方法主要有以下几点:

1、单片机进入睡眠状态。这个是最基本的,只有睡眠的状态下,功耗才是最低的。但是要注意的是单片机睡眠的方式不止一种,根据需要选择合适的。

2、所有悬空的IO口都设成推挽低速输出低。注意,是悬空的IO口。也有人说设成浮空输入,我试过几款ST的单片机,都是设成输出低的功耗更小。别的单片机你可以先测试一下,再选择最好的配置方式。

3、在单片机睡眠之前把不需要用到的时钟关掉。如定时器时钟,串口时钟等。这里说的不需要指的是睡眠的时候不需要用到,但是唤醒状态下需要用到的。如果是一直都没用到的,不初始化也不会打开。

4、有连接外设的IO口根据实际情况配置引脚。不是所有引脚拉低都能降低功耗的,需要根据情况来定,这一点比较复杂,我讲一些最常见的情况吧。比如有连接LED灯,把灯关掉才是功耗最小的。比如输入引脚,如果睡眠的时候,外设输出的是低电平,单片机最好是用浮空输入,不要用上拉,因为上拉的时候,相当于内部有个电阻一直在工作,会消耗电流。如果外部输入的高电平,根据情况而定,我试过一次,就一个引脚,用浮空和上拉居然相差了一百多uA,我的天,可能跟那个模块的内部电路有关吧。也可以把输入改成输出,有时候也有奇效。比如串口,如果休眠的时候可以考虑把引脚都设成输出低,特别是两个单片机通过串口通讯,如果一边拉高一边拉低,那么中间的限流电阻就会导通,最好是两边都拉低。还有串口有时候不能直接拉低引脚,我之前就试过用stm8,程序上把引脚拉低了,实际上并没有拉低,找了好久才知道是没有反串口初始化,也就是DeInit,在库函数里面是能找到这个函数的,反初始化之后,再配置成普通IO口才能输出低。

5、控制外设进入睡眠模式或低功耗工作模式。很多外设模块都是有低功耗模式的,如果不需要一直工作,单片机需要让它也进入睡眠模式,如果是需要一直工作的,尽量选择低功耗工作模式。还有一些外设的中断引脚触发极性是可以自己配置的,最好选择上升沿触发。

6、降低晶振频率。这个我觉得效果不是很大,不知道是我用的单片机本身的频率就不高还是怎样,理论上来说降低频率是可以降低功耗的。

在电路上,降低功耗的方法就比较复杂了,我本身也是更擅长软件方面,硬件上不能给大家更多的建议,我就是说说我知道的一些比较简单的关于IO口的处理方法吧。

电路的处理方法主要有以下几点:

1、单片机的IO口的电阻选型和电路设计要合理。如果单片机的IO口需要用到电阻,要根据实际情况,选择合适的。其实核心的思想都是尽量不要让电阻处于导通状态,或者导通的时候电流尽量减到最小。比如单片机的IO口如果大部分时间都是处于低点平,又必须要上拉电阻的话,尽量选择阻值大一点的电阻。如果处于高电平的话,尽量不要用下拉电阻。这一点无论是输入还是输出都是一样的。能不加电阻就最好了,但是还有一点需要注意的是有些单片机没有下拉输入,如果一些引脚设成外部中断的时候引脚悬空,会使得单片机不断进入中断,这时候就需要上拉或者下拉电阻稳定IO口的电平。

2、芯片IC的选型要合理。做低功耗产品的时候,芯片的选型是很重要的,无论是单片机还是其他外设,在预算范围内都应该尽量选择工作电流小的IC。

3、电路的布局要合理。电路设计也是很关键的一点,不合理的布局可能会造成额外的阻抗,包括外形、散热等问题也是,可能会造成功耗的增加。



使用特权

评论回复
沙发
Undshing| | 2022-12-26 11:55 | 只看该作者
外设对低功耗的影响也是很大的

使用特权

评论回复
板凳
Betty1299| | 2022-12-27 14:02 | 只看该作者
低功耗可以让MCU进入到低功耗的,能降不少功耗下来

使用特权

评论回复
地板
Candic12e| | 2022-12-27 15:12 | 只看该作者
有时候还需要将外设或者外部模块断电才行

使用特权

评论回复
5
Alina艾| | 2022-12-27 16:21 | 只看该作者
现在MCU的低功耗做的都比较好了,就是看业务逻辑了

使用特权

评论回复
6
Emily999| | 2022-12-27 18:09 | 只看该作者
对,不用的IO这块要好好处理,但是得按官方的需求处理,不然容易适得其反

使用特权

评论回复
7
Charlene沙| | 2022-12-27 19:23 | 只看该作者
降低工作频率是对的,主频降下来功耗就下来了

使用特权

评论回复
8
Belle1257| | 2022-12-27 20:27 | 只看该作者
你要是用外置了模块,还得将模块配置成低功耗或者断了它的电才行

使用特权

评论回复
9
Annie556| | 2022-12-28 07:08 | 只看该作者
我一般都是用第六种方式,降低主频,效果好很多

使用特权

评论回复
10
Carmen7| | 2022-12-28 08:18 | 只看该作者
说的有道理,属实电路布局也有一定的影响

使用特权

评论回复
11
Betty996| | 2022-12-28 09:43 | 只看该作者
其实有很多外设或者IO用不上的,都要关闭其时钟才行

使用特权

评论回复
12
Estelle1999| | 2022-12-28 11:46 | 只看该作者
低功耗就是复杂,不好弄,仿真也不好仿真,麻烦的很

使用特权

评论回复
13
Allison8859| | 2022-12-28 14:11 | 只看该作者
其实就降低唤醒频率,降低主频,改变IO的模式,不用的IO关了其时钟就好了

使用特权

评论回复
14
alxd| | 2022-12-29 08:10 | 只看该作者
IO要需要上下拉的时候,用外置的上下拉模式,而不是配置内部上下拉,好像也有点效果,但是我没试过

使用特权

评论回复
15
B1lanche| | 2022-12-29 09:21 | 只看该作者
频繁的唤醒好像也需要很大的能量,这都是禁忌

使用特权

评论回复
16
Carina卡| | 2022-12-29 12:20 | 只看该作者
低功耗还得需要低功耗做的好的MCU厂家才行

使用特权

评论回复
17
Charlotte夏| | 2022-12-29 15:27 | 只看该作者
还没真正做过低功耗的项目呢,听到低功耗就头痛,哈哈

使用特权

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

本版积分规则

29

主题

3154

帖子

1

粉丝