這份文檔是德州儀器(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觸發時機、減少復位過程電流消耗。
推薦組合措施: