主题中讨论的其他器件:EV2400
你(们)好
收集的 EV2400如图所示、使用逻辑分析仪、阅读 smbus BQ40Z80EVM 板序列图。
为什么第一个回复很快、 第二个回复(红色框)但必须等待这么长的时间才能回复、第三个回复、第四个回复、第五个回复、为什么在回复下一个字节后等待一段时间、最后一个停止点与等待一段时间只是停止的原因相同?
正在等待您的回复。
谢谢
星号
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.
您好、Star
第一个字节是电量监测计的地址、我认为回复是指确认、由电量监测计的 I2C 引擎生成、不需要任何 FW 干预。 因此、这没有延迟。
以下字节是事务的命令、电量监测计的 I2C 引擎需要发出中断并等待 FW 获取和解释并决定下一步要执行的操作。 在监测计中的 FW 做出任何决策之前、监测计的 I2C 引擎会下拉 I2C 的 SCLK。 当 电量监测计中的 FW 认为这是有效命令时、 电量监测 计将确认该命令、此时电量监测计会释放 SCLK 信号、此时您将在 SCLK 上看到上升沿。 同时、监测计还拉低 SDATA。 当主机(EV2400)看到这种情况时、它会将其视为确认、并下拉 SCLK 以开始下一帧、该帧以重复开始模式开始。 由于监测计中的 FW 检查和验证命令所需的时间始终较长、因此您将看到确认 I2C 地址字节的等待时间比前一个要长。
第3个字节表示这是读取操作、监测计以主机(EV2400)生成的 SCLK 信号速率发送 SDATA 上的以下字节、以下字节的确认位 由 EV2400生成、因为这仅读取8位帧、 无需验证、确认位仅由主机侧的 I2C 引擎提供、在这种情况下也不需要 FW 干预。 因此、确认位没有延迟。
但 EV2400中的 MCU 需要将 I2C 引擎接收到的字节放入缓冲区、以便 FW 进行读取和处理、EV2400将能够在完成此操作后读取下一个字节、 EV2400将下拉 SCLK、直到 FW 获取 I2C 引擎中的字节。 这就是为什么您看到 EV2400等待一段时间以读取下一个字节、直到此事务结束。