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.

[FAQ] [参考译文] [常见问题解答] BQSTUDIO:如何解读 bq.fs 文件中用于 SMBus 监测计的行?

Guru**** 2315260 points
Other Parts Discussed in Thread: BQSTUDIO
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1107256/faq-bqstudio-how-do-i-interpret-the-lines-in-a-bq-fs-file-for-use-with-my-smbus-gauge

器件型号:BQSTUDIO

我使用 Battery Management Studio (bqStudio)为符合 SBS 的 SMBus 电量监测计生成了一个 bq.fs 文件。 此文件的格式是什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    SMB 的闪存流文件格式

      一、导言

    以下各节介绍 TI BMS FlashStream (.bq.fs)文件的文件格式。  这些文件包含更新设备指令闪存(IF)和数据闪存(DF)所需的 SMBus 操作说明。

    2.  文件结构

    bqfs 文件是一个包含命令和数据的 ASCII 文本文件。  文件的每一行都代表一个命令、并可能代表 XX 字节的数据、如下所述。 注释行以分号开头。 任何行都不包含超过96个数据字节。  每行的前两个字符表示命令,然后是“:”。

     

    “SWC:”-表示该行是用于写入 SMBus 命令的命令(0字节)

    “SWW:”-表示该行是写入 SMBus 字的命令(2个字节)

    “SWB:”-表示该行是一条命令,用于写入一个包含多个字节数据的 SMBus 块

    “SCW”-表示线路是读取和比较 SMBus 字(2个字节)的命令

    “SCL:”-表示该行是读取和比较多个字节数据中的一个 SMBus 块并验证块长度的命令

    “X:”–表示该行是一个命令,用于在继续(十进制)之前等待最小的指定毫秒数。

     

    空白用于分隔.bqfs 文件中的字段。  每行包含一条以上命令、且只有一条。

     

     

      SMBus 写命令

    SMBus 写入命令“SWC:”指示主机向给定的 SMBus 地址写入单个字节的 SMBus 命令。  此序列的格式为:

    “SWC:smbAddr smbCommand”

     

    例如、以下内容:

     

    SWC:16 08

     

    指示主机应将 SMBus 命令0x08写入地址为0x16的器件。

     

     

      SMBus 写字

    SMBus 写入命令“SWW:”指示主机使用 SMBus 命令向给定的 SMBus 地址写入一个字(首先是2字节 MSB)。  此序列的格式为:

    “SWW: smbAddr smbCommand smbWordLSB smbWordMSB”

     

    例如、以下内容:

     

    SWW:16 08 AA AB

     

    指示主机应使用 SMBus 命令0x08将字节0xAA (字的 LSB)和0xAB (字的 MSB)写入地址为0x16的器件。

     

     

      5. SMBus 写块

    SMBus 写入命令“SWB:”指示主机使用 SMBus 命令将一个字节块写入给定的 SMBus 地址。  此序列的格式为:

    “SWB:smbAddr smbCommand smbBlockByte1 [smbBlockByte2…”

     

    例如、以下内容:

     

    SWB:16 08 AA AB AC

     

    指示主机应使用 SMBus 命令0x08向地址为0x16的器件写入字节0xAA、0xAB、0xAC 的块。

     

     

     

      6. SMBus 读字和比较

    SMBus 读取字和比较命令“SRW:”指示主机使用 SMBus 命令从给定的 SMBus 地址读取字并与指定值进行比较。 此序列的格式为:

    “SCW: smbAddr smbCommand wordLSB wordMSB”

     

    例如、以下内容:

     

    SCW:16 08 AA AB

     

    指示主机应使用 SMBus 命令0x08从地址为0x16的器件读取一个字、并与0xAA (LSB)和0xAB (MSB)进行比较。

     

     

      7. SMBus 读取块和比较确切的块长度并可选择比较字节

    SMBus 读取块和比较确切长度命令“SCL:”指示主机使用 SMBus 命令从给定的 SMBus 地址读取数据块,并比较长度和可选的比较字节。  此序列的格式为:

    “SCL:smbAddr smbCommand blockLength [blockByte1 blockByte2…]”

     

    例如、以下内容:

     

    SCL:16 08 02 AA AB

     

    指示主机应使用 SMBus 命令0x08从地址为0x16的器件读取数据块、并比较长度是否正好为2个字节、并将字节与0xAA (字节1)和0xAB (字节2)进行比较。

     

     

      8. WAIT 命令

    WAIT 命令指示主机应等待给定毫秒数的最短时间、然后再继续执行闪存流的下一行。 允许的最大值为20000毫秒。 任何大于20000的值都有未定义的行为。

    例如、以下内容:

     

    X:200

     

    指示主机必须等待至少200ms 才能继续。

    注:“X:”后面的数字是一个十进制数字。 这与所有其他命令不同。 通常、除此命令外、所有字节都指定为十六进制值。