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.

[参考译文] BQ40Z50-R2:0x44 ManufacturerBlockAccess()-无法执行基本读取。

Guru**** 2492385 points
Other Parts Discussed in Thread: BQ40Z50-R2

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/706303/bq40z50-r2-0x44-manufacturerblockaccess---unable-to-do-basic-reads

器件型号:BQ40Z50-R2

您好!

在基本读取器件 ID 时遇到一些问题。

根据下图、我向0x44发出 SMBus 写入数据0x01、0x00 (寄存器0x0001)(可选0 PEC 字节)。

我等待22ms、然后对0x44执行另一次写入、然后重复启动。  我不会得到任何有意义的数据、而是按照下面的图表、我几乎总是得到0x16作为重复开始后的第一个字节。 数据始终没有意义、因为它具有0x16、之后始终为零。

有人能看到我做了什么错吗?  请注意、我没有尝试发送0x00 PEC 字节、结果相同。

BQ40Z50-R2 ALWAY 是否需要有效的 PEC?

谢谢

太棒了!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、感谢回答这个问题。 您似乎正在做第一部分正确操作、其中您使用您将在本例中读取的寄存器(01 00)写入0x44、因为它是小端字节序。 但是、在第二部分中、您需要读取0x44 (您在消息中再次写入)。 当您读取0x44时、应该会得到您要查找的数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    感谢你能抽出时间。

    我在今天早上1:30左右发现、要使块读取正常工作、您需要一个块长度。  这似乎是 BQ40Z50-R2的未记录功能、并验证了 PEC 字节可以忽略。

    输入块数据长度后、在接收端处理了 BQ40Z50-R2返回的块数据长度、我对器件有完全通信、我的电池模块现在已启动并运行。

    我注意到一些寄存器设置也没有记录、例如0x0022 (FET 控制)。 最好知道该寄存器中的哪些位控制哪些 FET。 此外、获得显示各种不同读取和写入类型的 SMBus 时序图也很棒。

    对于任何其他有问题的人、这里是捕获。

    写入从器件0x16、制造商访问命令0x44、到地址0x48E5:

    从从从器件地址0x16处的0x44回读返回长度、寄存器地址和数据。

    谢谢

    太棒了!