[PIC®/AVR®/dsPIC®产品]

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

[复制链接]
5193|14
手机看帖
扫描二维码
随时随地手机跟帖
hjl2832|  楼主 | 2021-6-19 12:14 | 显示全部楼层 |阅读模式
各位大家好!
【CuriosityNano测评报告】的第1个测试里,我按照测试方案进行了通过定时器唤醒休眠模式的测试和仿真。在这一期的测试里,我继续按照方案进行第二期的测试,测试休眠模式下各模块的电流消耗情况。
在上一期的测试里,因为我在用MCC进行初始化配置时,基本上把无关的模块都关闭了没有激活,所以休眠电流是在16-17uA左右。这一期测试里,我就分别测试几个常用的模块对电流的影响。
1.FVR模块
我们知道,PIC单片机的FVR模块是给ADC模块提供参考基准电压的,在FVR工作的情况下,在休眠模式时的耗电是比较大的,具体电流看我的测试结果;
继续上一次的代码,这一次,我要用MCC配置打开FVR,如图所示:
3938960cd6808d0d8d.png
第一步,打开MCC,选择点击FVR前面的+号将FVR模块增加到代码工程中。
8050960cd68bf60d37.png
第二步,将FVR设置为2.048V
第三步,编绎代码并下载到开发板运行,这时我们可以看到休眠电流由原来的17uA变成了200uA。
9629460cd69ab6fbe2.png
第四步,测试ADC模块的休眠电流,在通过MCC配置好ADC功能时,我们可以看到代码里是激活了ADC模块的。在void ADCC_Initialize(void)中的最后一行,
9502160cd6a66255e1.png
根据以往其它厂商单片机的应用经验,ADC模块在使能时,其工作电流也比较大,对休眠电流的影响比较大,那么PIC18F16Q系列的情况是怎么样的呢?我们来看一下,首先,在代码中增加休眠前配置关闭FVR和ADC的代码。
2525460cd6b7f7d04a.png 7707960cd6c84539d5.png
通过在休眠前关闭FVR,我测试休眠后的电流回到了开始的17uA左右。
8363060cd6c0822496.png
第五步,在休眠前关闭ADC模块,测试ADC对休眠电流的影响,修改代码,增加关闭ADC模块的功能。
505860cd6cff794be.png 3604160cd6cc774436.png
第六步,编绎代码,重新进行测试,我发现休眠电流基本没有变化,还是维持在17uA左右。
在以上的步骤 中,工都是基于常见的其它厂商单片机影响休眠电流最大的2个模块进行了测试,测试结果表明,除了FVR的电流确实影响很大,常见的ADC对休眠电流的影响在PIC18F16Q中影响并不明显。另外我还测试了IO口在配置为输入、输出、开漏、模拟量输入等模式下对休眠电流的影响,测试结果,休眠电流都是大约在17uA,没有变化,证明PIC18在对芯片工作过程中没有使用的模块的功耗管理做的还是比较好的。
452360cd6f2b5b78e.png

使用特权

评论回复
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计时,实现定时唤醒休眠进行数据采集存储。通过串口传送数据包。

使用特权

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

本版积分规则

26

主题

1015

帖子

3

粉丝