均衡方案設(shè)計(jì)與實(shí)現(xiàn))
1. 從兩串電池的電壓差說起為什么被動(dòng)均衡在儲(chǔ)能場(chǎng)景里依然能打儲(chǔ)能和備用電源系統(tǒng)里兩串電池單元串聯(lián)使用是最常見的架構(gòu)之一。不管是小型的便攜式儲(chǔ)能電源還是通信基站的備用電池組只要涉及串聯(lián)就繞不開一個(gè)核心問題兩個(gè)串聯(lián)電池單元之間的電壓不一致。這個(gè)問題看起來不起眼但它是導(dǎo)致整組電池容量衰減加速、壽命縮短的頭號(hào)殺手。我接觸過不少做BMS電池管理系統(tǒng)的開發(fā)者很多人一上來就想上主動(dòng)均衡覺得被動(dòng)均衡太low。但實(shí)際項(xiàng)目跑下來尤其是中小功率的儲(chǔ)能和備用電源場(chǎng)景被動(dòng)均衡配合一顆合適的均衡控制芯片反而是性價(jià)比最高、最穩(wěn)定的方案。這次要聊的就是用MP2642GR-Z這顆均衡控制芯片搭配STM32F405ZG主控去解決兩個(gè)串聯(lián)電池單元的均衡問題。MP2642GR-Z是一顆專門為串聯(lián)電池均衡設(shè)計(jì)的控制芯片它的核心能力是監(jiān)測(cè)每節(jié)電池的電壓并在檢測(cè)到電壓差超過設(shè)定閾值時(shí)控制外部均衡MOS管對(duì)高電壓的那節(jié)電池進(jìn)行放電。STM32F405ZG則是ST的Cortex-M4主力型號(hào)168MHz主頻、1MB Flash、192KB RAM帶FPU和DSP指令用來跑BMS的采樣、邏輯判斷、通信和狀態(tài)機(jī)綽綽有余。這套組合解決的核心問題是讓兩節(jié)串聯(lián)電池在充放電循環(huán)中始終保持電壓一致避免某一節(jié)過充或過放從而延長(zhǎng)整組電池的循環(huán)壽命。適合誰(shuí)看做儲(chǔ)能BMS的嵌入式工程師、備用電源產(chǎn)品的硬件開發(fā)者以及正在選型均衡方案的技術(shù)負(fù)責(zé)人。如果你手上正好有兩串電池的項(xiàng)目或者想搞清楚被動(dòng)均衡到底該怎么落地這篇內(nèi)容應(yīng)該能幫你少走不少?gòu)澛贰?. MP2642GR-Z的均衡邏輯拆解它到底怎么判斷該均衡了2.1 芯片內(nèi)部的工作機(jī)制與閾值設(shè)定MP2642GR-Z的工作邏輯其實(shí)不復(fù)雜但細(xì)節(jié)決定了它好不好用。它的核心是一個(gè)電壓比較器加一個(gè)狀態(tài)機(jī)。芯片會(huì)持續(xù)監(jiān)測(cè)兩節(jié)串聯(lián)電池各自的電壓當(dāng)兩節(jié)電池的壓差超過內(nèi)部設(shè)定的閾值時(shí)對(duì)應(yīng)的均衡輸出引腳就會(huì)被拉低或拉高取決于具體配置去驅(qū)動(dòng)外部的均衡MOS管。這里有個(gè)關(guān)鍵點(diǎn)很多人會(huì)忽略MP2642GR-Z的均衡閾值不是隨便設(shè)的它和電池的化學(xué)體系直接相關(guān)。磷酸鐵鋰和三元鋰的電壓平臺(tái)不一樣均衡窗口的設(shè)定邏輯也不同。磷酸鐵鋰的放電平臺(tái)非常平坦電壓差在平臺(tái)區(qū)可能很小但一旦到了兩端壓差會(huì)迅速拉開。所以如果你用的是磷酸鐵鋰均衡閾值得設(shè)得稍微激進(jìn)一點(diǎn)比如30mV到50mV如果是三元鋰平臺(tái)區(qū)斜率大一些20mV到30mV就夠用了。芯片內(nèi)部還有一個(gè)消抖時(shí)間的概念。它不會(huì)因?yàn)橐凰查g的電壓波動(dòng)就觸發(fā)均衡而是需要壓差持續(xù)超過閾值一段時(shí)間才會(huì)動(dòng)作。這個(gè)時(shí)間通常是幾十毫秒到幾百毫秒量級(jí)具體看芯片的配置。這個(gè)設(shè)計(jì)很合理因?yàn)殡姵卦诔浞烹娺^程中電壓本身就會(huì)有紋波和瞬態(tài)波動(dòng)如果沒有消抖均衡MOS管會(huì)頻繁開關(guān)既浪費(fèi)功耗又影響可靠性。2.2 外部均衡電路的設(shè)計(jì)要點(diǎn)MP2642GR-Z本身不直接泄放電流它需要外部的均衡MOS管和泄放電阻來完成能量消耗。這就涉及到一個(gè)核心參數(shù)的計(jì)算均衡電流該設(shè)多大。均衡電流的公式很簡(jiǎn)單I V_cell / R_bleed。假設(shè)單節(jié)電池電壓是3.7V你希望均衡電流在50mA左右那R_bleed就是74歐姆取標(biāo)準(zhǔn)值75歐姆。但這里有個(gè)坑泄放電阻的功率必須算夠。50mA乘以3.7V是0.185W你不能用一個(gè)0603的電阻去扛至少得0805或者1206封裝功率余量留到0.25W以上才穩(wěn)妥。均衡MOS管的選擇也有講究。因?yàn)樗情L(zhǎng)期工作在導(dǎo)通狀態(tài)導(dǎo)通電阻Rds(on)要盡量小減少自身發(fā)熱。同時(shí)Vgs(th)要低確保在電池電壓下降到3V左右時(shí)還能可靠導(dǎo)通。我一般會(huì)選Vgs(th)在1V到1.5V之間的邏輯電平MOS管比如常見的AO3400系列就挺合適。還有一個(gè)容易被忽視的點(diǎn)均衡回路的PCB布局。泄放電阻和MOS管要盡量靠近電池引腳回路面積要小否則在大電流泄放時(shí)會(huì)產(chǎn)生較大的di/dt噪聲干擾MP2642GR-Z的電壓采樣。我見過一個(gè)案例均衡電流才80mA但因?yàn)榛芈纷呔€太長(zhǎng)導(dǎo)致采樣電壓跳變超過100mV芯片誤判為壓差過大均衡一直停不下來。2.3 和STM32F405ZG的分工邊界MP2642GR-Z負(fù)責(zé)的是實(shí)時(shí)、快速的均衡動(dòng)作它自己就能閉環(huán)完成電壓比較和MOS管驅(qū)動(dòng)。STM32F405ZG的角色則是監(jiān)督、記錄、通信。具體來說STM32要做幾件事第一通過ADC或者外部電壓采集芯片讀取兩節(jié)電池的電壓做二次校驗(yàn)第二監(jiān)控MP2642GR-Z的狀態(tài)輸出引腳判斷當(dāng)前是否在均衡第三記錄均衡發(fā)生的次數(shù)和持續(xù)時(shí)間用于電池健康度評(píng)估第四通過CAN或者UART把電池狀態(tài)上報(bào)給上位機(jī)。這里的分工邏輯是快速保護(hù)交給專用芯片慢速管理和通信交給MCU。這樣做的好處是即使STM32跑飛或者復(fù)位MP2642GR-Z依然能獨(dú)立完成均衡保護(hù)不會(huì)因?yàn)橹骺毓收蠈?dǎo)致電池失衡。這個(gè)設(shè)計(jì)思路在功能安全要求較高的儲(chǔ)能場(chǎng)景里非常重要。3. STM32F405ZG的固件架構(gòu)采樣、判斷、通信怎么串起來3.1 電壓采樣通道的配置與校準(zhǔn)STM32F405ZG自帶12位ADC最多可以到16個(gè)外部通道。用來采兩節(jié)電池的電壓通道數(shù)綽綽有余。但直接采電池電壓有個(gè)問題STM32的ADC參考電壓是3.3V而兩節(jié)串聯(lián)電池的總電壓可能到8.4V遠(yuǎn)超ADC量程。所以必須用電阻分壓。分壓電阻的選擇要平衡兩個(gè)因素功耗和精度。假設(shè)你用100k和100k分壓總阻值200k8.4V下電流是42uA功耗可以忽略。但分壓后的阻抗是50kSTM32的ADC要求源阻抗不能太高否則采樣保持電容充不滿精度會(huì)掉。所以實(shí)際設(shè)計(jì)中我通常會(huì)在分壓點(diǎn)加一個(gè)電壓跟隨器用運(yùn)放做緩沖把輸出阻抗降到幾十歐姆以內(nèi)。校準(zhǔn)是另一個(gè)關(guān)鍵步驟。STM32F405ZG內(nèi)部有參考電壓通道Vrefint可以用來反推實(shí)際的VDDA。具體做法是先讀Vrefint的ADC值然后根據(jù)公式VDDA 1.21V × 4095 / ADC_Vrefint算出實(shí)際的參考電壓再用這個(gè)值去換算電池電壓。這樣即使VDDA有±5%的波動(dòng)電池電壓的測(cè)量精度也能控制在1%以內(nèi)。3.2 均衡狀態(tài)機(jī)的設(shè)計(jì)固件里的均衡狀態(tài)機(jī)不需要太復(fù)雜但必須清晰。我一般會(huì)設(shè)計(jì)三個(gè)狀態(tài)IDLE空閑、BALANCING均衡中、FAULT故障。IDLE狀態(tài)下STM32周期性讀取兩節(jié)電池電壓計(jì)算壓差。如果壓差超過軟件設(shè)定的閾值比如50mV并且持續(xù)時(shí)間超過10秒就進(jìn)入BALANCING狀態(tài)同時(shí)使能MP2642GR-Z的均衡功能。BALANCING狀態(tài)下STM32繼續(xù)監(jiān)測(cè)電壓。如果壓差降到閾值以下比如20mV就退出均衡回到IDLE。這里有個(gè)細(xì)節(jié)退出閾值要比進(jìn)入閾值低形成遲滯。否則壓差在閾值附近波動(dòng)時(shí)均衡會(huì)頻繁啟停既影響壽命又浪費(fèi)功耗。FAULT狀態(tài)是保護(hù)邏輯。如果STM32檢測(cè)到某節(jié)電池電壓低于2.5V或者高于4.3V或者溫度超過60度就立即關(guān)閉均衡進(jìn)入FAULT狀態(tài)并通過通信上報(bào)故障。這個(gè)狀態(tài)需要上位機(jī)或者人工復(fù)位才能退出。3.3 通信接口與數(shù)據(jù)上報(bào)STM32F405ZG的通信外設(shè)很豐富CAN、UART、SPI、I2C都有。儲(chǔ)能系統(tǒng)里最常用的是CAN因?yàn)榭垢蓴_能力強(qiáng)適合長(zhǎng)距離傳輸。我會(huì)用CAN把電池電壓、均衡狀態(tài)、故障碼、循環(huán)次數(shù)這些信息周期性上報(bào)周期一般是100ms到1s可配。數(shù)據(jù)上報(bào)的格式要提前定義好建議用結(jié)構(gòu)體打包加上幀頭和校驗(yàn)。比如typedef struct { uint16_t cell1_mv; uint16_t cell2_mv; uint8_t balance_state; uint8_t fault_code; uint16_t cycle_count; uint16_t crc16; } BatteryStatus_t;這個(gè)結(jié)構(gòu)體通過CAN發(fā)送時(shí)要注意字節(jié)序和打包對(duì)齊。STM32默認(rèn)是小端如果上位機(jī)是大端需要做轉(zhuǎn)換。CRC16建議用標(biāo)準(zhǔn)的多項(xiàng)式0x1021校驗(yàn)范圍覆蓋前面所有字段。4. 實(shí)測(cè)中暴露的三個(gè)坑從誤均衡到MOS管發(fā)熱4.1 采樣噪聲導(dǎo)致的誤均衡第一個(gè)坑出現(xiàn)在樣機(jī)調(diào)試階段。當(dāng)時(shí)發(fā)現(xiàn)MP2642GR-Z頻繁觸發(fā)均衡但用萬(wàn)用表量?jī)晒?jié)電池的電壓壓差明明只有10mV左右遠(yuǎn)低于設(shè)定的30mV閾值。后來用示波器看采樣點(diǎn)的波形發(fā)現(xiàn)上面疊加了大約50mV峰峰值的開關(guān)噪聲頻率在100kHz左右。根因是均衡MOS管開關(guān)時(shí)泄放回路的電流突變通過共阻抗耦合到了采樣線上。解決方案有兩個(gè)一是在采樣點(diǎn)加RC低通濾波截止頻率設(shè)在1kHz左右二是優(yōu)化PCB布局把采樣線和功率回路分開走避免平行走線。我最后用的是組合方案采樣線上串100歐姆電阻對(duì)地并100nF電容截止頻率約16kHz對(duì)100kHz噪聲有大約16dB的衰減。同時(shí)把采樣線從功率回路的下方繞開改走另一層。改完之后誤均衡的問題徹底消失。4.2 均衡MOS管的溫升超標(biāo)第二個(gè)坑是溫升。當(dāng)時(shí)選的MOS管Rds(on)是50毫歐均衡電流100mA理論上功耗只有0.5mW不應(yīng)該發(fā)熱。但實(shí)測(cè)MOS管表面溫度到了70度以上遠(yuǎn)超預(yù)期。排查后發(fā)現(xiàn)兩個(gè)問題一是MOS管的驅(qū)動(dòng)電壓不足。MP2642GR-Z的輸出高電平只有3.3V左右而選的MOS管Vgs(th)是2V3.3V驅(qū)動(dòng)下MOS管并沒有完全導(dǎo)通工作在線性區(qū)Rds(on)遠(yuǎn)大于標(biāo)稱值。二是PCB上MOS管下面的銅箔面積太小散熱不夠。換用Vgs(th)為1V的邏輯電平MOS管后驅(qū)動(dòng)電壓3.3V下Rds(on)降到了30毫歐以內(nèi)功耗大幅下降。同時(shí)把MOS管下面的銅箔面積加大到100mm2并加了幾個(gè)過孔到背面地層。改完之后MOS管溫升控制在15度以內(nèi)。4.3 均衡退出后的電壓回彈第三個(gè)坑比較隱蔽。均衡結(jié)束后被放電的那節(jié)電池電壓會(huì)慢慢回彈因?yàn)殡姵貎?nèi)部有極化效應(yīng)。如果STM32在均衡剛結(jié)束就立即判斷壓差會(huì)發(fā)現(xiàn)壓差又變大了于是再次觸發(fā)均衡形成振蕩。解決方法是在均衡退出后加一個(gè)靜置時(shí)間比如30秒到60秒等電池電壓穩(wěn)定后再重新評(píng)估。這個(gè)靜置時(shí)間可以根據(jù)電池的容量和內(nèi)阻來調(diào)整容量越大、內(nèi)阻越高靜置時(shí)間越長(zhǎng)。我在固件里把這個(gè)參數(shù)做成了可配置項(xiàng)方便不同電池適配。5. 關(guān)鍵參數(shù)的計(jì)算與選型對(duì)照5.1 均衡電流與泄放電阻的匹配均衡電流的選擇要權(quán)衡兩個(gè)矛盾電流大均衡快但功耗和發(fā)熱高電流小功耗低但均衡時(shí)間長(zhǎng)。對(duì)于兩串電池的儲(chǔ)能系統(tǒng)我一般推薦均衡電流在50mA到150mA之間。均衡電流泄放電阻3.7V電阻功率適用場(chǎng)景30mA123Ω0.125W小容量備用電源50mA74Ω0.25W中等容量?jī)?chǔ)能100mA37Ω0.5W大容量?jī)?chǔ)能150mA24.7Ω0.75W快速均衡需求電阻功率的計(jì)算要留至少2倍余量。比如50mA下理論功耗是0.185W實(shí)際要選0.5W的電阻因?yàn)殡娮柙诟邷丨h(huán)境下功率會(huì)降額。5.2 分壓電阻與ADC精度的關(guān)系STM32F405ZG的ADC是12位理論分辨率是3.3V/4095≈0.8mV。但實(shí)際精度受分壓電阻公差、參考電壓波動(dòng)、采樣噪聲影響。分壓比滿量程電壓理論分辨率實(shí)際精度含誤差1:16.6V1.6mV±5mV1:29.9V2.4mV±8mV1:313.2V3.2mV±12mV對(duì)于兩串電池滿量程8.4V用1:2分壓比較合適實(shí)際精度能控制在±10mV以內(nèi)滿足均衡判斷的需求。5.3 MP2642GR-Z外圍元件清單元件規(guī)格數(shù)量作用泄放電阻75Ω/0.5W2均衡放電均衡MOS管AO34002開關(guān)控制采樣濾波電阻100Ω4RC濾波采樣濾波電容100nF4RC濾波去耦電容100nF2芯片供電濾波旁路電容10uF1電源儲(chǔ)能這份清單是我實(shí)際項(xiàng)目里驗(yàn)證過的直接抄作業(yè)問題不大。但要注意如果你用的電池電壓范圍不同泄放電阻的阻值需要重新算。6. 從樣機(jī)到量產(chǎn)可靠性驗(yàn)證與固件升級(jí)策略6.1 高低溫循環(huán)下的均衡一致性樣機(jī)跑通只是第一步量產(chǎn)前必須做高低溫循環(huán)測(cè)試。我把樣機(jī)放在-20度到60度的溫箱里每個(gè)溫度點(diǎn)保持2小時(shí)做5個(gè)循環(huán)觀察均衡效果。低溫下電池內(nèi)阻增大電壓回彈更明顯均衡退出后的靜置時(shí)間需要延長(zhǎng)。我在-20度時(shí)把靜置時(shí)間從30秒調(diào)到了90秒避免了低溫下的均衡振蕩。高溫下MOS管導(dǎo)通電阻會(huì)增大溫升更明顯需要確認(rèn)散熱設(shè)計(jì)有余量。實(shí)測(cè)60度環(huán)境下MOS管表面溫度到了85度雖然沒超規(guī)格但已經(jīng)比較接近極限了。后來把泄放電阻從75Ω改到100Ω均衡電流降到37mA溫升降到了70度以下。6.2 固件OTA升級(jí)的考慮STM32F405ZG有1MB Flash跑BMS固件綽綽有余可以輕松放下Bootloader和雙備份固件。我一般會(huì)劃分成三個(gè)區(qū)Bootloader區(qū)32KB、App A區(qū)480KB、App B區(qū)480KB。OTA升級(jí)時(shí)新固件先寫到備用區(qū)校驗(yàn)通過后再切換啟動(dòng)地址。這個(gè)設(shè)計(jì)的好處是即使升級(jí)過程中斷電Bootloader也能回滾到舊版本不會(huì)變磚。對(duì)于儲(chǔ)能系統(tǒng)這種現(xiàn)場(chǎng)維護(hù)成本高的產(chǎn)品OTA的可靠性比功能豐富更重要。6.3 量產(chǎn)校準(zhǔn)的自動(dòng)化每塊板子的分壓電阻都有公差A(yù)DC也有個(gè)體差異所以量產(chǎn)時(shí)必須做校準(zhǔn)。我的做法是在測(cè)試工裝上用高精度電源輸出兩個(gè)標(biāo)準(zhǔn)電壓點(diǎn)比如3.0V和4.2VSTM32讀取ADC值計(jì)算出增益和偏移寫入Flash的校準(zhǔn)區(qū)。運(yùn)行時(shí)用校準(zhǔn)系數(shù)去換算實(shí)際電壓。這個(gè)校準(zhǔn)過程可以自動(dòng)化產(chǎn)線工人只需要把板子放上工裝按一下按鈕幾秒鐘就完成。校準(zhǔn)數(shù)據(jù)同時(shí)上傳到MES系統(tǒng)方便追溯。7. 一些個(gè)人體會(huì)這套MP2642GR-Z加STM32F405ZG的方案我在兩個(gè)項(xiàng)目里實(shí)際用過一個(gè)是通信基站的備用電源一個(gè)是戶用儲(chǔ)能的小型電池包。兩個(gè)項(xiàng)目跑下來最深的體會(huì)是被動(dòng)均衡的可靠性很大程度上取決于你對(duì)細(xì)節(jié)的把控。芯片本身很簡(jiǎn)單邏輯也不復(fù)雜但采樣噪聲、MOS管驅(qū)動(dòng)、電壓回彈這些細(xì)節(jié)如果不在設(shè)計(jì)階段考慮清楚后期調(diào)試會(huì)非常痛苦。我見過太多項(xiàng)目因?yàn)橐粋€(gè)RC濾波沒加導(dǎo)致均衡功能形同虛設(shè)。另外STM32F405ZG的算力對(duì)于BMS來說其實(shí)是過剩的但它的好處是余量大你可以把狀態(tài)機(jī)、通信、保護(hù)邏輯都塞進(jìn)去還能留出足夠的資源做數(shù)據(jù)記錄和OTA。如果你用的是F103系列可能就要精打細(xì)算一些。最后分享一個(gè)小技巧在PCB上給MP2642GR-Z的采樣引腳預(yù)留一個(gè)測(cè)試點(diǎn)調(diào)試階段用示波器直接看波形比用萬(wàn)用表猜要高效得多。這個(gè)測(cè)試點(diǎn)不占地方但能幫你省下大量排查時(shí)間。