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.

[参考译文] BQ20Z80A-V110:TI bq20z80a-v110 -扩展 SBS 命令问题

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/602976/bq20z80a-v110-ti-bq20z80a-v110---extended-sbs-commands-issue

器件型号:BQ20Z80A-V110
主题中讨论的其他器件: bq20z80-V110bq20z80BQEVSW

问题

我在德克萨斯州休斯顿为西南电子公司工作的公司购买了 Aardvark I2C/SPI 主机适配器(PN TP240141)。  我的任务是连接 Aardvark I2C 适配器和德州仪器(TI)符合 BS 标准的电量监测计 IC bq20z80A-V110。  虽然到目前我已经能够与芯片进行无故障的通信、但我在使用扩展 SBS 命令时遇到了障碍。  我正在使用 Total Phase 的 LabVIEW 驱动程序、并根据这些驱动程序开发我自己的代码。  在 TI 为 bq20z80A 提供的技术参考手册中(文档编号  SLUU288)、我使用附录 A 至 C 中的 SBS 命令来读取和写入 IC。  我从附录 A 中的"制造商访问"部分开始、在读取这些寄存器地址时没有遇到太多困难。  

但是、正如我现在在附录 B 中所说、我在使用扩展 SBS 命令时遇到了困难。

 

当前状态

下面是屏幕截图、其中包含我的代码的一般说明、以及我迄今为止在与 bq20z80A-V110建立握手方面所取得的成就。

为了说明我当前的困境、我在使用时唯一没有遇到问题的命令是扩展 SBS 命令、无论芯片是否被密封和完全访问被禁用、这些命令都是可用的。  我所要做的就是写入 Manufacturer Access、将高字节和低字节发送到 IC、然后从 Manufacturer Access 寄存器中读取。  问题在于,即使我已解封芯片并启用了完全访问,但在 IC 密封和完全访问被禁用时,我也无法访问任何不可用的扩展 SBS 命令。  

下图是我能够使用的所有扩展 SBS 命令的列表、无论 IC 是密封的还是非密封的、这些命令都是可用的。

图1–我可以使用的扩展 SBS 命令、因为它们可用

我能够使用 TI 软件包 bq 电量监测计评估软件来验证 IC 的状态、请参阅以下屏幕截图:

 

图2–bq20z80-V110 SBS 状态的屏幕截图

如上图所示、操作状态下的 FAS 和 SS 标志呈绿色、表示 IC 处于非密封状态且处于完全访问模式。

在我的 LabVIEW 代码中、我通过编写 VI 来检查我是否获得了类似的数据、我在该 VI 中向制造商访问寄存器写入了数据。  根据之前从 TI 软件获得的信息、我想要检查的三个寄存器如下:

运行状态–8045十六进制值

充电状态–0200十六进制值

FET 控制–0006十六进制值

 

首先、这里是我的 LabVIEW 代码和从 bq20z80芯片的写入和读取中获取的数据。  我用后续的高字节和低字节写入了制造商访问地址、以查看运行状态。  如您所见、LabVIEW 程序中的返回值与通过 TI 评估软件获取的返回值相同、请参阅图3。

 

图3– 通过 LabVIEW 代码推导出的运行状态值

第二、我检查了充电状态作为另一个测试用例、以验证 LabVIEW 代码是否正确、请参阅图4。  

 

图4–源自 LabVIEW 代码的充电状态值

 

同样、该值与 TI 评估软件获得的值相同。

 

现在,由于前面两个示例是在 IC 密封或未密封的情况下可用的,我决定检查扩展 SBS 命令,如果芯片是密封的并且禁用了完全访问功能,则该命令不可用,以查看结果。  此外、我使用了一条命令、该命令具有可通过 TI 评估软件验证的证据。  FET 控制状态字为0006。

 

  

图5– 通过 LabVIEW 代码实现的 FET 控制值

 

因此、如上所示、无法通过我的软件读取 FET 控制寄存器。  软件从相同的制造商地址读取,但没有使用 FET 控制状态字更新该值。  这代表了所有其他扩展 SBS 命令的结果,这些命令也通过上述 GUI 进行了检查,但当芯片完全访问时,这些命令不可用。

 

结论

 

我想得到一些指示、说明我必须使用什么写入和读取序列才能在我的 LabVIEW 软件中使用以下 SBS 命令:

 

AFEData (0x45)

FETControl (0x46)

StateOfHealth (0x4f)

非密封键(0x60)

FullAccessKey (0x61)

PFKey (0x62)

AuthenKey3 (0x63)

AuthenKey2 (0x64)

AuthenKey1 (0x65)

AuthenKey0 (0x66)

制造商信息(0x70)

感应电阻(0x71)

 

具体而言、我希望能够用红色书写上述命令并读取地址、因为它们是最重要的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Forrest、
    如果我正确理解了您的消息,您说在密封之前可以访问上述命令,但在您密封设备并解除密封之后,这些命令不再起作用? 请确认。

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

    感谢您的快速回复。

    不、我没有密封 bq20z80a-v110芯片。  虽然我从未密封过芯片、而且目前已经完全可以访问、但密封器件时不可用的扩展 SBS 命令对我无效。

    感谢您的帮助。  

    fp

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

    您好、Forrest、

    请参阅下面 编写扩展命令的片段。 您必须知道它是 SMB 字还是 SMB 块。

    您可以连接总线监听器以查看事务、或在使用 bqEVSW 发送命令时使用范围

    SMBus 规范说明了如何读取和写入块:

    我已附上 smbus 规格:

    e2e.ti.com/.../smbus20_5B00_1_5D00_.pdf

    下面是另一个您会认为有用的文档。

    e2e.ti.com/.../7026.SMBus-made-simple_5F00_v6.pdf

    谢谢

    Onyx

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

    感谢你的帮助。   我成功地使用了您在该主题中提供的文献。  我能够根据 SMBus Book 写入块读取过程调用设置一个序列来解决我的问题。  

    非常感谢。

    fp