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.

[参考译文] CCS/UCD3138A:有关 PMBus 的问题

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

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/698535/ccs-ucd3138a-question-about-pmbus

器件型号:UCD3138A
主题中讨论的其他器件:UCD3138

工具/软件:Code Composer Studio

在主循环中使用 PMBus_handler()函数。 然后使用 i2c 工具读取输出电压。 如果具有高负载的模块、SCL 将在35mS 的时间内设置为低电平。 为什么 SCL 设置为低电平? 我更改了命令的一些 i2c 工具、它也具有相同的外观。

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

    Liwei、

    如果固件负载过重、则没有足够的时间响应 PMBus 命令、时钟扩展35mS、然后 PMBus 复位。

    您能否在 PMBus_handler ()中放置一个切换引脚并查看其执行的时间?

    谢谢、

    肖恩

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

    肖恩:

           我已经在 PMBus_handler ()中放置了一个切换引脚,并且计时器介于50us 到90us 之间。

           寄存器设置如下:

           PMBusRegs.PMBCTRL2.RX_BYTE_ACK_CNT = 0b11;

            PMBusRegs.PMBCTRL2.SLAVE_MASK = 0b01111111;

          但我发现 UCD3138不确认从器件地址和命令 somtime。

           

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

    还有其他几个因素会导致时钟低电平持续35毫秒。  通常、这意味着固件会丢失、并且无法正确响应 PMBus。  由于您说这个问题只在高负载时发生、我想知道是否有噪声导致主环路丢失。  在某些情况下、噪声会导致主环路在不复位芯片的情况下丢失。  

    如果发生这种情况、则在这种情况下、正在调用 PMBus_handler 的指示应该会消失。  如果发生这种情况、我建议查看改善 UCD 电源的接地和滤波、并可能使用看门狗引起复位。  

    PMBus 上的噪声和故障也可能导致 PMBus 处理程序混淆、但这通常不是由高负载引起的。  

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

    感谢你的答复。

    我只使用读取命令。 我发现以下是一些情况:

    当 主器件发送读取地址时、UCD 不会将主器件作为数据。 则 SCL 将在35mS 内设为低电平。

    2. UCD 已接收命令,它已将数据发送到主站,但未发送 PEC。 则 SCL 将在35mS 内设为低电平。 日期和 PEC 由 PMBTXBUF 寄存器发送。  我 不知道此时会发生什么。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    可能是主器件未请求 PEC。 对于某些版本的 EVM 代码、如果您不请求 PEC、则在 ACK 之后、下一条消息将具有一个时钟低电平、因为 EVM PMBus 代码处于错误状态。 有时、由于数据线路上的上升时间较慢而检测到 STOP 可能导致缺少 PEC。 为了测试这一点、要么从400KHz 变为100KHz、要么在时钟和数据线路上放置一个较低的上拉电阻。 如果您使用的是 USB 接口适配器和 TI GUI、则可以使用 GUI - SAA 适配器设置来更改波特率和上拉电阻值、如果有选项卡、该设置将位于 SMBus/I2C 选项卡下。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    主器件已向从器件请求 PEC。 我还使用 USB 接口适配器进行 i2c 通信。 设置为低电平的 SCL 是轻负载附带的。 在高负载条件下、外观比在轻负载条件下更好。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    即使主器件请求 PEC、如果从器件检测到 STOP、它也不会发送它。  我建议您查看 UCD 发布的数据线的上升时间。  或者尝试使用100KHz 或更低的上拉电阻器来查看问题是否出在这里。  一些人复制了我们在开环板和一些 EVM 上使用的保护二极管。  它们甚至不需要位于 EVM 和开环板上、并且会增加大量电容。  将它们取下也会缩短上升时间。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我看到了 SCL 和 SDA 的波形。 波形正常。 上升时间是最长的直立时间。 因此、我认为根本原因不是这样。
    当主器件请求数据时、UCD 作为从模式需要返回数据和 PEC。 UCD 硬件感知向 UCD 寄存器提供的数据。 但有时、UCD 仅返回数据。 我看到了波。 当 UCD 需要返回 PEC 时、SDA 为低电平、SCL 为正常。 为什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当您说上升时间几乎为直立时、您是否确定要查看 UCD 释放的上升时间? 对于时钟、除了在时钟拉伸结束时、主器件几乎总是释放它。 对于数据、当 UCD 返回数据时、上升时间最明显、因此它将释放数据线。 它也在消息的写入部分的 ACK 末尾发生、但通常看不到它、因为如果下一个位为低电平、主器件会将数据下拉。

    关于 SDA 为低电平、SCL 为正常状态的第二点、正确返回 PEC 应该是正常的。 您能否给我发送一两个示波器快照、以便我可以看到发生了什么情况?