请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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 应用报告、其中指出应该使用一个重复的启动来从写入过程转换到读取过程。 但我只有在使用重复起始时才会面临这个问题。 我尝试在写入和读取过程之间应用各种延迟、但没有帮助。
如何解决此问题?
谢谢。
最小值