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.

[参考译文] BQ40Z80:SMBus 重复启动

Guru**** 2546140 points
Other Parts Discussed in Thread: BQ40Z80

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1324489/bq40z80-smbus-repeated-start

器件型号:BQ40Z80

您好!

我使用第三方 MCU 作为主机与 BQ40Z80通信以获取监测计值。 为此、当我在写入过程(CMD)和读取过程(电量监测计值)之间实现重复启动时、附带的第一个字节是之前通信的 PEC 值。 例如、如果我重复 CMD 0x01、我将获得{0x8E、0x2C、0x01、0x8E}、其中第一个0x8E 是先前通信的 PEC 值、0x2C 和0x01是电量监测计值(300)、最后一个0x8E 是当前通信的 PEC 值(使用0x8E、0x2C 和0x01计算 CRC)。 在读取过程之前发送停止条件也不存在这个问题。 对于相同的 CMD 0x01、我将得到{0x2C、0x01、0xE1}。

我阅读了 slua475-SMBusMadeSimple 应用报告、其中指出应该使用一个重复的启动来从写入过程转换到读取过程。 但我只有在使用重复起始时才会面临这个问题。 我尝试在写入和读取过程之间应用各种延迟、但没有帮助。  

如何解决此问题?

谢谢。

最小值

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

    您好、Min:  

    在此期间、您能否为我提供通信的捕获?  

    此致、  

    Jonny.  

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

    Jonny 您好、

    在调试问题时、我发现这是由于停止条件未正确发送导致的。  

    感谢您投入宝贵的时间给予大力支持。

    此致、

    最小值