在手機(jī),平板等個(gè)人移動(dòng)產(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文件時(shí),需要客戶提交CHEMID以及GMFS文件,提交給產(chǎn)品線進(jìn)行修改,耗費(fèi)時(shí)間較長,尤其是當(dāng)客戶只需要修改1-2bit時(shí),此流程可能會延緩項(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文件。可以參考《GMFS文件解析》來簡單了解下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)較多時(shí)間,這里的快速修改方法就是將想要修改的值和修改前作比較,將變化的值取負(fù)號也加入到checksum中。
舉個(gè)例子,由上圖可知,我們的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)注
115文章
6183瀏覽量
144585 -
電量計(jì)
+關(guān)注
關(guān)注
2文章
127瀏覽量
31914
發(fā)布評論請先 登錄
相關(guān)推薦
評論