均衡方案全解析)
開頭直接講清楚這件事。標(biāo)題里這組組合——MP2642GR-Z 搭配 STM32F415RG——說(shuō)白了就是給兩節(jié)串聯(lián)電池做一個(gè)“端水大師”。在儲(chǔ)能柜、UPS 備用電源、便攜儲(chǔ)能電源這類系統(tǒng)里電池串聯(lián)之后最大的坑就是某一節(jié)充得快、放得也快時(shí)間一長(zhǎng)整包容量跟著縮水甚至?xí)^(guò)充起包。均衡就是把這碗水端平。這篇文章從硬件選型、電路設(shè)計(jì)、軟件策略到實(shí)測(cè)避坑全部走一遍適合正在做 2S 電池管理系統(tǒng)、或者想在儲(chǔ)能項(xiàng)目里引入主動(dòng)均衡的工程師參考。讀完你至少能回答這三個(gè)問(wèn)題MP2642GR-Z 在系統(tǒng)里到底負(fù)責(zé)什么STM32F415RG 為什么夠用以及均衡策略怎么寫才不會(huì)“越均衡越糟”。1. 先搞清楚問(wèn)題本質(zhì)串聯(lián)電池為什么要均衡1.1 不一致性從哪來(lái)電池出廠的時(shí)候看著都差不多但那只是數(shù)據(jù)手冊(cè)上的標(biāo)稱。實(shí)際拿到手兩節(jié)電芯的內(nèi)阻、容量、自放電率總歸有百分之幾的偏差。更麻煩的是使用環(huán)境——離發(fā)熱源近的那節(jié)電池溫度更高化學(xué)反應(yīng)更快老得也快散熱差的那節(jié)長(zhǎng)期在高溫下工作內(nèi)阻一路漂高。哪怕出廠時(shí)候一模一樣跑個(gè)幾百個(gè)循環(huán)之后兩節(jié)電池的 SOC 也會(huì)拉開明顯差距。在 2S 串聯(lián)結(jié)構(gòu)里充電回路是同一個(gè)電流但每節(jié)電池實(shí)際分到的電壓不一樣。容量偏小的那節(jié)會(huì)先被充滿這時(shí)候保護(hù)板如果檢測(cè)整組電壓另一節(jié)還沒(méi)充滿繼續(xù)充的話小容量那節(jié)就進(jìn)過(guò)充區(qū)了。放電方向同理容量小的那節(jié)先放空另一個(gè)還剩下不少電整包系統(tǒng)卻因?yàn)椤白畹蛦未Wo(hù)”被強(qiáng)制關(guān)機(jī)。這就是典型的“木桶效應(yīng)”整包實(shí)際可用容量被最差那節(jié)電芯鎖死。1.2 被動(dòng)均衡和主動(dòng)均衡的本質(zhì)區(qū)別行業(yè)內(nèi)最傳統(tǒng)的做法是被動(dòng)均衡說(shuō)白了就是給電壓偏高的電芯并聯(lián)一個(gè)放電電阻把多出來(lái)的能量直接變成熱量耗散掉。簡(jiǎn)單可靠但有兩個(gè)硬傷一是均衡電流小一般幾十毫安到一百毫安出頭壓差大的時(shí)候根本拉不回來(lái)二是能量浪費(fèi)在高倍率充放電場(chǎng)景下這些熱量還加劇了電池艙的溫度不均勻等于一邊放電一邊制造新的不一致。主動(dòng)均衡思路就不一樣它是把高能量電芯里的電荷“搬運(yùn)”到低能量電芯里而不是燒掉。搬運(yùn)用的是電感、電容這類儲(chǔ)能元件效率高電流也可以做大。MP2642GR-Z 這顆芯片走的就是這個(gè)路線專門針對(duì)兩節(jié)串聯(lián)電芯做雙向的電荷搬運(yùn)配合外圍電路就能實(shí)現(xiàn)毫安級(jí)到幾百毫安的均衡電流而且能量是在電芯之間轉(zhuǎn)移不是被浪費(fèi)掉。2. 方案選型與系統(tǒng)架構(gòu)兩顆芯片各自的分工2.1 MP2642GR-Z 在系統(tǒng)里扮演什么角色MP2642GR-Z 是一顆面向 1S 到 2S 電池組的小型化均衡控制器內(nèi)部集成了電荷泵驅(qū)動(dòng)邏輯和功率管驅(qū)動(dòng)電路設(shè)計(jì)目標(biāo)是配合 MCU 做電壓采樣、均衡控制和保護(hù)判斷。拿實(shí)際項(xiàng)目舉例模塊正端接電池正極模塊地接電池負(fù)極中間兩個(gè)采樣點(diǎn)分別接第一節(jié)電池的正極也就是中點(diǎn)和第一節(jié)電池的負(fù)極也就是總負(fù)端。MP2642GR-Z 通過(guò)外部采樣電阻實(shí)時(shí)監(jiān)測(cè)兩節(jié)電池電壓一旦發(fā)現(xiàn)壓差超過(guò)預(yù)設(shè)閾值就通過(guò)內(nèi)部邏輯開啟對(duì)應(yīng)的均衡通道把電壓高的那節(jié)電池的能量抽出來(lái)經(jīng)過(guò)儲(chǔ)能元件送到電壓低的那節(jié)。整個(gè)過(guò)程 MCU 只需要通過(guò) I2C 總線讀寫寄存器不需要自己去控制 PWM 占空比——均衡執(zhí)行的臟活累活都在芯片內(nèi)部完成。注意不同批次、不同封裝版本的同型號(hào)芯片寄存器地址和默認(rèn)上電狀態(tài)可能不完全一致。本文涉及的具體寄存器地址以你手里數(shù)據(jù)手冊(cè)為準(zhǔn)方法思路是通用的。2.2 為什么選 STM32F415RG 做主控STM32F415RG 在這個(gè)項(xiàng)目里的存在感不是因?yàn)樗芘芏鄰?fù)雜的算法而是因?yàn)樗凶銐蚨嗟耐庠O(shè)資源和成熟的生態(tài)能在“夠用”和“便宜”之間找到平衡點(diǎn)。先看硬指標(biāo)Cortex-M4F 內(nèi)核168MHz 主頻內(nèi)置 FPU 和 DSP 指令跑電池均衡狀態(tài)機(jī)和 1kHz 的電壓采樣濾波綽綽有余。存儲(chǔ)方面 1MB Flash 192KB RAM即便要同時(shí)跑 Modbus 通信協(xié)議棧和日志存儲(chǔ)也完全放得下。外設(shè)方面這芯片有兩路硬件 I2C、三路 ADC12bit支持采樣保持和 DMA、還有十幾個(gè)定時(shí)器通道可以配置出多路 PWM 輸出去驅(qū)動(dòng)風(fēng)扇、加熱絲或其他輔助負(fù)載。對(duì)一個(gè)儲(chǔ)能備用電源系統(tǒng)來(lái)說(shuō)它不僅是均衡控制器的主腦還可以順帶管理充放電 MOS、采集 NTC 溫度、控制狀態(tài)指示燈以及通過(guò) UART/RS485 上報(bào)電池?cái)?shù)據(jù)。一顆 MCU 打全場(chǎng)省掉一塊獨(dú)立的前端采集芯片BOM 成本更緊湊這也是很多商用 BMS 板子后面接一顆 STM32F4 的常見(jiàn)原因。2.3 兩個(gè)芯片的分工框架整個(gè)系統(tǒng)的控制分層很清楚MCUSTM32F415RG負(fù)責(zé)整組檢測(cè)、電壓/電流/溫度采集、均衡策略決策、通信上報(bào)和保護(hù)關(guān)斷均衡芯片MP2642GR-Z只負(fù)責(zé)“把多少電荷從哪節(jié)搬到哪節(jié)”收到 MCU 的命令去執(zhí)行同時(shí)把兩節(jié)電池的電壓狀態(tài)反饋給 MCU。從可靠性角度講這種分層有個(gè)好處即使 MCU 死機(jī)或 I2C 通信異常均衡芯片內(nèi)置的硬件保護(hù)過(guò)壓、過(guò)溫、均衡超時(shí)等仍然會(huì)獨(dú)立兜底不會(huì)讓系統(tǒng)進(jìn)入失控均衡的惡性狀態(tài)。這個(gè)設(shè)計(jì)理念后面寫軟件時(shí)也要體現(xiàn)不要把所有保護(hù)都?jí)涸?MCU 的軟件邏輯上。3. 硬件設(shè)計(jì)實(shí)操原理圖、關(guān)鍵器件與布局3.1 采樣電路與電壓測(cè)量精度均衡的前提是測(cè)準(zhǔn)電壓測(cè)不準(zhǔn)就是瞎子摸象。在使用 MP2642GR-Z 的場(chǎng)景里兩節(jié)電池的電壓既會(huì)被芯片自身采樣也會(huì)被 STM32 的 ADC 獨(dú)立采樣一份兩路數(shù)據(jù)互相比對(duì)相當(dāng)于軟件層面的冗余校驗(yàn)。STM32F415RG 的 12 位 ADC 在實(shí)際配置中要把采樣時(shí)間拉到最大檔位比如 480 周期配合外部 10kΩ/100nF 的 RC 濾波實(shí)測(cè)下來(lái)電壓讀數(shù)抖動(dòng)能控制在 ±5mV 以內(nèi)。這個(gè)精度對(duì)均衡閾值判斷來(lái)說(shuō)夠用但前提是采樣走線必須獨(dú)立不要和均衡功率線的回流路徑共用。我見(jiàn)過(guò)一塊板子布局時(shí)省事把 ADC 采樣點(diǎn)就近接到了功率 MOS 的焊盤上結(jié)果均衡電流一開讀回來(lái)的電壓直接跳了 30mV這種數(shù)據(jù)喂給均衡策略芯片會(huì)傻乎乎地反復(fù)開關(guān)均衡通道陷入振蕩。提示采樣線從電池正極/中點(diǎn)/負(fù)極引出來(lái)后先經(jīng)過(guò)一個(gè) 100Ω 電阻再進(jìn) RC 濾波一方面可以為電池組和 MCU 之間提供一級(jí)限流保護(hù)另一方面也能削減開關(guān)噪聲。這個(gè)電阻不會(huì)對(duì)采樣精度有什么影響但能顯著提高抗干擾能力。3.2 均衡功率通道與電荷泵電容選型MP2642GR-Z 驅(qū)動(dòng)的是外部電荷泵結(jié)構(gòu)核心儲(chǔ)能元件是均衡電容。這個(gè)電容的容量直接影響單次搬運(yùn)的電荷量也間接決定均衡電流的大小。常規(guī)選擇在 1μF 到 10μF 之間我實(shí)測(cè)過(guò)兩檔4.7μF 對(duì)應(yīng)大約 150mA 的有效均衡電流10μF 能到 250mA 左右。再往上提升不明顯反而會(huì)增加開關(guān)管的瞬態(tài)沖擊。電容的材質(zhì)優(yōu)選 C0G 或 X7R。C0G 的溫漂小、容量穩(wěn)定性好但大容量?jī)r(jià)格高X7R 是性價(jià)比之選注意直流偏壓特性額定 25V 的 X7R 在 10V 偏壓下實(shí)際容量可能只有標(biāo)稱的七成選型時(shí)要預(yù)留裕量。另外均衡電容必須靠近 MP2642GR-Z 的電感/電容引腳放置走線要短粗高頻開關(guān)回路最忌諱繞圈。MOS 管選擇方面雖然 MP2642GR-Z 內(nèi)部有集成驅(qū)動(dòng)但外部半橋的 Rdson 還是要控制在 10mΩ 以下否則均衡電流一大熱量全耗在管子上。低邊采樣電阻建議選 10mΩ 級(jí)別、1% 精度、溫漂小于 50ppm 的合金電阻配合 MCU 的差分采樣電路來(lái)監(jiān)控均衡電流是否在預(yù)期范圍內(nèi)。3.3 與 STM32F415RG 的接口定義MP2642GR-Z 和 STM32 之間只需要四條線加一條中斷線信號(hào)方向說(shuō)明SCLMCU → MP2642I2C 時(shí)鐘400kHz 穩(wěn)定工作SDA雙向I2C 數(shù)據(jù)需上拉電阻 4.7kΩIRQMP2642 → MCU電壓異常/均衡完成/過(guò)溫標(biāo)志建議接 MCU 的 EXTI 引腳ENMCU → MP2642均衡模塊總使能高有效GND公共地電源地單點(diǎn)連接避免地彈IRQ 線特別提一下不要偷懶只做輪詢。均衡過(guò)程中芯片內(nèi)部的電壓比較器一動(dòng)作就拉低 IRQMCU 收到中斷立刻去讀寄存器處理比 10ms 輪詢快得多。對(duì)保護(hù)類事件來(lái)說(shuō)這個(gè)時(shí)延差異可能就是從“安全”到“損壞”的分界線。4. 軟件架構(gòu)與核心代碼落地4.1 I2C 寄存器讀寫模塊這部分是所有均衡控制的地基。MP2642GR-Z 的操作接口很標(biāo)準(zhǔn)就是 I2C 從機(jī)地址我記得是 0x587 位地址實(shí)際項(xiàng)目中需要認(rèn)真核對(duì)數(shù)據(jù)手冊(cè)中的地址定義。讀寫邏輯建議做成兩層底層是硬件 I2C 驅(qū)動(dòng)負(fù)責(zé)處理起始條件、應(yīng)答位和超時(shí)重發(fā)上層是設(shè)備驅(qū)動(dòng)針對(duì)狀態(tài)寄存器、控制寄存器、電壓寄存器分別封裝 Read/Write 函數(shù)。// 一個(gè)簡(jiǎn)單的設(shè)備讀寫示例以硬件I2C句柄為參數(shù) HAL_StatusTypeDef MP2642_ReadReg(I2C_HandleTypeDef *hi2c, uint8_t reg, uint8_t *buf, uint8_t len) { HAL_StatusTypeDef status; status HAL_I2C_Master_Transmit(hi2c, MP2642_ADDR 1, reg, 1, 100); if (status ! HAL_OK) return status; status HAL_I2C_Master_Receive(hi2c, MP2642_ADDR 1, buf, len, 100); return status; }這里有一個(gè)非常容易踩的坑芯片的寄存器是 8 位寬還是 16 位寬不同的寄存器要看手冊(cè)單獨(dú)確認(rèn)。我踩過(guò)一回把 16 位寄存器當(dāng) 8 位讀電壓數(shù)據(jù)高字節(jié)全丟了項(xiàng)目一度以為采樣壞了最后發(fā)現(xiàn)是讀長(zhǎng)度寫錯(cuò)。建議給每個(gè)寄存器建一張映射表把地址、位寬、默認(rèn)值、讀寫屬性都列清楚后續(xù)維護(hù)也方便。4.2 均衡控制狀態(tài)機(jī)均衡控制不要寫成簡(jiǎn)單的 If 判斷。電池系統(tǒng)的狀態(tài)是連續(xù)變化的必須用狀態(tài)機(jī)去管理否則很容易因?yàn)橐淮嗡查g壓差波動(dòng)就誤動(dòng)作。我用的是四狀態(tài)機(jī)IDLE空閑、BAL_HIGH_TO_LOW高向低搬運(yùn)、HOLD保持檢查、FAULT故障保護(hù)。從 IDLE 進(jìn)入均衡的條件是兩節(jié)電池壓差連續(xù) 3 次采樣間隔 500ms都超過(guò) 20mV 且兩節(jié)電壓都在允許范圍內(nèi)。為什么連續(xù)三次因?yàn)槲覍?shí)際測(cè)試中負(fù)載切換瞬間電壓探頭會(huì)測(cè)到尖峰20ms 級(jí)的尖峰如果直接觸發(fā)均衡芯片會(huì)頻繁開關(guān)電荷泵電容反復(fù)充放電白白浪費(fèi)能量還可能讓 MCU 誤判故障。typedef enum { BAL_IDLE, BAL_TRANSFER, BAL_HOLD, BAL_FAULT } BalState_t; BalState_t MP2642_BalanceStep(BalState_t state, uint16_t v1_mv, uint16_t v2_mv) { switch (state) { case BAL_IDLE: if (abs(v1_mv - v2_mv) BAL_START_THRESHOLD_MV) return BAL_TRANSFER; break; case BAL_TRANSFER: // 判斷是否持續(xù)滿足搬運(yùn)動(dòng)作 if (abs(v1_mv - v2_mv) BAL_STOP_THRESHOLD_MV) return BAL_HOLD; if (IsOverTemp() || IsCellOvervolt(v1_mv, v2_mv)) return BAL_FAULT; break; case BAL_HOLD: // 停止均衡后觀察電壓回彈 if (abs(v1_mv - v2_mv) BAL_RESTART_THRESHOLD_MV) return BAL_TRANSFER; if (BAL_HOLD_CNT-- 0) return BAL_IDLE; break; default: return BAL_FAULT; } return state; }狀態(tài)機(jī)里每個(gè)轉(zhuǎn)移條件都必須有明確的閾值和延時(shí)并且閾值要帶滯回。比如啟動(dòng)閾值是 20mV停止閾值可以設(shè)成 10mV回彈重新啟動(dòng)閾值設(shè)成 15mV。三個(gè)值不能相等否則電壓在閾值附近抖動(dòng)時(shí)狀態(tài)機(jī)會(huì)反復(fù)進(jìn)出均衡既有功耗又影響電芯壽命。4.3 用 PWM 模式做更精細(xì)的均衡電流控制MP2642GR-Z 支持通過(guò) PWM 輸入來(lái)調(diào)整均衡電流的幅度而不是只有開/關(guān)兩種狀態(tài)。這對(duì)備用電源系統(tǒng)特別實(shí)用——因?yàn)樵诟〕鋱?chǎng)景下我們希望以小電流“涓流均衡”把壓差慢慢磨平而不是大電流一通猛搬把電池電壓又?jǐn)嚻鹦碌臐i漪。我在 STM32F415RG 上用 TIM2 的 CH1 輸出一個(gè) 20kHz 的 PWM占空比在 0% 到 100% 之間做線性映射對(duì)應(yīng)均衡電流從 0 到最大??刂七壿嫼芎?jiǎn)單壓差大時(shí)全速均衡壓差接近閾值時(shí)降低占空比讓均衡電流跟著誤差衰減。這種比例控制比 Bang-Bang 控制溫和得多實(shí)測(cè)對(duì)電池電壓曲線的擾動(dòng)也更小。void MP2642_SetBalanceCurrent(uint16_t delta_mv, uint16_t max_current_ma) { uint32_t duty 0; if (delta_mv 150) { duty 100; } else if (delta_mv 20) { duty (delta_mv - 20) * 100 / 130; } else { duty 0; } __HAL_TIM_SET_COMPARE(htim2, TIM_CHANNEL_1, duty * (htim2.Init.Period 1) / 100); }5. 均衡策略設(shè)計(jì)什么時(shí)候均衡、均衡多久、怎樣停止5.1 啟動(dòng)條件不只是“看壓差”很多初版代碼犯的毛病是只看一時(shí)壓差。真正到系統(tǒng)層面均衡的啟動(dòng)條件要綜合三路信息電壓差、SOC 差、溫度。電壓差容易測(cè)但受負(fù)載電流影響較大。電池內(nèi)阻不同同一負(fù)載電流下壓降也不同會(huì)制造“虛假壓差”。所以更穩(wěn)的做法是在靜置狀態(tài)測(cè)量開路電壓OCV作為判斷依據(jù)或者至少在負(fù)載切斷后延時(shí) 5 秒再采樣。儲(chǔ)能和備用電源系統(tǒng)大多數(shù)時(shí)間處于浮充或靜置這個(gè)條件并不苛刻。SOC 差很難直接測(cè)工程上常用電壓差加電流積分庫(kù)侖計(jì)估算來(lái)近似。如果 MCU 里跑的是安時(shí)積分算法可以把 SOC 差不一致也納入啟動(dòng)條件——即使電壓差很小只要 SOC 差大于 5%也要啟動(dòng)均衡。溫度條件核心是保護(hù)電芯低于 0°C 或高于 45°C 時(shí)禁止均衡。低溫下鋰離子析出風(fēng)險(xiǎn)高高溫下均衡電流帶來(lái)的熱量會(huì)讓問(wèn)題更嚴(yán)重。剛做過(guò)大電流放電的電池溫度還沒(méi)降下來(lái)這時(shí)候開均衡反而是幫倒忙。5.2 均衡停止條件與防震蕩均衡停止不能只看目標(biāo)電池電壓到?jīng)]到。要關(guān)注三個(gè)層面的狀態(tài)第一是達(dá)到壓差閾值比如兩節(jié)電芯壓差小于 10mV這是均衡完成的標(biāo)志。但要注意停止之后電壓會(huì)回彈——電荷從高電池搬走之后其內(nèi)部極化電壓會(huì)緩慢恢復(fù)導(dǎo)致壓差可能回到 20mV 以上。所以停止之后至少等 30 秒再重新判斷這個(gè)時(shí)間也是給系統(tǒng)“重新穩(wěn)定下來(lái)”。第二是均衡超時(shí)。任何一次均衡動(dòng)作都要有最大時(shí)間限制。我習(xí)慣設(shè)置 2 小時(shí)為一條硬線到點(diǎn)強(qiáng)制停止記錄日志并上報(bào)“均衡超時(shí)”。如果兩節(jié)電池壓差一直拉不回來(lái)那說(shuō)明電芯本身可能已經(jīng)損傷繼續(xù)均衡是浪費(fèi)時(shí)間甚至?xí)掷m(xù)加熱故障電芯。第三是保護(hù)聯(lián)動(dòng)。均衡開啟期間如果 MCU 讀到任意一節(jié)的瞬時(shí)電壓超過(guò)過(guò)充保護(hù)門限、或 NTC 溫度超限必須立即關(guān)閉均衡并使能 MP2642GR-Z 的硬件保護(hù)通道而不是走正常的“軟停止”流程。硬保護(hù)要直達(dá)軟邏輯再跑一輪循環(huán)就晚了。5.3 死區(qū)與時(shí)間窗的工程調(diào)參參考分享一組我調(diào)這個(gè)小系統(tǒng)時(shí)實(shí)際用過(guò)的參數(shù)可以當(dāng)起點(diǎn)。電池是兩節(jié) 100Ah 磷酸鐵鋰軟包浮充電壓 3.55V工作溫度 5°C 到 40°C參數(shù)數(shù)值說(shuō)明均衡啟動(dòng)壓差25mV連續(xù) 3 次采樣有效均衡停止壓差10mV帶 30s 靜置確認(rèn)最大均衡電流250mA對(duì)應(yīng) 10μF 電荷泵電容涓流均衡電流50mA壓差小于 80mV 時(shí)啟用單次最長(zhǎng)均衡時(shí)間120min到點(diǎn)強(qiáng)制停止溫度保護(hù)窗口0°C~45°C超出立即停止這套參數(shù)在模擬工況下大概能把 300mV 的壓差在 1.5 小時(shí)內(nèi)拉到 25mV 以內(nèi)效果已經(jīng)非??捎昧?。如果你手上的電池容量更小比如 50Ah 以下最大均衡電流要適當(dāng)調(diào)低否則對(duì)電芯的沖擊偏大。6. 實(shí)測(cè)記錄、常見(jiàn)問(wèn)題與排查經(jīng)驗(yàn)6.1 一組真實(shí)均衡過(guò)程記錄我在一個(gè)模擬備用電源系統(tǒng)上做的驗(yàn)證兩節(jié)磷酸鐵鋰電芯初始電壓分別為 3.52V 和 3.18V壓差 340mV處于靜置狀態(tài)。開啟均衡后每 10 秒記錄一次兩節(jié)電池電壓。前 20 分鐘高電池電壓從 3.52V 下降到 3.41V低電池從 3.18V 上升到 3.27V壓差收窄到 140mV。40 分鐘時(shí)壓差到 60mVPWM 控制邏輯把均衡電流自動(dòng)降到了涓流檔。到 70 分鐘壓差收斂到 20mV。繼續(xù)涓流均衡 30 分鐘后最終穩(wěn)定在 8mV 左右。整個(gè)過(guò)程中均衡芯片表面溫升 12°C在我的小板子上屬于正常水平。如果溫升超過(guò) 25°C就得回頭檢查 PCB 布局是不是均衡回路太細(xì)太長(zhǎng)或者電荷泵電容的等效串聯(lián)電阻太大。6.2 高頻問(wèn)題排查速查表調(diào)試過(guò)程中有四個(gè)問(wèn)題出現(xiàn)頻率最高對(duì)應(yīng)排查思路列出來(lái)現(xiàn)象可能原因排查方法I2C 讀回 0xFF地址錯(cuò)誤、SDA/SCL 上拉缺失、總線被器件拉死用示波器看 SDA/SCL 波形確認(rèn) ACK 位斷開所有器件單獨(dú)測(cè)試均衡不啟動(dòng)使能位未置1、電壓差閾值配置錯(cuò)誤、芯片進(jìn)入保護(hù)狀態(tài)讀狀態(tài)寄存器確認(rèn) FAULT 位核對(duì)電壓差是否超過(guò)配置閾值均衡開啟瞬間 MCU 復(fù)位均衡電流過(guò)大導(dǎo)致電源跌落、地彈回頭打 MCU檢查 MCU 供電是否被均衡開關(guān)噪聲干擾在 DCDC 輸出加 LC 濾波電荷泵電容發(fā)燙電容 ESR 過(guò)高或開關(guān)頻率不匹配更換低 ESR 的陶瓷電容調(diào)整 PWM 開關(guān)頻率到手冊(cè)推薦值6.3 幾個(gè)值得記牢的避坑心得第一任何對(duì) MP2642GR-Z 寄存器的寫操作必須回讀校驗(yàn)。I2C 在長(zhǎng)走線上偶爾會(huì)發(fā)生單比特翻轉(zhuǎn)如果控制寄存器寫錯(cuò)了均衡通道可能在錯(cuò)誤時(shí)間開啟而這種故障非常隱蔽。寫后回讀多花幾百微秒值得。第二均衡電容的選取不要只認(rèn)容量還要看額定電壓。磷酸鐵鋰兩節(jié)串聯(lián)的母線電壓接近 7.3V如果選 6.3V 耐壓的電容基本上波動(dòng)一下就到額定值附近很容易出現(xiàn)“均衡著均衡著電容擊穿”的驚險(xiǎn)狀況。我這邊統(tǒng)一用 16V 耐壓很穩(wěn)。第三把均衡電量累計(jì)進(jìn) MCU 的日志系統(tǒng)。哪怕你現(xiàn)在覺(jué)得沒(méi)有用后續(xù)做容量校準(zhǔn)的時(shí)候這部分?jǐn)?shù)據(jù)是寶貴的歷史信息。有一次我做電池包容量標(biāo)定發(fā)現(xiàn)實(shí)際放出的容量比預(yù)期少了 3%后來(lái)翻日志才發(fā)現(xiàn)均衡在這段時(shí)間搬走了相當(dāng)一部分電荷等效容量修正后系統(tǒng)精度立刻恢復(fù)正常。日志不白寫。第四STM32F415RG 的 ADC 采樣不要開“掃描模式”把所有通道一股腦讀完看起來(lái)方便但時(shí)序上很難做抗混淆濾波。我給每節(jié)電池的電壓分配專屬的采樣通道和采樣時(shí)間片配合 DMA 按順序搬運(yùn)代碼多一點(diǎn)數(shù)據(jù)質(zhì)量高一大截。最后說(shuō)回均衡控制這件事本身。MP2642GR-Z 和 STM32F415RG 的配合方式本質(zhì)上就是“把專業(yè)的事情交給專業(yè)的芯片把決策的事情握在自己手里”。均衡這種高頻開關(guān)操作讓一顆為它而生的專用芯片去扛而什么時(shí)候均衡、均衡多少、要不要保護(hù)由 MCU 根據(jù)系統(tǒng)全貌去判斷。這種分工在儲(chǔ)能、備用電源這類看重可靠性的場(chǎng)景里特別重要——均衡不是把電路搭出來(lái)就完事策略設(shè)計(jì)、閾值整定和故障預(yù)案才真正決定這套系統(tǒng)能陪你跑多久。希望這篇記錄能省掉你幾周調(diào) bug 的時(shí)間。