在手機,平板等個人移動產品中,我們經常會關注電池容量的多少,TI的BQ27426,BQ27Z561等電池電量監測芯片可以通過檢測電池電壓,電流以及溫度,從而計算出電池容量,并且兩者均是單節電池電量計,廣泛應用于上述場景。在實際使用過程中,需要配置好各種參數,生成GMFS文件再交給客戶生成.h文件結合到客戶的代碼之中。
1.1 修改流程介紹
一般來說,當客戶需要修改配置并且生成新的GMFS文件時,需要客戶提交CHEMID以及GMFS文件,提交給產品線進行修改,耗費時間較長,尤其是當客戶只需要修改1-2bit時,此流程可能會延緩項目開發進度,影響客戶體驗。下文中以最常遇到的DMCODE修改為例,介紹如何快速的進行修改。修改流程主要為: 找到DMCODE寄存器位置->找到校驗位位置并快速計算->修改并驗證。
1.2 快速修改DMCODE
在客戶的程序中,一般會通過判斷我們BQ27426里內置的DMCODE這一bit來區分不同的配置程序,如果DMCODE保持一致,客戶的軟件中可能會有所沖突,就需要我們幫助客戶快速的修改。
本文是基于GMFS文件直接進行修改,沒有在上位機界面進行修改,在上位機界面進行修改后可能還會涉及到新生成的GMFS文件不包含ChemID的問題,同樣需要產品線幫我們添加ChemID信息到GMFS文件,具體方式不在贅述。
在進行修改前,我們需要理解GMFS文件??梢詤⒖肌禛MFS文件解析》來簡單了解下GMFS文件。
DMCODE在TRM中有如下描述,但是我們的BQStudio軟件并未將這一位寄存器開放出來,經過跟產品線確認,我們的DM CODE位于Subclass ID的第5位。也就是Table 7-2中,Subclass 64, offset為5的位置。(Table 7-2并未完整顯示所有寄存器).
圖1.1 DMCODE定義
Subclass 64這里的64是DEC下的64,如果切換到HEX也就是0x40. 那么我們就需要在gmfs文件中找到0x40寫入的指令:
圖1.2 代碼例程
同樣根據《GMFS文件解析》,第一行代表的是找到Subclass 64的地址,第二行表示寫入數據,第三行表示寫入校驗和,第四行表示等待,第五行和第六行為校驗和相關驗證。
我們的DMCODE的offset為5,在上述代碼中找到offset為5的位置,也就是01的位置(為方便理解,圖中已經標紅)。
在接下來就是尋找校驗位的位置以及如何快速計算,這里代碼中已經標紅,就是第三行的0D和第六行的0D。接下來介紹如何快速修改。
關于checksum的計算可以看BQ27426 TRM的第四章節,其中這里有詳細的描述:
圖1.3 checksum計算過程
如果每一次都需要完整計算會耗費較多時間,這里的快速修改方法就是將想要修改的值和修改前作比較,將變化的值取負號也加入到checksum中。
舉個例子,由上圖可知,我們的DMCODE為01,如果我們像將其改為02,變化的值為+1,因此checksum的值就需要-1,目前Checksum的值為0D,DMCODE修改完后Checksum的值應該為0C.
這里的這張截圖是通過上位機修改得到的對比表,可以發現,DMCODE改為2后,Checksum值從0D變為了0C。
圖1.4 DMCODE結果對比
本文提供的是基于GMFS文件直接修改DMCODE的方法,如果需要修改其他寄存器的值,請咨詢FAE確認是否可以修改該值。有的值修改后可能會對Gauge的預測算法產生影響。
審核編輯:郭婷
-
芯片
+關注
關注
456文章
51156瀏覽量
426478 -
寄存器
+關注
關注
31文章
5363瀏覽量
120992 -
電池
+關注
關注
84文章
10673瀏覽量
130972
發布評論請先 登錄
相關推薦
評論