USB论坛
直播中

尚文清

8年用户 1710经验值
私信 关注
[问答]

EZ-PD CCG5 CYPD5125 TYPE-C PD功能异常的原因?

CYPD5125 TYPE-C 作为Consumer的时候,外接设备是有5V输出的,当TYPE-C作为Provider的时候,此时VBUS为5V,VDDD也有3.3V左右,CYPD5125里的程序为什么没有跑起来?

回帖(1)

h1654155275.5669

2025-6-6 17:28:30

针对您描述的 CYPD5125 (EZ-PD CCG5) 作为 Provider 时无法正常工作的问题(VBUS=5V, VDDD=3.3V,但程序没跑起来),这确实是一个需要系统排查的问题。以下是可能导致此问题的根本原因和诊断步骤:


根本原因分析 (VBUS/VDDD 有电但芯片不运行):




  1. 供电时序或稳定性问题:



    • VDDD 上电顺序: 虽然您测量到 VDDD 有 3.3V,但它的上电时序非常关键。CCG5 要求 VDDD 必须在 VBUS 之前或在 VBUS 之后 3ms 内 上电并稳定。如果 VDDD 上电严重滞后于 VBUS,芯片可能无法正确初始化或进入错误状态。

    • VDDD 电压稳定性/纹波: 3.3V 电源是否有足够的驱动能力?电压是否稳定?在芯片启动或尝试输出时,是否有明显的跌落或纹波?用示波器测量 VDDD 在上电瞬间和启动过程中的波形至关重要。

    • VBUS 电压稳定性/源能力: 您说 VBUS=5V,但这电压是谁提供的?是另一个电源还是您的板子作为 Provider 试图输出的?如果是后者,但芯片没启动,这个电压怎么来的?如果是前级预供电源(如 Rp 电阻拉起来的小电流 5V),那么这个预供电源电压的稳定性也需要检查。当芯片正常启动并作为 Provider 接管后,需要能输出足够的电流。




  2. 复位信号问题 (RESET_N):



    • 芯片的 RESET_N 引脚必须在 VDDD 稳定后被释放(拉高)。检查原理图和实际电路:

      • 是否使用了正确阻值的上拉电阻(通常为 10kΩ - 100kΩ)连接到 VDDD

      • RESET_N 引脚是否被意外短路到地或其他低电平信号(布线问题、元件焊错)?

      • 复位电路是否有元件损坏?复位电容值是否过大导致复位时间过长?


    • 用示波器测量 RESET_N 信号在上电过程中的时序。它应该在 VDDD 接近稳定后迅速上升到 VDDD 的高电平。




  3. 看门狗问题:



    • CYPD5125 默认启用内部看门狗定时器(WDT)。如果您的固件没有在 WDT 超时前(默认配置可能是几百毫秒)喂狗,或者配置错误(如分频系数极小导致时间太短),芯片会因看门狗复位而不断重启。

    • 诊断: 固件调试阶段通常建议暂时禁用看门狗以排除其干扰。在固件入口处尽早调用 Cy_WDT_Disable();,然后测试是否恢复正常。如果恢复正常,说明看门狗配置或喂狗逻辑有问题。




  4. 固件问题:



    • 配置错误 (Boot Device Role): 这是非常关键的一点!在 EZ-PD Configurator 或代码中,您是否明确配置了芯片的 Boot RoleProvider (Source) ?即使硬件连接正确,固件也必须明确设置为 Source 角色才能正常工作。确保 cy_pdutils_init(true) (或类似) 接口传递了正确的 Device Role 参数 (对于 Provider,应该是 CY_PD_PRT_TYPE_SRC)。

    • 未编译 Provider 固件: 您确定烧录的固件是专门为 Provider (Source) 角色编译的版本吗?是否有错误烧录了 Consumer (Sink) 角色固件的可能?

    • 堆栈溢出/死锁/崩溃: 虽然 VDDD 有电,但固件可能在初始化代码中发生严重错误(如数组越界、空指针、硬件资源冲突、堆栈空间不足等),导致卡死或崩溃。这需要有调试手段(SWD, UART Log)来观察。

    • EEPROM/Bootloader 问题: 固件烧录到了正确的位置吗?Bootloader 是否能正确加载应用程序固件?EEPROM 存储的参数是否损坏或配置错误?尝试重新擦除整个芯片后再烧录固件(确保选择正确的烧录地址)。




  5. 硬件连接问题:



    • I2C 总线冲突: 如果您的设计中 CYPD5125 作为 Provider 且需要连接到其他 I2C Device(如端口控制器、EEPROM),检查 SDA/SCL 总线是否有:

      • 上拉电阻(通常是 4.7kΩ)接 VDDDIO/VDDD (需注意电平匹配)。

      • 对地短路或对电源短路。

      • 与其他器件地址冲突。


    • 晶振问题 (如使用): 如果使用了外部晶振(XTAL_IN/XTAL_OUT),检查晶振是否启振?电路(负载电容、匹配电阻)是否正确?用示波器检查时钟信号。

    • 器件地址选择引脚 (ADDR[2:0]): 这些引脚的状态是否与您的固件(或 I2C 主机,如果有)预期的设备地址匹配?这些引脚必须通过电阻下拉(到地)或上拉(到 VDDD/VDDDIO),不能悬空。




  6. CC 引脚配置问题 (Provider 关键):



    • 作为 Provider (Source),CC1CC2 引脚必须配置为连接下拉电阻 Rd 的 Sink 设备提供电压源(Ra,上拉电阻)。这是通过固件设置内部上拉实现的。

    • 检查原理图上 CC1/CC2 到 Type-C 连接器的走线是否连接正常?是否存在对地短路?开路?

    • 用万用表或示波器测量在插入 Sink 后 CC1CC2 的电压变化。没有变化的 Sink 插入(或电压不符合预期)可能说明连接或固件配置问题。




  7. VBUS 路径控制问题:



    • Provider 固件启动后,需要控制其 VCONNVBUS_CTRL 等引脚(或通过 I2C 控制外部 Power Path 芯片)来开启为 Sink 供电的 VBUS。

    • 检查这些控制信号的引脚连接是否正确?电源路径上的 MOSFET 或保护电路是否工作正常(栅极驱动电压、体二极管状态、漏源极导通)?

    • 即使芯片内部的逻辑启动了,如果控制 VBUS 导通的路径不通,您可能测量不到预期的电流输出。




