历史上的今天
返回首页

历史上的今天

今天是:2025年02月28日(星期五)

正在发生

2020年02月28日 | 如何降低pic单片机的功耗?

2020-02-28 来源:eefocus

一直在做 pic 单片机功耗问题。由于项目使用电池供电,所以功耗问题显得非常重要。根据数据手册以及网络上的资料,影响单片机功耗主要由以下几个因素:

 

1:所有 I/O 引脚保持为高阻输入高点平或低电平

 

2:关闭比较器和 CVref(可编程偏上参考电压)、WTD、T1OSC、BOR(欠压复位)等

 

3:PORTB 片内弱上拉

 

4:所有不用的模块全部关闭,在用到时再打开

 

5:MCLR 引脚必须处于逻辑高电平

 

PIC 单片机在执行 SLEEP 指令后进入睡眠省电模式。进入 SLEEP 模式后,主振荡停止,如果看门狗在烧写时打开了,看门狗定时器将被清并保持运行。I/O 口,周边模块和内部 RAM 将保持原来状态,所以如果要求睡眠后有很低功耗,应该在进入 SLEEP 前把 IO 口置为高阻抗的输入状态,不用的模块也要关闭。另有些周边模块与主时钟有关,如在异步模式下的 USART,将不工作。

唤醒 SLEEP 的条件有很多,如 IO 口电平变化,AD 转换结束,外部复位、看门狗溢出等,具体请参考数据手册。

 

当执行 SLEEP 指令时,PC+1 的指令被预取指,当器件被一个中断条件唤醒时(这个中断的应是已使能的),如果 GIE(全局中断使能位)为 0,器件将继续执行 SLEEP 指令下面的指令。如果 GIE 为 1,器件将执行已预取的 PC+1 指令后跳到 0004H 的中断入口。所以建议 SLEEP 后面紧跟着的一条指令最好是个 NOP。

 

外部手动复位 MCLR 将唤醒器件并 RESET,表示状态的标志位含义详见数据手册。

 

看门狗定时器在 SLEEP 下溢出将唤醒器件,然后执行 SLEEP 下面的指令,也有标志位指示状态。

 

进入 SLEEP 后,主振荡停振,和主振荡相关的模块都会停止工作,A/D 。液晶驱动。看门狗等模块还是要在 SLEEP 指令执行之前关闭的。这样功耗才会最低。

 

关于 I.O 口。在 16C926 的 DATA SHEET 里,还是说到了一些。所有的 I/O 口,都有确定的接 VDD 或者 VSS,而不能悬空。进入 SLEEP 前,所有的 I/O 应该置为输入口,接上拉或下拉。

 

对于 PORTB 口有内部上拉功能的应该选择不上拉。

 

这个项目就是因为没有关闭 BOR 在休眠时电流达到 50UA 而搞了近一周的时间才发现问题。

 

下面是一位网友的测试数据:

 

测试条件:PIC16F676 使用内部 4MHzRC 振荡,电源电压 5V,测试在睡眠下的消耗电流

 

单片机在外部 IO 口设置成输入并有固定电平的情况下,程序进入一个 NOP 指令和跳转指令的死循环后耗电约 1.26mA

 

1.SLEEP 之后:WDT 开并 256 分频,每 2.3 秒左右唤醒一次,所有 IO 口为数字输入口,直接接高电平或低电平。5V,0.159mA,主要配置:_INTRC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_ON & _MCLRE_OFF & _BODEN

 

2.上面的程序没动,只是配置& _BODEN_OFF,电流降为 8.5μA,其它配置变化对电流消耗影响不大,WDT 开与不开只差 0.1μA,可见 BROWN OUT DOWN 功能是个耗电大户。

 

3.上面的配置、程序没动,所有 IO 输入口悬空,结果电流变为 0.8-1mA,以上均没开电平变化中断,而且手接近单片机电流变的更大。可见虽然 IO 口看似没有吸收电流,但干扰电平引起单片机内部比较器频繁翻转的电流可以说很惊人。

 

