1. 程式人生 > 其它 >BQ40Z50韌體怎麼升級?告訴你BQ系列晶片內部結構和升級方法

BQ40Z50韌體怎麼升級?告訴你BQ系列晶片內部結構和升級方法

一 BQ晶片初步認識

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


二 BQ晶片內部結構

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

主要結構見下圖所示:

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

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

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

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

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

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

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.

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升級韌體會擦除掉校準值和電量計學習的資料

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

2 發現韌體Bug,但由於韌體已經發布,或者電池是串列埠的等原因,不能用電腦軟體升級。

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

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

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

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

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


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

部落格內都是原創文章,轉載請註明出處。

本文來自部落格園,作者:V大陽,轉載請註明原文連結:https://www.cnblogs.com/bmsdb/p/bqbmp-architecture-bq-update.html