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.

[参考译文] TPS25762-Q1:在请求超过13.5V 电压时关断

Guru**** 2381920 points
Other Parts Discussed in Thread: PMP40934, TPS25762-Q1, PMP40933, TPS25772-Q1
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1452045/tps25762-q1-shuts-down-when-requesting-more-than-13-5v

器件型号:TPS25762-Q1
主题中讨论的其他器件: PMP40933、PMP40934、 TPS25772-Q1

工具与软件:

你(们)好

在遇到一些问题后、我让我的设计正常工作。 USB PD 正确地向接收器报告、并检测到端口方向。
现在我有一个新问题。 当请求超过13.5V 电压时、即使没有负载、输出也会关闭。  

我尝试了一个 USB 测试仪、 joy-it JT-UM120 、要求 IC 提供输出、它在我尝试获得13.6V 或更高电压之前工作得很好。
我还尝试了使用需要高达3A @ 15V 电压的 Valve 蒸汽舱、但它无法开始充电、电路板的输入电流只是略有波动。
在这里、我还可以使用 USB 测试仪来查看电压和电流读数。 输出电压

我在这里有一个大约-8的电压偏移、以便更好地了解 IT 波形。
我们可以看到、它上升到5V、尝试达到15V、但失败了。

我还能测试什么?

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

    尊敬的 Pontus:

    请注意、我们将通过 该主题继续讨论。  

    很高兴 I2C 上拉电阻器值的变化已帮助取得了进展、您可以为用电器件充电。 您是否有 PD 分析仪来捕获在协商15V PDO 合约时发生断开时的 PD 日志? 发生这种断开时、您是否使用热像仪测量电路板温度?

    回到有关内层 IC 和 I2C 布线下缺少接地覆铜的主题 -需要注意的一点是能量不是来自电压或电流、而是 EM 波。 如果没有正确接地、来自 I2C 信号的 EM 波将没有良好的返回路径、因此、尽管从示波器捕获来看、电压电平可能看起来正常、但布线上可能存在信号反射以及来自不受控制的 EM 波的串扰可能会导致问题。 没有正确接地和接地过孔放置的另一个副产物是不良的 PCB 热管理。 综上所述、建议对电路板进行第二次修订、以消除调试时的任何潜在问题。  

    为了直接从消息中回答您的问题、发布了-CA 型号来解决-C 版本在某些冷启动情况下会出现的问题。 如需更多信息/详情、请 点击此处

    BR、

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

    你好、成

    我的 USB 分析仪没有导出监听的包的选项、但我的确为它拍摄了一些 SoM 的照片。


    IC 重新启动时会重复6个软件包。
    前3个部分是相同的、我猜灌电流器件可能会进行一些识别。



    然后、我们从源获取功能。



    然后、接收端发送它的请求、接收端接受它。
    然后是重新启动、它会从头开始。



    散热看起来没有问题。
    这里我连接了一个 MHP30 PCB 预热器。 它支持高达100W 的功率、但功耗更低。 我已经对它进行了低至15W 的测试、它能正常工作。
    连接到此处后、显示器甚至不会打开。 因此、几乎没有任何负载、可能只有几毫安。
    对于我连接的请求超过13.5V 的其他 PD 受电方、PD 封装和行为是相同的。


    关于内层上的接地覆铜、我刚收到通知、我修改过的 PCB 是从工厂发货的。
    正如我在电子邮件中提到的、我确实在设计中使用了他们、但网络名称拼写错误、在我就职于一家小公司时、我没有机构在生产前对我的设计进行审核。 我很高兴这不是什么更糟的事情。


    感谢提供有关不同版本的信息。

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

    尊敬的 Pontus:

    如前所述、我建议下次利用 E2E 并申请进行设计审查、然后再投入生产。

    是的、第一个0x108F 消息标头显示 VDM 标头为0xFF00A801、这是 TPS25762-Q1请求磁盘 ID 来了解您所使用 USB 电缆的功能。 您使用的 USB 电缆的器件型号是什么? 前三个事务都具有0x108F 消息标头。 是否第2条和第3条消息也显示相同的0xFF00A801 VDM 标头(如果您选择它们)?

    让我们尝试一个调试步骤、以确认 ADC 是否正常工作。 I2C 寄存器0x1A 是 STATUS 寄存器、0x1A 寄存器映射 如此处所示。 您 提到5V 和9V PDO 可以工作、并且在协商9V 合约后、您可以消耗最高1.5A 的电流。 顺便说一下、您要如何测量电压和电流? 确认 VIN 电压和输出电压/电流后、读取0x1A 寄存器并检查 VBUS 电流、VBUS 电压和 VIN 电压 ADC 读数的准确程度。

    仔细看看光绘文件、电流检测电阻器布局也值得关注。 布线长度不匹配、并且从 CSP 和 CSn/总线引脚到电阻器的连接并不理想。  集成电阻电流传感器简化 PCB 设计中的图2C 是首选方法、也是 PMP40933参考设计中的设计方法(请参阅下图)。 0x1A 寄存器读取将表明 VBUS 当前 ADC 读数是否较差。  顺便说一下、R14分流电阻器的器件型号是多少?

    如我们的另一个主题中所述、AGND 和 PGND 未通过单点接地在 AGND 引脚附近分离和连接、如数据表中所述(请参阅以下数据表中的 SNIP)。  之所以如此重要、是为了减少电源接地 PGND、因为这会导致波动干扰信号接地 AGND 并导致振荡。

      

    此外、USB3数据通信是否正常工作? 很难想象、它也没有相邻的接地参考平面。 如果正常工作、那么 TPS25762-Q1正在协商15V PDO 时 USB 3是否处于活动状态? 我在下图中看到、第三层上的 CC2布线正位于顶层的 SSRX 布线正上方。 当您将用电器件的 USB 插头 正面朝上和倒置时、是否会发生同样的问题?

    BR、

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

    你好、成

    我不认为这会是一个深入的董事会审查/审计。  

    是的、3个0x108F  消息是相同的。
    我测试了很多不同的电缆。 一些来自三星,一些通用和一些来自品牌如绿色。 我不提供准确的器件型号。
    它们都可以在其他 PD 充电器上工作、并且我可以通过我的板上的所有充电器获取高达13.5V 的电压。

    我无法从 i2c 中获取任何有意义的内容。 我正在从器件地址0x22读取。 我使用了一台简单的 i2c 扫描仪发短信  
    这就是它发现的结果。  
    我从寄存器0x1A 读取12个字节。 前5个被丢弃。 其余仅为0x00。
    从器件地址0x23读取只会为我提供所有字节的0xFF。


    我从  JT-UM120获取电压和电流、他们将其称为 USB 万用表、可测量高达120W 的功率。 4-28V @ 0-7A

    我对光绘文件做了一些改动、所有这些都是在前文提到的工厂新生产流程中进行的。 请参阅随附文件。

    e2e.ti.com/.../7433.usbhub_5F00_usb_5F00_pd_5F00_2024_2D00_12_2D00_18.zip


    我不确定"通过单点接地在 AGND 引脚附近连接"到底是什么意思
    我是否可以使用布线将 AGND 连接到接地覆铜? 如果是、其范围有多宽?
    我想让接地覆铜连接到 AGND、我认为这是单点连接。 它有何不同?
    检查基准时、 PMP40933 和 PMP40934都存在较小的 AGND 覆铜:


    有2个过孔、但根据光绘文件的不同、它们并未连接到任何东西?


    我现在很困惑。


    按照我所测试的方法、USB 3数据确实可以正常工作。
    当我连接 PCB 预热器时、没有 USB 流量处于活动状态、但在请求15V 电压时、仍然失败。
    旋转 USB 插头没有任何区别。

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

    尊敬的 Pontus:

    当您从寄存器0x1A 读取12个字节时、您是说字节6~12全是0? 当器件可以运行时、是否协商了9V PDO 协议并且您在持续消耗1.5A 电流时、这种情况是否发生? 顺便说一下、您的原理图显示您是在 TVSP 索引#0中引导的、因此从技术角度而言、第二个 I2C 器件地址是0x26、而不是0x23。 这对您来说不是关键信息、因为您不使用双端口 TPS25772-Q1型号、而只是想作为供参考。

    请参阅下面的示例 PCB 设计、其中突出显示了整个 AGND 网。 红色表示顶层、蓝色迹线表示第3层。 在绿色框中、系统 GND/PGND 网络连接到器件 AGND 引脚(引脚5)上的 AGND 网络。 这就是所谓的单点接地、或在单个接地点建立连接时。 这比在 PMP40933和 PMP40934设计上的做法更好。在这种设计中、尽管顶层的 AGND 平面被隔离、但这些平面通过过孔直接连接至相邻的第二层 GND 平面。

    在 PMP40933和 PMP40934设计上、 应遵循的更为重要的一点是、第2层是专用 GND 层(整个第2层为接地覆铜)。 请参阅 信号调节器和 USB 集线器高速布局指南应用手册中的第3.5节。 如本节所述、高速信号(例如2.5~5GHz 带宽的 USB 3)不应穿过参考平面中的平面分割点。 这也适用于 I2C。  

    另外还有一对 AGND 过孔、其在 PMP40933电路板底层有输出。 我不知道为什么此电路板的设计人员仅在底层添加这些禁止项、但为了供将来参考、请改为按照我的建议和上面的示例进行操作。

    BR、

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

    你好、成

    我今天进行了检查、现在我要从0x1A 寄存器中获取数据。 奇怪。
    但该地址当然是0x22。 我在0x23或0x26上没有看到任何信息。

    我已经将  JT-UM120设置为请求高达3A @ 9V 电流、然后连接了 Joy JT-HD35 USB 电子负载并将其设置为1.5A。
     JT-UM120读数恒定的1.4992A 拉电流、我想说得非常接近。

    我确实尝试了将 i2c 读数转换为一些可用的数字、但我必须做一些错误的事情。
    这是我得到的结果
    位0-15:0xBA00
    位16-23:0x03
    位 31:24:0x7B
    位 39:32:0xC9
    位 47:40:大约0x59 - 0x5C
    位 55:48:约为 0x73 - 0x78

    我使用 Arduino 读取 I2C。 代码如下:

    #include <Wire.h>
    
    void setup() {
      Serial.begin(115200); //Initialize UART port , on ATmega32U this is the one connected to USB.
      while(!Serial) {} //Wait for serial monitor to connect, Only works because it's a ATmega32U based board.
      Wire.begin(); // Initialize I2C
    }
    
    byte val = 0;
    
    void loop() {
      Wire.beginTransmission(0x22);    // Start transmission. Send device address
      Wire.write(0x1A);                // Tell it what register I want to read from.
      Wire.requestFrom(0x22,12);       //Start requesting the data. Is read into FIFO buffer.
      //First 5 bytes are crap:
      Wire.read();
      Wire.read();
      Wire.read();
      Wire.read();
      Wire.read();
    
      //Internal DCDC voltage code reading (10mV LSB)
      byte LSB = Wire.read();
      byte MSB = Wire.read();
      uint16_t DCDCV = ((MSB << 8) | LSB);
    
      //Internal DCDC Current code reading (25 mA LSB)
      byte DCDCC = Wire.read();
    
      //VIN voltage ADC reading (0.08 V LSB)
      byte ADC_VIN = Wire.read();
    
      //VBUS voltage ADC reading (0.098 V LSB)
      byte ADC_VBUS_V = Wire.read();
    
      //VBUS current ADC reading (23 mA LSB)
      byte ADC_VBUS_C = Wire.read();
    
      //VNTC voltage ADC reading (0.014 V LSB)
      byte ADC_NTC = Wire.read();
    
      Wire.endTransmission();
    
      Serial.print("DC Voltage:");
      Serial.print(DCDCV * 10);
      Serial.print("mV - ");
      Serial.print("0x");
      Serial.println(DCDCV, HEX);
    
      printValue("DC Current:", "mA", DCDCC, 25.0f);
      printValue("ADC VIN:", "V", ADC_VIN, 0.08f);
      printValue("ADC VBUS voltage:", "V", ADC_VBUS_V, 0.098f);
      printValue("ADC VBUS current:", "mA", ADC_VBUS_C, 23.0f);
      printValue("ADC VNTC voltage:", "V", ADC_NTC, 0.014f);
    
    
      Serial.println();
      Serial.println();
      Serial.println();
    
      delay(2000);
    }
    
    void printValue(const char* text, const char* unit, unsigned char value, float convertion) {
      Serial.print(text);
      Serial.print(value * convertion);
      Serial.print(unit);
      Serial.print(" - ");
      Serial.print("0x");
      if (value < 10)
        Serial.print("0");
      Serial.println(value, HEX);
    }
    

    结果如下所示:

    DC Voltage:17408mV - 0xBA00
    DC Current:75mA - 0x3
    ADC VIN:9.84V - 0x7B
    ADC VBUS voltage:19.80V - 0xCA
    ADC VBUS current:2116mA - 0x5C
    ADC VNTC voltage:1.64V - 0x75

    这里有些事情非常糟糕、我想我的快速而肮脏的代码在本例中是罪魁祸首。
    当我将加载从500mA 更改为1500mA 时、tps25762中的数据都将发生更改、因此、我猜不仅仅是我的代码问题。

    感谢您的澄清。 该示例看起来像是我在上一篇文章中附加的电路板的上一个版本中所做的。
    我在第2层上确实有一些电源和接地覆铜、并且主要在第3层上接地(一些信号除外)、我应该将所有电源移到第3层、然后  
    第2层上只有接地?
    我认为我的英语很好,但这部分混淆了我"不应该在参考平面中穿过一个平面分割"
    但我们需要更详细地解释一下吗?


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

    尊敬的 Pontus:

    您误读了我的评论。 我说这话 然后 地址为0x26、但您不需要将该第二个地址用于 TPS25762-Q1。 它只是一个供参考的,所以你可以忽略这一点。  

    [报价 userid="276971" url="~/support/power-management-group/power-management/f/power-management-forum/1452045/tps25762-q1-shuts-down-when-requesting-more-than-13-5v/5575141 #5575141"]顺便说一句、您的原理图显示您是在 TVSP 索引#0中引导的、因此从技术上讲、第二个 I2C 器件地址是0x26、而不是0x23。

    如数据表的第8.3.1.2节所述、LDO_1V5为包含 ADC 的器件数字内核供电。 LDO_1V5电容器需要连接到 AGND、但您的电容器连接到系统接地平面。 如前所述、分离 AGND 和 PGND 非常重要的原因是要减少电源接地 PGND、从而减少因波动而干扰信号接地 AGND 并导致振荡。 电容器还需要尽可能靠近引脚7放置。 在 PMP40933设计中、将引脚7连接到 LDO_1V5电容器的布线大约为0.7mm。 电路板上的间距约为10cm。 这就是为什么0x1A 寄存器中的 ADC 读数不准确以及 TPS25762-Q1可能会断开受电方的连接。 可能会触发 VBUS 过压/过流事件。

    我还从 JSON 中看到、范围2到范围1的 VIN 引擎开/关阈值为8.56V。  

    如果您的 VIN 为15V、但在协商9V PDO 时 ADC 读数为9.84V、则在协商15V PDO 时、ADC 可能读取的 VIN 小于8.56V、因为系统中来自直流/直流转换器的噪声会更多并关闭 VBUS。

    是的、我建议将第2层全部接地。  

    很抱歉、我没有将您链接到 信号调节器和 USB 集线器的高速布局指南 应用手册。  本应用手册中的图4显示了顶层的交流/数字信号布线。 蓝色 GND 平面是第二层参考平面。 图5显示了相同的信号布线、但布置在参考平面中的平面分割点。 我在下图中用绿色圈出、这是 I2C 和电感器布线上发生的情况。

    到目前为止、您尚未遵循数据表中的许多设计指南、PMP40933参考设计和其他一般 PCB 设计实践、因此我们在您的 PCB 设计上标记了许多内容。 您应该等到您拿到新的电路板进行测试、然后再看看有什么问题。 然后根据这些结果、对 PCB 设计进行任何必要的修复、请求 E2E 上的设计审查、根据我们的反馈应用任何其他更改、然后生成另一个修订版本。

    BR、

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

    你好、成

    你是对的、我没想到那个部分、你说了"第二个地址"、这就是我的错。

    我将尽快重新设计 AGND。
    到 LDO_1v5电容的距离约为15mm、近期接近10cm。 但我会在固定 AGND 时将它们移近一些。

    VIN 引擎设置为默认设置。 我是否应该尝试改变它?如果是、我应该改变什么?

    当我更改 协商的电压时、0x1A 寄存器中的 VIN 读数不会改变、我昨天尝试了5-13V 和
    不管怎么说,我得到的读数都是一样的。
     有时只会更改 DC 电压读数。

    我将使第2层成为完整的接地覆铜。

    感谢您提供应用手册的链接。 它现在很有道理。  
    将所有电源从第2层移到第3层可解决突出显示的问题、对吗?

    我更改了电流传感器网络、使其长度匹配、移动了 CC2线、添加了一组阶梯、以改善返回路径并改进 TPS25762 IC 周围的接地和热传递。
    如何申请设计评审? 我是否只是写一个论坛帖子想要一个?

    BR
    Pontus

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

    尊敬的 Pontus:

    很抱歉、这是一个拼写错误! 我想写10毫米哈哈。  

    在等待新电路板时、请随时通过 GUI 使用不同的 AppConfig 设置进行试验。

    是的、最好将第2层全部接地。

    我将关闭该主题帖。 准备就绪后、请发布包含您的设计文件的新主题并请求审核。  

    BR、