4.以上配置,仅将 WDT 分频比改为 1:1,各 IO 口仍然接固定电平,此时单片机 WDT 约每 1.8mS 唤醒一次,电流为 8.8μA,可见 RC 的唤醒很省电。

 

5.以上配置,WDT1:256 分频,将所有 IO 口设置成输出,并输出低电平,IO 口不接任何负载,结果电流为 9.5μA,与输入相比多了 1μA。可见 IO 口的驱动也是要能量的。

 

6.以上配置,WDT1:256,各 AD 输入口设置成 AD 输入,其它设置成 IO 输入,均接固定电平,ADON 置 1,GO 为零,此时 AD 模块开启,转换未开始,转换时钟采用系统时钟的 1/8,电流 8.8μA 基本无变化,转换时钟采用 AD 独立 RC 振荡,电流仍为 8.8μA,独立 RC 振荡,GO 置 1,转换完成后继续 AD 转换,电流为 9.2μA,期间没有空余采样电容的充电时间,可见 AD 转换并不怎么耗电。

 

7.关闭 AD,开启 RA 口的弱上拉,有弱上拉的 IO 悬空,WDT 1:1,电流 8.8μA,将弱上拉的 IO 口其中一脚接地,电流猛增至 212.4μA,换算下来一个弱上拉相当于一个 24KΩ左右的电阻。

 

综上所述,耗电大户有两个:第一大户是悬空的输入脚,第二大户为弱上拉时 IO 口接地。第三大户为 BROWN OUT DOWN RESET(电压过低复位)。若要省电的话不妨以此参考。此次试验是单片机没有任何外围电路的情况下测得,当然外围电路比较复杂,设计省电模式其它电路的耗电也要考虑。若要非常省电,那么每个功能是否开启都是锱珠必较的。

推荐阅读

史海拾趣

DAICO公司的发展小趣事

随着技术的不断进步,DAICO公司成功研发出一系列高可靠性的定制产品。这些产品以其卓越的性能和稳定性,赢得了客户的广泛认可。DAICO开始将业务扩展到商用飞机和其他高端商业行业,为卫星、雷达、导航、通信、电子战和导弹系统提供复杂操作不可或缺的一部分。

COMPUTAR公司的发展小趣事

进入90年代,电动变焦镜头逐渐成为市场的新宠。CBC株式会社紧跟时代潮流,于1992年成功推出电动6倍系列镜头。这款镜头采用电动变焦设计,操作简便、速度快捷,极大地提高了拍摄效率。电动6倍系列镜头的全球上市,不仅进一步扩大了CBC的市场影响力,也为公司的未来发展奠定了坚实的基础。

通过以上五个故事,我们可以看到COMPUTAR公司(前身为CBC株式会社)在电子行业中的发展历程。从创立之初的艰苦创业,到逐步拓展国际市场;从手动变焦镜头的研制成功,到非球面高速镜头和电动6倍系列镜头的诞生与上市,每一步都凝聚着COMPUTAR人的智慧和汗水。正是这些不懈的努力和持续的创新,使得COMPUTAR在电子行业中脱颖而出,成为一家备受尊敬的企业。

AMICC [AMIC TECHNOLOGY]公司的发展小趣事

在电子行业发展日新月异的背景下,AMICC始终坚持技术创新。公司投入大量研发资源,成功开发出一系列具有自主知识产权的新型半导体产品。这些产品不仅提高了性能,还降低了成本,为公司在市场竞争中赢得了优势。同时,AMICC还积极与国内外高校和研究机构合作,推动产学研深度融合,为公司的持续发展注入新的活力。

Elytone Electronics Co Ltd公司的发展小趣事

近年来,Elytone公司积极响应国家环保政策,致力于推动绿色发展。他们采用环保材料和清洁能源进行生产,减少了对环境的污染。同时,公司还加强了对废弃物的回收和处理工作,实现了资源的循环利用。这些举措不仅提升了公司的社会形象,也为行业的可持续发展做出了积极贡献。

