[STM32U5] STM32U585 USBPD 无法正常工作

[复制链接]
288|36
狄克爱老虎油 发表于 2026-9-4 11:29 | 显示全部楼层
确认了是DMA问题,试试STM32CubeIDE的Trace工具,观察DMA波形,检查数据传输流程是否在RXMSGEND后立即读取。
豌豆爹 发表于 2026-9-4 11:44 | 显示全部楼层
USBPD协议栈通常依赖于一个定时器中断来做状态机的时钟节拍。你用的ThreadX系统时钟可能和协议栈要求的时序有偏差,导致协议栈在等待某些超时条件时***等不到。
进入猫次元 发表于 2026-9-4 14:10 | 显示全部楼层
观察到的RXMSGEND标志置位,只能说明帧尾的CRC校验通过了,但不代表数据内容被正确接收。如果UCPD的物理层配置了错误的比特率,数据采样会错位,CRC校验却可能碰巧通过。
classroom 发表于 2026-9-4 17:23 | 显示全部楼层
你发的所有回复都是0,还有一种可能是DMA的发送缓冲区本身就没被协议栈填充正确数据。调试时你可以在USBPD_DPM_SendMessage函数里打印发送缓冲区的首字节,看看协议栈到底有没有把正确的消息头写进去。
cr315 发表于 2026-9-4 19:58 | 显示全部楼层
在U5系列中,UCPD模块的供电需要独立的VDDA和VDDIO2。如果VDDIO2电压低于3.0V或者不稳定,UCPD的模拟比较器和驱动器可能工作异常,导致发送驱动能力不足、输出电平偏低,接收端解析为0。
duo点 发表于 2026-9-4 21:39 | 显示全部楼层
你的复位流程里有没有对UCPD的DMA通道进行软件复位?建议在每次UCPD硬复位或错误恢复后,重新初始化DMA句柄并清除DMA的FIFO和传输完成标志,否则残留的配置会导致新一次的DMA传输无法正确启动。
734774645 发表于 2026-9-5 10:24 | 显示全部楼层
STM32U585 内部只有 UCPD 硬件 PHY(BMC 收发器),没有内置完整 PD 协议栈。PD 握手、消息解析、状态机必须依赖 ST USB‑PD Middleware 软件栈;只用 HAL_UCPD 初始化,只能收发原始 BMC 比特,不能完成 PD 协商。
MessageRing 发表于 2026-9-5 13:18 | 显示全部楼层
检查UCPD的RX数据寄存器,确认DMA配置正确,寄存器对齐,并用Trace工具观察波形。
捉虫天师 发表于 2026-9-5 20:46 | 显示全部楼层
STM32U585 内置UCPD1 硬件 PD 控制器,必须搭配 TCPP01‑M20 / TCPP02‑M20 / TCPP03‑M20 端口保护芯片,不能直接把 CC 引脚接到 Type‑C 座子上
loutin 发表于 2026-9-8 08:11 | 显示全部楼层
UCPD BMC PHY 必须原生精确 16MHz HSE。
深渊之海 发表于 2026-9-8 08:58 | 显示全部楼层
检查DMA配置,确保UCPD接收缓冲区地址正确且对齐,用Trace工具观察波形确认数据接收无误。
maudlu 发表于 2026-9-8 11:22 | 显示全部楼层
UCPD 时钟与引脚配置              
benjaminka 发表于 2026-9-8 18:53 | 显示全部楼层
尝试更新固件后是否改善?              
alvpeg 发表于 2026-9-8 21:42 | 显示全部楼层
STM32U585 UCPD与USBPD 2.0规范有何差异?
juliestephen 发表于 2026-9-9 10:03 | 显示全部楼层
是自定义 PCB 还是开发板?是否使用了 TCPP 保护 IC?
DreamWanderer 发表于 2026-9-9 10:45 | 显示全部楼层
检查UCPD的RX数据寄存器,确认DMA配置正确,寄存器对齐,使用Trace工具观察波形确认数据接收无误。
uptown 发表于 2026-9-9 13:30 | 显示全部楼层
Type-C接口接触不良排查步骤
hudi008 发表于 2026-9-9 17:04 | 显示全部楼层
VBUS 电压检测电路正常工作,且分压电阻值配置正确
51xlf 发表于 2026-9-9 21:41 | 显示全部楼层
涉及DMA 与 GPDMA 中断处理的配置或代码问题。
yorkbarney 发表于 2026-9-9 22:44 | 显示全部楼层
电源适配器是否符合PD协议标准?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0