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.

[参考译文] TMS320F280025C:PMBus 在重新启动命令时未发送 ACK?

Guru**** 2451970 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1327110/tms320f280025c-pmbus-do-not-sent-ack-when-restart-command

器件型号:TMS320F280025C

您好、专家!

我要求在这里为我的客户提供帮助。

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

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

    您好、专家!

    当 从器件接收到标记为"PMBUS_TRANSACTION_NONE"的无效读取命令时、如何向主机发送 NACK? 谢谢。

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

    您好、绍兴:

    Unknown 说:
    我们有没有办法修改 PMBus 堆栈或添加一些变通办法来避免这种情况?

    客户是否已尝试修改 PMBTIMLOWTIMOUT 寄存器?  当时钟处于低电平的时间过长时、此超时值看起来就是这样的。 客户可以尝试减少该寄存器中的时钟周期数、以查看这是否有帮助。

     从设备收到标记为"PMBUS_TRANSACTION_NONE"的无效读命令时,如何将 NACK 发送到主机?

    在这种情况下、F28002x 器件似乎是控制器、目标是发送"PMBus_TRANSATION_NONE"的命令、正确吗? 如果是、似乎没有方法手动 ACK/NACK 特定命令。 PMBSC 寄存器有一种方法可以手动确认接收到的命令代码、但这种方法在目标模式下配置时更具体。

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

    尊敬的 Amir:

    好的。 F28002x 是目标从器件。 我们使用  PMBSC 和 MAN_CMD。 因此我们可以 手动对特定命令进行 ACK/NACK。

    但 尚未如下图所示设置数据请求标志、仅自动设置 DATA_READY 标志。 那么为什么 还没有设置数据请求标志呢?

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

    您好、绍兴:

    但 尚未按下图设置数据请求标志,仅自动设置 DATA_READY 标志。 为什么 还没有设置数据请求标志?

    根据 DATA_REQUEST 和 DATA_READY 的寄存器位描述、似乎固件需要在 发生任何其他 PMBus 活动之前读取数据。 根据我看到的内容、由于读取缓冲区当前已满、需要先读取数据、然后 PMBus 才能请求更多数据。