这份文档是德州仪器(TI)发布的应用笔记(编号:ZHCA744),主要针对如何使用纽扣电池(如CR2032)为TI低功耗蓝牙芯片CC2640供电时优化电池使用寿命的问题进行了深入分析和优化建议。我反正是感觉低功耗的设计挺少的。
CC2640 支持 1.8V–3.8V 输入电压,可直接用纽扣电池(如 CR2032)供电,省去外部LDO或DC-DC电源芯片。
但在电池寿命后期,内阻显著升高,在芯片瞬间高电流活动(如 RF 发送)时,会因内阻压降触发Brown Out Detection(BOD)欠压复位保护机制,造成系统频繁复位、掉线,甚至提前“假死”。
以一颗典型CR2032为例:
前期(高电压):内阻小(<20Ω),压降可忽略。
后期(电压下降到约2.4V):内阻上升至100Ω以上。
在此状态下,如果进入RF发送,电流可能从 3mA → 6.1mA。
电池内阻带来压降 = 6.1mA × 100Ω = 610mV
,导致VDDS实际跌破 1.8V,触发BOD复位。
图3:展示电池电压下降过程中,内阻急剧上升;
图4~5(自己去看这个文档):展示 BOD 触发前期/后期的波形对比:
初期:蓝牙还能正常广播,但功耗升高;
后期:频繁复位 → 无法稳定通信,平均电流升至3.8mA,反而加速电池消耗。
对比两种品牌电池,电压相同时电池A压降达817mV,而电池B仅100mV,说明选型对性能影响极大。
在VDDS 加大电容(如 22uF~32uF)可缓冲电流尖峰,抑制压降;电容的地连接线需尽量短并直接接地,不要绕过孔。
在系统初始化中,加入判断是否由 BOD 引起复位。
若是BOD复位,则延迟 5 秒再进入 BLE 广播或 RF 发送,给电池时间恢复。
示例代码在 main.c
中通过 SysCtrlResetSourceGet()
判断复位类型,非正常上电或按键复位时延迟:
if ((rSrc != RSTSRC_PWR_ON) && (rSrc != RSTSRC_PIN_RESET))
{
Task_sleep(5000 * (1000 / Clock_tickPeriod)); // 延时5秒
}
实验使用外接电阻模拟电池内阻,调整供电电压,观测BOD触发门限:
纽扣电池后期内阻升高 → 电压压降 → BOD频繁复位 → 功耗反而增加。
目标:延迟BOD触发时机、减少复位过程电流消耗。
推荐组合措施: