原创 低功耗设备如何测试与分析功耗

2020-6-20 22:09 4813 29 7 分类: MCU/ 嵌入式 文集: 日积月累

我先唠点:

本文用于记录低功耗设备开发时,如何利用示波器测试出单片机进入低功耗模式,被中断唤醒后执行完任务便继续进入低功耗模式。根据测试出的波形,对单片机睡眠时长及唤醒时长进行分析,进而判断低功耗设计是否符合要求。

用到的东西:

示波器、低功耗单片机电路板、供电电池、大功率电阻、电烙铁、镊子、数字万用表。

开始操作:

一般物联网设备都是电池进行供电,所以低功耗问题处理的是否得当直接决定了物联网设备的使用寿命。一般的低功耗产品前后台程序设计思路是,上电后进行相关外围设备电路的初始化,然后进入while大循环执行工作任务,然后进入睡眠。有中断时,CPU才会被唤醒,去执行中断任务,然后在进入while大循环执行工作任务。如果期间没有中断,整个程序会停在睡眠点。但实际应用中,不会让单片机一直去睡,一般设置一个定时器,比如250ms,去唤醒下单片机,趁着单片机醒着一些采样等工作任务,假设执行这些工作任务得需要500us,执行完任务后又被配置为睡眠模式,单片机继续睡(睡眠期间定时器正常工作)。这样连贯起来,单片机干500us活儿,睡250ms,一直这样循环,就可以实现低功耗。

我们在实际的程序设计过程中,执行工作任务的时长可能会受到设计代码影响,使得单片机醒着的时间不确定,我们就需要用示波器去测量出来,单片机究竟睡了多久,又醒了多久,从而估算功耗设计是否符合设计要求。

由于单片机在睡时功耗小,电流小,而在醒着的时候,功耗大,电流大,我们可以在电源电路中串联一个大功率电阻,这样电流的变化,就可以转换为电阻两端电压的变化,连接上示波器,就可以被捕获到电压变化的波形,从而分析睡眠和唤醒的时间长度。

在确定了测试的方法后,就要去确定下测试用的大功率电阻选取多大了。选的太大,电阻会分担回路太多电压,从而影响低功耗设备正常工作,选的太小的话,电流变化时,电阻两端的电压变化不明显,示波器不容易捕捉到波形。我用万能表串联到回路中,对低功耗模式下的设备干路电流进行了测量,大概是10uA。又将单片机配置为非低功耗模式,测试了下电流大概是15mA。我从手中的大功率电阻中,选取了一个20Ω的电阻,这样在非低耗模式下,分担的干路的电压是0.3v(20*15*0.001=0.3V),3.6v电池进行供电时,还可以留给低功耗设备3.3V电压,可以满足单片机正常工作的电压。低功耗模式下,电阻两端的电压是0.2mv(20*10*0.000001=0.2mV)。电压从0.2mV变化到0.3V,变化明显,示波器可以较好地捕捉到波形。

把电阻串联到电路中,打开示波器就开始测量了,可是发现无论怎么调节示波器,电压跳变的波形就是出不来,我开始以为是开着×10衰减,把本来就小的输入电压衰减了,示波器不容易捕捉到。可是把衰减跳到×1时,发现也不行。

于是,转向同事请教,同事问我有没有去掉电容,我一拍脑袋,才想到电路中的几个旁路电容,还挺大。赶快用电烙铁镊子把比较大的两个电容去掉,重新上电后,调节示波器,波形就出来了。

从上面的两个波形可以看出,第一个波形的宽度大概是500us,且电压也较大,这个是唤醒后,执行工作任务时的波形。第二个波形的宽度大概是200us,这个是定时器中断唤醒后,执行的中断任务。定时器中断中干的活儿项目少,消耗的电流少,所以电阻上电压变化也比较低。而执行工作任务时,会开启较多的外围电路,功耗增加,反应到电阻两端的波形变化也较明显。除了波形中的这两个波峰外,其他的平平的波形,就是设备处于睡眠状态下的情况了,可以通过调节示波器,看出睡眠状态的周期长度,从而确定程序的低功耗设计是否得当。

再唠会儿磕:

现在想想,去测试低功耗设备的工作状态的背后原理就是很简单的欧姆定律,可是对于刚毕业只懂得些理论知识的我,在工作时却不会拿理论去应用。测试中碰到无法捕获跳变电压的问题,我也是请教了同事,才考虑到大电容对测试的影响,可想想就是电容两端的电压不能突变的一个道理,在实际工作中,却总是摸不清头脑。以后,还是希望能通过写文章的方式,去将自己的实践与理论去结合起来,认真总结,去提升自己的实践知识储备能力。


作者: wilsin, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3880669.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

给作者打赏,鼓励TA抓紧创作!

赞赏支持
点赞 29
赞赏0

文章评论0条评论)

登录后参与讨论
相关推荐阅读
wilsin 2022-09-27 22:17
【技术笔记】物联网日常工作笔记
1.C语言中,一个函数只能有一个返回值,若需要通过函数对函数外多个变量进行修改时,就要引入输入量为指针。如,带进位的加法运算,输入量为被加数与加数,返回值为是否进位。输入量为数值时,只能向函数输入值,...
wilsin 2020-09-30 22:33
不断电如何测设备功耗
领导:“测测它的功耗,看看正常不?”我:“中。”领导:“千万别断电啊,断了电再重新上电,单片机就复位了,怕复位了这故障就不见了。”我:“中。”回答完领导的话,我往我自己座位上走,边走边在心里琢磨,“我...
wilsin 2020-06-04 21:35
IIC压力传感器控制与使用(上)
------TE篇公司以往水表上都是用的模拟输出的压力传感器,压力传感器输出的电压经单片机上的AD转换后,按照对应公式确定压力值。最近客户招标要求使用IIC输出的压力传感器,按照领导要求,国产的国外的...
wilsin 2020-02-14 10:59
IAR如何设置为VS code黑色主题
最近,用IAR开发项目较频繁。IAR默认的白色主题,很是费眼睛,写一天代码下来常常会眼干眼花。以前用MDK软件时,默认也是白色主题,但是在网上找到了网友修改过的黑色主题包,直接替换主题包即可。于是变尝...
wilsin 2020-01-02 19:32
物联网行业中的常用的专业术语
写在前面:本人目前从事NB物联网水表开发工作,在工作中会遇到一些有关物联网(尤其是NB物联网)方面的专业术语,本文用于记录总结物联网术语知识,后期会随时增加总结内容,便于后续自我查找及各位网友参考。1...
我要评论
0
29
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /2 下一条