USB论坛
直播中

123

11年用户 889经验值
擅长:可编程逻辑
私信 关注
[问答]

PD协商后,在什么情况下会出现\"PD_CONTRACT_CAP_MISMATCH_DETECTED\"?

我手动更新了 CCG5 的 pdo 5V 1A,但协商结果返回"PD_CONTRACT_CAP_MISMATCH_DETECTED" ,我看到设备可以正常充电。 因此,我想知道谈判是否成功。

回帖(1)

王璐

2025-5-28 17:40:15

在USB PD(Power Delivery)协商过程中,出现 PD_CONTRACT_CAP_MISMATCH_DETECTED 错误通常表示电源(Source)和设备(Sink)在协商后的供电合同(Contract)中存在能力(Power Capability)不匹配的问题。以下是可能的原因和您的实际情况分析:




1. 错误原因解析




  • 根本定义:此错误表示双方协商后的合同参数(如电压、电流)与设备或电源的预期能力不一致。



    • 例如:电源提供的PDO(Power Data Object)被设备接受后,电源发现自身无法满足该PDO的实际输出能力(或设备检测到电源未按合同供电)。

    • 也可能是设备请求了一个电源未明确支持的PDO(例如:电源声明支持5V/3A,但设备协商后要求5V/3A时电源实际无法提供)。




  • 您的场景



    • 您手动将电源的PDO配置为5V/1A,但设备可能尝试请求更高的功率(如5V/3A),导致协商后的合同与电源的实际配置不匹配。

    • 尽管设备显示正常充电,但可能是协商失败后回退到了默认的USB模式(如USB DCP 5V/1.5A或BC1.2协议),而非通过PD协议充电。






2. 为什么设备仍能充电?




  • 回退机制:当PD协商失败时,设备可能自动切换到非PD的充电模式(如传统的5V电压)。



    • 例如:使用USB DCP(Dedicated Charging Port)模式或Apple 2.4A协议,此时充电功率可能为5V/1A或5V/2.4A,具体取决于设备兼容性。

    • 此时充电功率较低,但仍能满足基本需求,因此设备显示“正常充电”。




  • 实际协商结果



    • 如果错误出现在协商后的合同确认阶段(而非协商阶段),可能电源和设备仍会尝试按最后一次有效的合同供电。

    • 需要进一步通过协议分析工具(如USB PD Analyzer)确认实际生效的合同参数。






3. 协商是否成功?



  • 未完全成功:出现此错误表明PD协议层检测到合同不匹配,因此严格来说协商未完全成功。

    • 如果设备通过PD协议充电,实际电压/电流应匹配PDO中配置的值(如5V/1A)。您可以通过以下方式验证:

      1. 使用USB电流表检测实时电压和电流。

      2. 查看设备系统信息(如Android的“充电状态”或iOS的第三方工具)。


    • 如果实际功率为5V/1A,则可能是PD协商成功但触发了错误日志(需检查固件逻辑);如果功率更高,则协商失败后回退到了其他协议。





4. 可能的问题根源



  • PDO配置不当

    • 确保您配置的PDO符合USB PD规范(例如:5V/1A需在PDO的Voltage和Current字段正确编码)。

    • 检查是否遗漏了其他必要字段(如Fixed Supply标志位、SNK_UNCONSTRAINED_POWER等)。


  • 固件逻辑缺陷

    • CCG5固件可能在处理手动PDO更新时未正确同步内部状态,导致协商时误报错误。

    • 检查固件版本是否存在已知问题,或尝试通过CCGx Configuration Utility重新配置PDO。





5. 建议操作




  1. 监控实际充电参数



    • 使用USB电流表(如FNB58)确认设备实际充电电压和电流。

    • 如果实际参数为5V/1A,则PD协商可能成功(但需排查为何触发错误日志);如果参数更高,则是回退到其他协议。




  2. 协议分析工具



    • 通过USB PD协议分析工具(如Total Phase PD Analyzer)捕获协商过程的通信报文,确认以下信息:

      • Source发送的PDO列表。

      • Sink请求的RDO(Request Data Object)。

      • 协商后的合同参数和错误触发时机。





  3. 固件调试



    • 检查CCG5的调试日志,确认错误触发的具体阶段(如Accept/PS_RDY阶段)。

    • 确保手动配置的PDO未被其他固件逻辑覆盖(如动态PDO调整功能)。




  4. 更新配置



    • 如果设备支持,尝试配置多个PDO(如5V/1A + 5V/3A),观察协商结果是否变化。






总结



  • PD_CONTRACT_CAP_MISMATCH_DETECTED 表示PD合同能力不匹配,但设备可能通过回退到非PD协议充电。

  • 协商是否成功需通过实际充电参数和协议分析工具验证。建议优先排查PDO配置和固件逻辑,确保符合USB PD规范。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分