我使用 Battery Management Studio (bqStudio)为 I2C/HDQ 电量监测计生成了一个 bq.fs 和 df.fs 文件。 TI 文档表示主机处理器可以使用此文件更新电量监测计。 该文件的格式是什么?如何使用它?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
I2C/HDQ 的闪存流文件格式
以下各节介绍了 I2C 或 HDQ 的 TI BMS FlashStream 文件的文件格式。 Flashstream 文件的示例包括 bq.fs、df.fs 和 gm.fs 文件。 这些文件包含更新设备指令闪存(IF)或数据闪存(DF)所需的 I2C 或 HDQ 操作说明。 I2C 命令和 HDQ 命令之间的唯一区别是 HDQ 命令不包含 i2cAddr 参数。 除非另有说明、否则本文档引用了 I2C 命令。 要确定相应的 HDQ 命令、只需删除 i2cAddr 参数(如果存在)。
Flashstream 文件是一个包含命令和数据的 ASCII 文本文件。 文件的每一行都代表一个命令、并可能代表 XX 字节的数据、如下所述。 任何行都不包含超过96个数据字节。 每行的前两个字符表示命令,然后是“:”。
“W:”–表示该行是写入一个或多个字节数据的命令。
“C:”–表示该行是读取和比较一个或多个数据字节的命令。
“X:”–表示线路是一条命令,用于等待给定的毫秒数后再继续。
空白用于分隔 Flashstream 文件中的字段。 每行包含一条以上命令、且只有一条。
写入命令“W:”指示主机将一个或多个字节写入给定的 I2C 地址和给定的寄存器地址。 此序列的格式为:
“W: i2cAddr RegAddr Byte0 Byte1 Byte2…”。
例如、以下内容:
W:AA 55 AB CD EF 00
指示主机应将字节序列0xAB 0xCD 0xEF 0x00写入器件在0xAA 寻址的寄存器0x55。
或者更准确地说、它表示将以下数据写入器件地址0xAA:
0xAB 到寄存器0x55
0xCD 到寄存器0x56
0xEF 到寄存器0x57
0x00到寄存器0x58
读取和比较命令的格式与写入命令相同。 此命令提供的数据应与读取的数据完全匹配、或者操作应随用户停止并向用户指示错误。 此序列的格式为:
“C:i2cAddr RegAddr Byte0 Byte1 Byte2…”。
字节序列字节0到字节 N 是要匹配的字节。
要读取的字节数是要匹配的字节数。 “C:”指示主机从给定的 I2C 地址和给定的寄存器地址读取给定数量的字节,并将读取的字节与 RegAddr 后面的字节进行比较。
此命令的示例如下:
C:AA 55 AB CD EF 00
指示主机应从位于0xAA 的器件寄存器0x55中读取4个字节、并将读取字节序列与字节序列0xAB 0xCD 0xEF 0x00进行比较
或者更准确地说、它表示从器件地址0xAA 读取和比较以下数据:
0xAB 应等于从寄存器0x55读取的值
0xCD 应等于从寄存器0x56中读取的值
0xEF 应等于从寄存器0x57读取的值
0x00应等于从寄存器0x58读取的值
WAIT 命令指示主机应等待给定毫秒数的最短时间、然后再继续执行闪存流的下一行。 例如、以下内容:
X:200
指示主机必须等待至少200ms 才能继续。
注:“X:”后面的数字是一个十进制数字。 这与所有其他命令不同。 通常、除此命令外、所有字节都指定为十六进制值。