hjl2832 发表于 2021-6-19 12:14

【CuriosityNano测评报告】+休眠模式电流测试(测试2)

各位大家好!
【CuriosityNano测评报告】的第1个测试里,我按照测试方案进行了通过定时器唤醒休眠模式的测试和仿真。在这一期的测试里,我继续按照方案进行第二期的测试,测试休眠模式下各模块的电流消耗情况。
在上一期的测试里,因为我在用MCC进行初始化配置时,基本上把无关的模块都关闭了没有激活,所以休眠电流是在16-17uA左右。这一期测试里,我就分别测试几个常用的模块对电流的影响。
1.FVR模块
我们知道,PIC单片机的FVR模块是给ADC模块提供参考基准电压的,在FVR工作的情况下,在休眠模式时的耗电是比较大的,具体电流看我的测试结果;
继续上一次的代码,这一次,我要用MCC配置打开FVR,如图所示:

第一步,打开MCC,选择点击FVR前面的+号将FVR模块增加到代码工程中。

第二步,将FVR设置为2.048V
第三步,编绎代码并下载到开发板运行,这时我们可以看到休眠电流由原来的17uA变成了200uA。

第四步,测试ADC模块的休眠电流,在通过MCC配置好ADC功能时,我们可以看到代码里是激活了ADC模块的。在void ADCC_Initialize(void)中的最后一行,

根据以往其它厂商单片机的应用经验,ADC模块在使能时,其工作电流也比较大,对休眠电流的影响比较大,那么PIC18F16Q系列的情况是怎么样的呢?我们来看一下,首先,在代码中增加休眠前配置关闭FVR和ADC的代码。

通过在休眠前关闭FVR,我测试休眠后的电流回到了开始的17uA左右。

第五步,在休眠前关闭ADC模块,测试ADC对休眠电流的影响,修改代码,增加关闭ADC模块的功能。

第六步,编绎代码,重新进行测试,我发现休眠电流基本没有变化,还是维持在17uA左右。
在以上的步骤 中,工都是基于常见的其它厂商单片机影响休眠电流最大的2个模块进行了测试,测试结果表明,除了FVR的电流确实影响很大,常见的ADC对休眠电流的影响在PIC18F16Q中影响并不明显。另外我还测试了IO口在配置为输入、输出、开漏、模拟量输入等模式下对休眠电流的影响,测试结果,休眠电流都是大约在17uA,没有变化,证明PIC18在对芯片工作过程中没有使用的模块的功耗管理做的还是比较好的。


lcczg 发表于 2021-6-25 09:52

本帖最后由 lcczg 于 2021-6-28 10:34 编辑

感谢楼主的分享。休眠电流我感觉可以更低,看数据手册在VREGPM=10时应该在1uA左右。不知 PMD寄存器有没有配置,没用的模块PMD置1会断电。

hjl2832 发表于 2021-6-28 13:03

lcczg 发表于 2021-6-25 09:52
感谢楼主的分享。休眠电流我感觉可以更低,看数据手册在VREGPM=10时应该在1uA左右。不知 PMD寄存器有没有配 ...

我试过关PMD,关所有未用的模块使能位,但都是一样的电流(17uA左右),贴图里没有把那些代码显示出来,我调试发现一样时就把相关代码全注释掉了。
这里面的电流为什么偏大呢,我有考虑过,因为开发板上的DEBUG口连接了MCU的IO,板上没有跳线无法断开,这里有很大的漏电流。另外还有串口,那个对IO影响不大(因为IO可以配置为高阻输入或输出)。
我在实际的产品开发中也发现ICP连接了会影响电流(比喻我现有一个产品,在休眠时电流是4uA,当连接了KIT3后,会变成0.1mA左右,我的分析KIT3的ICP功能会让MCU不进入休眠模式。)
我调过实际产品的板子,调到过休眠电流2uA,这个电流包含了LDO的电流、IO外围电路的电流。

kkzz 发表于 2021-8-11 16:53

功耗低多大的呢

claretttt 发表于 2021-8-11 16:53

休眠模式效果怎么样   

jonas222 发表于 2021-8-11 16:53

定时器唤醒休眠模式   

macpherson 发表于 2021-8-11 16:54

可以配置外部中断唤醒吗

geraldbetty 发表于 2021-8-11 16:54

测试一下oled吧   

mollylawrence 发表于 2021-8-11 16:54

眠电流是在16-17uA左右,确实不高。

mattlincoln 发表于 2021-8-11 16:55

主要是外设的功耗太大了。

maudlu 发表于 2021-8-11 16:55

做屏幕显示了吗   

earlmax 发表于 2021-8-11 16:55

中断作为唤醒源可行。

sesefadou 发表于 2021-8-11 16:55

有完整的代码吗?

hjl2832 发表于 2021-8-13 08:36

sesefadou 发表于 2021-8-11 16:55
有完整的代码吗?

需要的话,留邮箱,其实很简单,通过MCC配置初始化,剩下的就是main里的处理函数。

hjl2832 发表于 2021-8-13 08:41

实际上,我在用PIC16的项目中,最低功耗调到了2.0uA。那是一个温湿度数据采集的项目,带数据保存功能。通过上位机配置采集方案,利用TIM1外接的RTC计时,实现定时唤醒休眠进行数据采集存储。通过串口传送数据包。
页: [1]
查看完整版本: 【CuriosityNano测评报告】+休眠模式电流测试(测试2)