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-R1 SMBus 制造商 BlockAccess 接收字节问题

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/642320/bq40z50-r1-smbus-manufacturerblockaccess-receiving-bytes-problem

主题中讨论的其他器件:BQ40Z50-R1

你(们)好。

我正在使用 BQ40Z50-R1连接到具有 SMBus 的 stm32F030R8 MCU。

当我尝试使用 manufacturerBlockAccess (0x44)读取数据时、它总是返回错误的数据、

但是、如果我从 Battery Management Studio 读取它、我可以成功读取正确的数据。

下面是我要读取的示例命令,  

ManufacturerAccess 0x0000

Battery Management Studio 将读取

但从 STM32 MCU 读取的数据为0x1717

此外、无论我要读取哪条命令和命令的长度如何、我都始终得到结果0x17。

我的命令是否出错?

这是我在块写入块读取过程调用中发送的命令格式

0x44 0x02 0x00 0x00 0x02 P

P 表示到接收缓冲区的指针、在 P 是缓冲区的长度之前为0x02。

谢谢。

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

    今天感恩节、设备专家已离开办公室。 我们将在星期一作出答复。 在此期间、请参阅以下应用手册:

    有关 PEC 和 SMBus 的更多信息、请参阅 SMBus Made Simple 应用手册、该应用手册位于: http://www.ti.com/lit/slua475

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

    请注意:0x00 ManufacturerAccess()用于字读取,0x44 ManufacturerBlockAccess()用于块写入和读取制造商访问系统(MAC)中的数据。

    请确保以小端字节序发送/接收数据。

    例如,通过 ManufacturerBlockAccess()读取 ChemID
    SMBus 块写入。 在十六进制、小端字节序(命令|数据被写入):44 | 06 00
    SMBus 块读取。 在十六进制、小端字节序(命令|接收到的数据):44 | 06 00 00 01

    在此示例中、返回的数据将是06 00 (这是 MAC 命令、0x0600)、后跟00 01 (这是 Chem ID、0x0001)

    在您的器件上、ChemID 将有所不同。

    有关如何将 SMBus 与外部微控制器和代码示例结合使用的更多信息、请参阅此参考设计 :www.ti.com/.../TIDM-SMBUS

    此致、
    Bryan Kahler