前言
最近经常有遇到 BMS 的客户提出产品会出现低功耗电流过大的问题,在此想借这个机会跟大家聊一聊应该如何去配置芯片才能将芯片的电流损耗降下来。
本文会以 LPC804 为例,为大家讲述在产品设计过程中,应当注意的会影响低功耗的一些地方。
LPC804 的电源模式
LPC804 系列的芯片支持的低功耗模式有 4 种,分别有:
图 1 各个电源模式下的低功耗电流
那么产品在待机模式下,一般是会进到 Power-down 模式下。因为在这个模式下,处理器的状态,寄存器以及 SRAM 的值都会保留下来,而且电流损耗能够降到最低。当 MCU 进入到 Deep Power-down Mode 的时候,重新唤醒会将整颗芯片进行 RESET,这样是不利于产品功能的使用的。
注意:进入深度睡眠模式和掉电模式之前,必须将时钟切换到 IRC 以便顺利进入低功耗模式。
如何测试 MCU 的工作电流
MCU 工作电流一般指流经 MCU 的电流,我们只需要使用万用表就可以测量到需要的电流,下面是原理图。
图 2 MCU 电流测量设计原理图
如图,将电流表接到 JP5 这两个端点就可检测电流了。
但在产品设计的时候,这样测试难免不方便,可以直接在 VDD 的线路上串一个电阻,通过电阻两端的电压来计算流经的电流。
图 3 压降测电流
电流损耗的两个因素
进到 Power-down 模式后,有许多人会发现, MCU 的电流并不能达到数据手册所讲的典型值(6uA),有时候会比典型值多出几十甚至几百微安。像这种问题,排除个体的原因(芯片内部损坏),一般要从两个方面去考虑:
解决方法1 —— 手动关闭内部功能
LPC804 进入到低功耗之后,会自动将一些多余的功能关闭,但仍有一部分功能需要手动关闭,以达到降低功耗的效果。
图 4 低功耗模式下的外设配置
如上图所示,当我们在进入低功耗之前,是可以将不需要的一些功能关闭,像 BOD 可以通过配置下面的这个寄存器来关闭。
图 5 PDSLEEPCFG 寄存器功能描述
图 6 对 PDSLEEPCFG 寄存器配置进行修改的代码
经过测试,LPC804 在关掉 BOD 功能后能节省大约 50uA 的电流损耗。
解决方法2 —— 配置引脚上下拉
在处理好内部功能开关的问题后,若还存在电流过大的现象,引脚漏电的可能性较大。
当芯片引脚外围电路之间有电压差的时候,就会增大待机时的电流。因此,也需要注意外围电路对芯片的影响,在低功耗的时候,需要将引脚进行上拉或下拉。
此外,由于工艺的原因,对于悬空的引脚也需要进行配置,避免在未定义的状况下会对电流造成影响。
还有一个比较简单快速的方法,就是将直接将引脚配置成 repeater mode,repeater mode 会根据引脚外部电平的高低直接对寄存器进行设置。这样不需要通过观察原理图,MCU 自己会根据外部环境去做配置。
图 7 用户手册上对 repeater mode 的解释
好了,那基本上通过这两种方式,便可以将 LPC804 的低功耗电流值降到 datasheet 上标注的范围内,同理,其他的 MCU 一样可以根据这个思路去对软件进行调整。
今天的内容就到这里,大家对于低功耗有其他的问题欢迎留言讨论。
参考文献
- https://www.nxp.com.cn/docs/en/data-sheet/LPC804.pdf LPC804 数据手册
- https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpc800-cortex-m0-plus-/low-cost-microcontrollers-mcus-based-on-arm-cortex-m0-plus-core:LPC80X?tab=Documentation_Tab 用户手册
评论
思考帝
2021年9月1日