您好、专家!
我要求在这里为我的客户提供帮助。
当从器件接收到无效的读取命令时、它将下拉 SCL 时钟、直到超时。 在从器件触发超时后、SCL 被释放、之后、主机器件将发送一个 STOP 位以结束此通信、因为主机未获得 ACK 信号。 因此在这 种情况下、主机需要这么长的等待超时时间才能重新启动通信。 我们是否有任何方法可以修改 PMBus 堆栈或添加一些权变措施来避免这种情况? 如果 从器件接收到无效的读取命令、然后未向主机发送 ACK、则 SCL 通常将接收到重新启动命令。 谢谢。


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.
您好、专家!
我要求在这里为我的客户提供帮助。
当从器件接收到无效的读取命令时、它将下拉 SCL 时钟、直到超时。 在从器件触发超时后、SCL 被释放、之后、主机器件将发送一个 STOP 位以结束此通信、因为主机未获得 ACK 信号。 因此在这 种情况下、主机需要这么长的等待超时时间才能重新启动通信。 我们是否有任何方法可以修改 PMBus 堆栈或添加一些权变措施来避免这种情况? 如果 从器件接收到无效的读取命令、然后未向主机发送 ACK、则 SCL 通常将接收到重新启动命令。 谢谢。


您好、绍兴:
Unknown 说:我们有没有办法修改 PMBus 堆栈或添加一些变通办法来避免这种情况?
客户是否已尝试修改 PMBTIMLOWTIMOUT 寄存器? 当时钟处于低电平的时间过长时、此超时值看起来就是这样的。 客户可以尝试减少该寄存器中的时钟周期数、以查看这是否有帮助。
从设备收到标记为"PMBUS_TRANSACTION_NONE"的无效读命令时,如何将 NACK 发送到主机?
在这种情况下、F28002x 器件似乎是控制器、目标是发送"PMBus_TRANSATION_NONE"的命令、正确吗? 如果是、似乎没有方法手动 ACK/NACK 特定命令。 PMBSC 寄存器有一种方法可以手动确认接收到的命令代码、但这种方法在目标模式下配置时更具体。
您好、绍兴:
但 尚未按下图设置数据请求标志,仅自动设置 DATA_READY 标志。 为什么 还没有设置数据请求标志?
根据 DATA_REQUEST 和 DATA_READY 的寄存器位描述、似乎固件需要在 发生任何其他 PMBus 活动之前读取数据。 根据我看到的内容、由于读取缓冲区当前已满、需要先读取数据、然后 PMBus 才能请求更多数据。
