在電量計(jì)的量產(chǎn)文件中,我們的BQSTUDIO上位機(jī)軟件提供了多種格式的文件,包括SREC, SENC, BQFS, DFFS, GMFS, OTFS, DFI 等格式,對(duì)于不同的電量計(jì),支持的格式均有所不同。接下來就選取代表性的BQ27426為例,來對(duì)GMFS文件做一個(gè)簡(jiǎn)單的介紹。
1.1 GMFS文件格式
下圖是GMFS文件格式的一個(gè)范例:
W: 表明該行是寫入一個(gè)或多個(gè)字節(jié)的指令
X: 表明該行是等待給定的ms時(shí)長的指令
C: 表明該行是讀取并且比較一個(gè)或多個(gè)字節(jié)的指令
圖1.1 GMFS文件范例
以Line 70-Line 75為例:
Line 70: W: AA 3E 52 00
W的格式為:I2CAddr RegAddr Byte0 Byte1 Byte2 …
AA表示device的I2C地址為0xAA, 3E表示對(duì)應(yīng)的寄存器地址是0x3E, 對(duì)應(yīng)的是DataBlockClass()指令,52 00表示這里寫入的數(shù)據(jù),這里兩個(gè)byte是按照MSB LSB排列。也就是說,52數(shù)據(jù)寫入0x3E, 00數(shù)據(jù)寫入0x3F寄存器。0x3F對(duì)應(yīng)的是DataBlock()寄存器。
我們規(guī)定如果要更新Data Memory里的值,需要先向0x3E寄存器寫入對(duì)應(yīng)寄存器的地址,之后再向其中寫入具體的數(shù)據(jù)。這里寄存器地址為52 00,表明寫入的是State寄存器。這一段代碼的含義就是找到52(HEX)=82(DEC)的Subclass: State的地址,方便接下來向其中寫入相應(yīng)的數(shù)據(jù)。
圖1.2 Data Flash寄存器表格
Line 71: W: AA 40 41 C3 00 00 00 81 00 DA 03 48 0B B8 00 C8 00 32 00 14 03 E8 01 00 63 00 0A FF C9 FF CB 00 02 00
W的格式為:I2CAddr RegAddr Byte0 Byte1 Byte2 …
AA同樣表示的是device的I2C地址,0x40寄存器地址表示的是BlockData(), 從0x40到0x5F。相應(yīng)后面的data就按照順序依次寫入0x40到0x5F地址中。
這里就以data中的81舉例,在Line 71中,從0x40后的第一個(gè)data起,為offset=0, 0x81所在的位置為0ffset=5, 查閱上表7-2可以得到此位是H1型,表示Load Select/Mode.
這里表明Load Select/Mode為81,具體含義可以查閱BQ27426 TRM以及下表7-7。這里不再贅述。
圖1.3 Load Select/Mode 參數(shù)表格
Line 72: W: AA 60 97
0x60寄存器表示BlockDataCheckSum(), 這一行的意思就是寫入新的checksum值。
Line 73: X: 10
這一行表示等待10ms.
Line 74: W: AA 3E 52 00
這一行代碼的含義是找到52(HEX)=82(DEC)的Subclass: State的地址,方便接下來對(duì)其中的校驗(yàn)位進(jìn)行比較。
Line 75: C: AA 60 97
C的格式為:I2CAddr RegAddr Byte0 Byte1 …
這一行表示比較,AA表示device的I2C地址為0xAA, 60表示對(duì)應(yīng)的寄存器地址是0x60. 表示BlockDataCheckSum(), 97是從0x60位置讀出來的校驗(yàn)和,從而可以和gauge計(jì)算出來的校驗(yàn)和進(jìn)行比較。
-
電源管理
+關(guān)注
關(guān)注
115文章
6141瀏覽量
144120 -
電量計(jì)
+關(guān)注
關(guān)注
2文章
111瀏覽量
31844
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論