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.

[参考译文] UCD3138:有关 UCD3138 PMBus 超时差异的问题

Guru**** 2535150 points
Other Parts Discussed in Thread: UCD3138

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/948491/ucd3138-questions-about-ucd3138-pmbus-timeout-difference

器件型号:UCD3138

SMBus 2.0规范

SMBus 2.0规范: http://smbus.org/specs/smbus20.pdf
下图取自 SMBus 2.0规范、第11页、图3-1:SMBus 时序测量
 下图取自 SMBus 2.0规范第13页的图3-2:超时测量间隔

下表摘自 SMBus 2.0规范、第11页、表1:SMBus 交流规范

UCD31xx 数字电源控制器- PMBus 接口/I2C 接口

文件标题:UCD31xx 数字电源控制器、文献编号:SNIU028D 2016年2月–2020年9月修订
文件 URL: https://www.ti.com/lit/ug/sniu028d/sniu028d.pdf

下图是文件内容描述(第386页)时钟高超时检测的屏幕截图

下图是文件内容说明(第419页)表10-7的屏幕截图。 PMBus 状态寄存器(PMBST)寄存器字段描述(续)

问题

各位专家、您好!

  1. CLK_LOW_TIMEOUT 的功能是否与 SMBus 2.0规范中的 TTIMEOUT 规范相对应?
    请解释 CLK_LOW_TIMEOUT 检测工作原理。
  2.   SMBus 2.0规范中的 Tlow:SEXT 和 Tlow:MEXT。 UCD3138中是否有任何相应的功能支持?
    请解释检测工作原理。
  3. 在文档文件(386页)和(419页)中、为什么时钟高电平超时检测的单位不同?

非常感谢您的阅读和回答。

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

    您好、您的问题将转交给专家、请留出一些时间与您联系。

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

    UCD 硬件将复位 PMBus、并在大约35毫秒的时钟低电平之后设置时钟低电平超时标志、这是 SMBus 2.0规范所要求的。   

    这是时钟低电平超时的工作原理。  如果时钟低电平持续35毫秒、它将复位 PMBus 接口。

    UCD3138中没有针对累积时钟低电平时序的硬件支持。  无需检测。  您应该能够通过良好的固件设计防止这些情况发生、以确保 PMBus 硬件得到正确的服务。  PMBus 硬件基本上将以设定的时钟速度进行响应、而无需额外的时钟拉伸、直到它需要固件读取、写入或确认某些内容。  此时时钟将被拉伸、因此您需要确保固件及时响应。  这样做并不是很难。   

    我不确定时钟高电平超时的原因。  没有 PMBus 要求检测时钟高电平、而是要求主要放置在主器件上的时钟保持较短的时间。   我们的 PMBus 硬件的父级由特定客户指定、因此这可能是他们对默认规格的增强。  实际上、我从未见过时钟高电平过长的问题、自从推出以来、我一直担任 UCD 系列的主要 PMBus 应用工程师。   

    我们的固件都不使用时钟高电平超时。   

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

    尊敬的 Ian

    感谢您的回复,这对我们的设计非常有帮助。

    如果我们要检测累积低超时、您能帮助分享一些参考或示例吗?
    我们需要实现这一要求、但不理解 UCD3138的原则和操作方法。

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

    PMBus 不要求您检测到这一点。  您只需要避免超过该值。  作为从器件、很难测量您对延迟的贡献。  您依赖于主时钟计时和滞后。  您最多只能实际看到每个字节的传入时间、因此您可以测量每个字节的时间。

    为了准确地实现这一点、您必须使用快速中断来确保对 PMBus 硬件的快速响应、并且您可以对24位自由运行的计时器进行采样-基本上是一个时基。  您可以测量每个字节之间的时间、并假设主器件对每个字节进行计时的速度有多快。  然后、从每个字节之间的总时间中减去估算的字节时间将得到近似的时钟低电平时间。  然后、您可以将其添加到整个消息中。

    这会显著增加 PMBus 的处理器开销、通常我们使用自动地址和命令 ACK、并允许在4字节缓冲区中接收最多4个字节。  这意味着一个1字节的消息只需一个读取即可处理所有内容。  通常、我们轮询 PMBus 接口、而不是使用中断。  通过这种技术、我们仍然远低于累积时钟拉伸要求。  我们在后台模式下执行此操作。  通过这种方式、我们实际上使用时钟扩展来保护电源控制功能不会因高速率 PMBus 消息而过载。

    如果您要进行单字节检测、则必须分别检测:

    地址

    2.命令

    3.数据

    第4款

    5.停止

    如果您给 PMBus 提供快速中断、它可能会干扰电源控制功能、尤其是在快速中断中进行 PMBus 命令处理和活动时。   

    相反、我建议只使用 I/O 线路来查看您轮询 PMBus 的速度、并确保它明显快于25毫秒。