诊断和解决步骤 (强烈建议按顺序进行):




  1. 示波器是必备工具!



    • 同时捕获 VDDDVBUSRESET_N 的上电波形(至少从 Power-On 到上电后 100ms)。关注 VDDDVBUS 的先后关系(VDDD 必须在 VBUS 或之后 3ms 内稳定)、VDDD 的稳定时间、RESET_N 的释放时间点和波形质量(是否有毛刺)。

    • 如果使用晶振,测量晶振输出。

    • 插入 Sink 时,测量 CC 线电压。




  2. 检查 RESET_N 电路:



    • 断开电源,万用表测量 RESET_N 引脚对地阻值,不应短路。

    • 上电稳定后,测量 RESET_N 应为稳定的 3.3V 高电平。




  3. 固件层面检查 (核心):



    • 验证配置: 再次确认固件是基于 Provider (Source) 模板或明确配置为 Provider 角色编译的。检查 EZ-PD Configurator 工具里的设定截图或配置文件。

    • 禁用看门狗: 最优先尝试! 在固件初始化最开头添加 Cy_WDT_Disable(); (或 Cy_SysWdt_Disable()),烧录后测试。

    • 简化程序: 创建一个最小化的 Provider 固件(只包含必要的 Source 角色初始化,甚至不做 PD 协商,只要能驱动 VBUS 到 5V),看是否能成功。

    • 烧录和 Bootloader:

      • 确保使用正确的编程器(如 MiniProg4)和配置(芯片型号、烧录地址)。

      • 擦除整个芯片后(包括 flash 和 EEPROM)再烧录。尝试烧录赛普拉斯提供的 Reference Source (Provider) Design 固件(如果能找到匹配的),用以验证您的硬件是否正常。

      • 如果可行,通过 SWD 或 UART 接口(如果固件支持)连接调试器,设置断点或观察启动过程信息。





  4. 硬件层面深入检查:



    • CC 引脚: 不插 Sink,Provider 的 CC1/CC2 应接近 0V(或根据设计有内部弱下拉)。插上 Sink 后,负责连接的 CC 线电压应明显上升(如到接近 1.2V Ra + Rd 分压值)。

    • I2C 总线: 用逻辑分析仪或示波器检查 SDA/SCL 是否有持续的通信或异常信号(如永久高电平、永久低电平、频繁的起始/停止信号)。检查上拉电阻及其连接。

    • 电源电流: 上电后,用万用表 mA 档监测 VDDD 的总输入电流。正常初始化的芯片在启动和空闲时应有可测量的(几个 mA 级别)静态电流。如果电流一直非常小(<1mA),可能是芯片没有成功启动。

    • VBUS 电源路径: 将万用表串联在 VBUS 输出正极线路中。插入 Sink 后,在固件成功协商后,应能测量到输出的电流(即使是几十 mA)。如果没有电流,重点检查 VBUS 控制管脚信号(GPIO/VCONN/VBUS_CTRL)及后续的功率开关管电路。




  5. 尝试替代硬件:



    • 如果可能,用一个新的 CYPD5125 芯片替换现有芯片,排除芯片本身损坏的可能性。操作时注意 ESD 防护!




总结关键排查点 (按优先级):



  1. 确认 VDDD 上电时序正确且稳定(用示波器!)。

  2. 确认 RESET_N 已正确释放(高电平)。

  3. 在固件中 Cy_WDT_Disable(); 禁止看门狗后进行测试。

  4. 100% 确认烧录了专门为 Provider (Source) 角色编译的固件。

  5. 重新烧录固件,必要时擦除整个芯片。

  6. 测试 CC 引脚在插入 Sink 时的电压变化情况。


通过系统性地检查供电稳定性、复位信号、固件配置(尤其是角色和看门狗)、关键引脚(CC)状态,通常可以定位到芯片作为 Provider 不能正常工作的原因。示波器观测上电时序是关键的第一步。祝您顺利解决问题!

举报

更多回帖

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