BQ40Z50固件怎麼升級?告訴你BQ系列芯片內部結構和升級方法

一 BQ芯片初步認識

包括BQ40Z50在內,BQ系列電池管理芯片看起來是一個芯片,其實芯片裏面封裝了兩個die。一個是MCU部分負責計算和控制,其採用的是bqBMP內核的16位處理器;另外一個die是模擬前端AFE,負責模擬信號處理部分,主要功能是處理電壓電流溫度信號,包括放大,MUX,MOS驅動和一些硬件保護邏輯。兩個芯片的綁定類似下圖結構:

wps37FB.tmp

二 BQ芯片內部結構

MCU和AFE間主要接口有:電流採樣庫侖計CC,電壓溫度採樣ADC,GPIO和專用串口通信。類似我們用分立器件MSP430+BQ76925的架構。

主要結構見下圖所示:

wps37FC.tmp

MCU和AFE封裝在一起是不得已而為之,也具有明顯的優勢:

• MCU主要負責計算和控制邏輯,是低壓部分,而AFE主要負責高壓部分處理,兩個芯片工藝不同,在一個die上實現比較困難;

• 封裝在一起,對外呈現的是一個芯片,使用方便,真正做到低耦合高內聚;

• 封裝後固件也是由TI提供,穩定性比較好保證;

• 封裝也利於電量計算法的實現,提高芯片價值。舉例,BQ40Z50比BQ4050就貴不少。

對於BQ40Z50芯片,芯片架構細節如圖所示:

wps37FD.tmp

TI專用內核bqBMP處理器是哈弗結構,數據總線和程序總線獨立,其基本特徵有:

  • CPU是16位的
  • 運行速度4.2MHz
  • 三級流水線
  • 指令長度靈活,可以支持8位、16位、24位指令

三 BQ40Z50內部存儲器結構

內部存儲器包括Flash,Boot ROM Flash, RAM,Data Flash和EEPROM。其中Flash一共有64K大小,RAM 2.5K, Data Flash 8K, EEPROM 0.5K.

wps380D.tmp

Boot ROM是芯片的Bootloader,承擔啟動加載和固件升級作用,芯片固化好,不可修改和升級。

我們通過BQ Studio讀出來的SREC文件,包括Data Flash, Program Flash和EEPROM的數據,也是除了Bootloader外的所有數據。

注意:

  • TI的電池管理芯片內的CPU core有兩代,BQ30Z55 BQ3055 BQ34Z100 BQ27541 BQ27542 BQ78350是比較老的一代,已經逐步淘汰;
  • BQ40Z50同平台的有BQ40Z80,BQ78Z100,BQ27Z561等,推薦使用這一個系列。

四 固件升級方案

通過以上對CPU架構和存儲結構的了解,我們對實現電量計芯片升級有個思路了。它跟普通MCU升級有相似的地方,只是要對芯片充分了解,可以做到不用bqStudio也能升級固件。

實際工作中,我們可能遇到以下問題:

1 已經校準的電池需要返工,通過bqStudio升級固件會擦除掉校準值和電量計學習的數據

wps380E.tmp

解決方法:我們就可以不用bqStudio,專門編個PC軟件,控制EV2400/EV2300,跳過升級data flash部分,只升級Program flash;

2 發現固件Bug,但由於固件已經發佈,或者電池是串口的等原因,不能用電腦軟件升級。

解決方法:主控來實現升級策略,可以升級電池的固件和配置參數,這個方法我們在無人機上已經實現。

wps380F.tmp

3 已經發給客戶的電池需要升級,並且數量很大,用PC軟件效率太低。

解決方法:針對這種情況,也可以專門做個小板,內部存儲電量計固件,連上電池就自動升級

這個可以50個100個同時工作,也很快能完成電池升級的問題。

事實上,我們也的確遇見這個問題,就做了個帶SD卡的小板,將固件放到SD卡裏面,一連接電池就會執行自動升級。

wps3810.tmp

以上都是作者多年與BQ電量計打交道,通過研究或與原廠共同開發得到的經驗,希望能對做電池的你有所幫助。

博客內都是原創文章,轉載請註明出處。