在電量計的量產文件中,我們的BQSTUDIO上位機軟件提供了多種格式的文件,包括SREC, SENC, BQFS, DFFS, GMFS, OTFS, DFI 等格式,對于不同的電量計,支持的格式均有所不同。接下來就選取代表性的BQ27426為例,來對GMFS文件做一個簡單的介紹。
1.1 GMFS文件格式
下圖是GMFS文件格式的一個范例:
W: 表明該行是寫入一個或多個字節的指令
X: 表明該行是等待給定的ms時長的指令
C: 表明該行是讀取并且比較一個或多個字節的指令
圖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表示對應的寄存器地址是0x3E, 對應的是DataBlockClass()指令,52 00表示這里寫入的數據,這里兩個byte是按照MSB LSB排列。也就是說,52數據寫入0x3E, 00數據寫入0x3F寄存器。0x3F對應的是DataBlock()寄存器。
我們規定如果要更新Data Memory里的值,需要先向0x3E寄存器寫入對應寄存器的地址,之后再向其中寫入具體的數據。這里寄存器地址為52 00,表明寫入的是State寄存器。這一段代碼的含義就是找到52(HEX)=82(DEC)的Subclass: State的地址,方便接下來向其中寫入相應的數據。
圖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。相應后面的data就按照順序依次寫入0x40到0x5F地址中。
這里就以data中的81舉例,在Line 71中,從0x40后的第一個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 參數表格
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的地址,方便接下來對其中的校驗位進行比較。
Line 75: C: AA 60 97
C的格式為:I2CAddr RegAddr Byte0 Byte1 …
這一行表示比較,AA表示device的I2C地址為0xAA, 60表示對應的寄存器地址是0x60. 表示BlockDataCheckSum(), 97是從0x60位置讀出來的校驗和,從而可以和gauge計算出來的校驗和進行比較。
-
電源管理
+關注
關注
115文章
6183瀏覽量
144585 -
電量計
+關注
關注
2文章
127瀏覽量
31914
發布評論請先 登錄
相關推薦
評論