DART(英国达特)公司的发展小趣事

在快速发展的过程中,DART公司也遇到了不少挑战和危机。例如,某个时期全球电子元器件供应紧张,导致公司面临严重的原材料短缺问题。面对这一挑战,DART公司迅速调整采购策略,积极寻找新的供应商和替代品,并加强与现有供应商的合作和沟通。通过这些措施,公司成功度过了危机,并保持了业务的稳定增长。

Ford Aerospace & Communications Corp公司的发展小趣事

随着航空业的逐渐发展,福特汽车公司意识到航空通信技术的重要性。在20世纪30年代,福特开始投资研发航空无线电通信系统,旨在提高飞行中的通信效率和安全性。这一举措不仅促进了福特在航空技术领域的进一步拓展,也为后来的航空通信标准制定提供了参考。

问答坊 | AI 解惑

protel拼板.rar

本帖最后由 paulhyde 于 2014-9-15 03:01 编辑 protel拼板.rar  …

查看全部问答>

高精度频率基准----OCXO恒温晶振

这个是拆机的OCXO恒温晶振,具有很好的短期稳定性,拆机的东西,很便宜,才38元一个,内部工艺很考究。新的估计要上千元。 …

查看全部问答>

谁做过驱动啊?告诉我什么得什么样的流程啊,我假如我对scsi进行编程怎么办?

谁做过驱动啊?告诉我什么得什么样的流程啊,我假如我对scsi进行编程怎么办? PCI有13个关于scsi的针脚,怎么样的过程或流程给我说下被,如何编写?但是寄存器的首地址无法确定 该怎么做呢?…

查看全部问答>

Linux下CAN驱动问题(HMs30c7202) c_candrv-1.2.0

目前接手一项目,头有点大,CAN在运行过程中,会出现不能收发的情况,从新上电后正常 使用的是c_candrv-1.2.0驱动程序,个人感觉可能是使用方法不对 #define can0file \"/dev/can0\" #define can1file \"/dev/can1\" #define can2file \"/dev/can ...…

查看全部问答>

内存电路接口问题(你们注意了吗?)

昨天看了一下电路图,发现内存(SDRAM)和2440接口有点不可思议(后来发现ATmel的ARM也是这么接的),后来仔细对比。 发现问题在LDQM,UDQM这两个引脚,他们接到2440的四个nWBE引脚。内存资料是这么说的:Data Input/Output Mask Controls output ...…

查看全部问答>

请教PC主板关于BIOS的启动顺序??及如何在主板启动时屏蔽BIOS启动信息???

请教PC主板关于BIOS的启动顺序??及如何在主板启动时屏蔽BIOS启动信息??? 本人现用PC104主板写DOS软件,但是主板启动后有自检信息,但是领导要求在主板启动时,不要显示主板自检信息,取代以LOGO,请个位多多赐教!!! ...…

查看全部问答>

有没有人用过 LoadAnimatedCursor 这个API啊?

环境 evc4, Standard SDK for wince 5.0 我在 resource.h 下这么定义 #define IDB_BITMAP1                     MAKEINTRESOURCE(104) #define IDB_BITMAP2    ...…

查看全部问答>

申请MSP-EXP430G2学习

感谢论坛提供这次机会!~…

查看全部问答>

vcredist_x86.exe 每次我一安装都出现这个提示,请问这是怎么回事,该怎么解决?谢谢

vcredist_x86.exe 每次我一安装都出现这个提示,请问这是怎么回事,该怎么解决?谢谢     无法访问 Windows Installer 服务 Windows Installer 没有正确安装时可能发生这种情况。 请与技术支持人员联系以获得帮助。…

查看全部问答>

TI官方 CCSv5使用教程~

很详细,,,从CCS特点到新建工程到插件,都有介绍,建议看看~~…

查看全部问答>