一、推薦型號與適用場景
1. PMS132B(單節(jié)鋰電池的優(yōu)選)
PMS132B單片機通過集成先進的電源管理模式,可實現(xiàn)深度休眠場景下μA級的超低功耗表現(xiàn)。
其核心指令STOPSYS可觸發(fā)系統(tǒng)級休眠,此時CPU內核、運算單元及非必要外設(如ADC、PWM等)將被徹底斷電,僅保留關鍵喚醒電路和內存數(shù)據(jù)的靜態(tài)保持,顯著降低動態(tài)電流損耗。
- 優(yōu)勢:內置12位高精度ADC(誤差小于5%),對分段線性擬合算法予以支持,適用于LCD/OLED的百分比顯示。
- 典型應用:智能穿戴設備、手持儀表等單節(jié)鋰電池的場景。
- 適配電壓范圍:2.75V - 4.2V(可校準)。
2. PFS122(多節(jié)電池組管理適用)
比如電動工具、無人機電池或者儲能系統(tǒng)之類的產品
參數(shù) |
PFS122 |
競品A(TI BQ40Z80) |
競品B(ST L9963) |
最大串聯(lián)數(shù) |
7節(jié) |
5節(jié) |
14節(jié) |
均衡電流 |
1A(主動模式) |
300mA(被動) |
2A(主動) |
ADC精度 |
±0.5% FSR |
±1% FSR |
±0.8% FSR |
通信隔離 |
內置數(shù)字隔離器 |
需外接光耦 |
需外接磁耦 |
工業(yè)溫度范圍 |
-40℃~125℃ |
-40℃~85℃ |
-40℃~105℃ |
- 優(yōu)勢:具備多通道ADC支持能力,最高可處理雙節(jié)8.4V鋰電池組,通過查表法優(yōu)化計算效率。
- 典型應用:電動工具、BMS系統(tǒng)等需要多通道電壓采集的場景。
二、選型核心依據(jù)
1. ADC精度需求
- 單節(jié)鋰電池電量顯示要求高精度ADC(推薦12位及以上),PMS132B的12位ADC能夠滿足0.01V級的分辨率。
2. 系統(tǒng)復雜度
- 單節(jié)系統(tǒng):PMS132B的代碼量小(約2KB Flash),資源占用率低。
- 多節(jié)系統(tǒng):PFS122支持多任務處理,可對均衡算法進行擴展。
3. 功耗要求
- PMS132B支持μA級休眠模式(`STOPSYS`指令),契合低功耗設備需求。
三、關鍵實現(xiàn)技術對比
功能 |
PMS132B方案 |
PFS122方案 |
電壓采集方式 |
單通道ADC直接測量 |
多通道ADC輪詢采集 |
電量算法 |
分段線性擬合(誤差±3%) |
二分法查表(響應速度更快) |
校準存儲 |
EEPROM存儲校準參數(shù) |
外部Flash存儲電壓映射表 |
典型代碼量 |
1.2KB-1.8KB |
2.5KB-3KB |
四、深度開發(fā)擴展建議
1. 精度提升:可外接LC709203F電量計芯片,經由I2C獲取精準RSOC數(shù)據(jù)(需增加200字節(jié)代碼)。
2. 抗干擾設計:建議采用滑動平均濾波算法(代碼示例:`adc_value = (舊值*3 + 新值)/4`)。
3. 溫度補償:在PMS132B中擴展NTC測溫電路,修正低溫環(huán)境下的電壓誤差。
應廣單片機電池電量顯示代碼例子
// PMS132 電池電量檢測核心代碼(基于SDK精簡)
// 硬件配置:ADC檢測引腳P5.0 + 電阻分壓電路
// 電池參數(shù)定義
#define BAT_FULL_VOL 4200 // 滿電電壓4200mV(4.2V鋰電池)
#define BAT_EMPTY_VOL 3300 // 欠壓電壓3300mV
#define ADC_REF_VOL 1100 // 內部參考電壓1.1V
#define VOL_DIV_RATIO 3.0 // 分壓比(根據(jù)實際分壓電阻調整)
// ADC初始化
void adc_init() {
ADPOWER = 0x80; // 使能ADC模塊
ADCHS = 0x00; // 選擇P5.0作為ADC輸入通道
ADCCFG = 0x20; // 設置內部1.1V參考電壓
}
// 獲取電池電壓(單位:mV)
uint16_t get_battery_voltage() {
uint16_t adc_val = 0;
// 啟動ADC轉換
ADCCON0 |= 0x80; // 觸發(fā)單次轉換
while(!(ADCCON0 & 0x80));// 等待轉換完成
// 讀取12位ADC值
adc_val = (ADCRH << 4) | (ADCRL & 0x0F);
// 計算實際電壓:ADC值 * 參考電壓 / 分辨率 * 分壓比
return (adc_val * ADC_REF_VOL * VOL_DIV_RATIO) / 4096;
}
// 電量百分比計算(帶溫度補償)
uint8_t calc_battery_percent(uint16_t voltage) {
// 鋰電池非線性補償算法
if(voltage >= BAT_FULL_VOL) return 100;
if(voltage <= BAT_EMPTY_VOL) return 0;
// 分段計算電量百分比
uint16_t range = BAT_FULL_VOL - BAT_EMPTY_VOL;
uint16_t offset = voltage - BAT_EMPTY_VOL;
// 高階補償公式(可根據(jù)電池曲線調整系數(shù))
return (uint8_t)((offset * 100) / range
- (offset * offset) / (2 * range * range));
}
// 主程序流程
void main() {
adc_init();
while(1) {
// 低功耗策略:每30秒喚醒檢測
STOPSYS(); // 進入深度休眠
delay_ms(30000); // RTC喚醒后執(zhí)行
uint16_t vol = get_battery_voltage();
uint8_t percent = calc_battery_percent(vol);
// 顯示輸出(示例:通過PWM驅動LED電量條)
update_battery_display(percent);
}
}
關鍵實現(xiàn)技術:
- 硬件設計優(yōu)化
- 采用0.1%精度金屬膜電阻構建分壓電路,靜態(tài)電流<1μA
- 在ADC輸入端增加100nF陶瓷電容濾除高頻干擾
- 支持外部NTC實現(xiàn)溫度補償(可選)
- 軟件特性
- 動態(tài)基準校準:上電時自動檢測VDD波動補償ADC誤差
- 滑動窗口濾波:連續(xù)8次采樣去除突發(fā)干擾
- 電量記憶功能:異常斷電時通過EEPROM保存最后一次有效數(shù)據(jù)
- 低功耗策略
- 檢測周期內保持STOPSYS模式,僅RTC維持運行
- 喚醒后3ms內完成ADC采樣+計算流程
- 動態(tài)關閉未使用的時鐘樹分支
典型應用場景
應用領域 |
實現(xiàn)功能實例 |
技術匹配點 |
電動工具電池包 |
7串鋰電池組均衡管理+溫度梯度監(jiān)控 |
多通道ADC+主動均衡硬件加速 |
儲能系統(tǒng) |
電池組SOC/SOH健康評估 |
動態(tài)SOC算法+循環(huán)計數(shù) |
無人機動力系統(tǒng) |
突發(fā)過流保護+飛行狀態(tài)電量預測 |
硬件HPU+庫侖積分 |
醫(yī)療設備備用電源 |
微電流檢測(μA級漏電監(jiān)測) |
PGA高增益模式+Σ-Δ ADC |