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