• 正文
  • 相关推荐
申请入驻 产业图谱

MCU 复位期间 PC 端仍然认为 USB 连接未断开

20小时前
252
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

在 STM32H5 项目做 USB‑VCP 虚拟串口、DFU 复位升级场景,会遇到一类隐蔽硬件坑:按下 MCU 硬件复位键,PC 主机没有检测到 USB 设备断开;MCU 复位完成重新运行后,串口工具打开 COM 端口报错异常。插拔 USB 线缆设备识别正常,很多开发者会误判为芯片 USB 外设故障。

该问题并非芯片缺陷,来自第三方非官方开发板的惯性硬件设计:沿袭 STM32F1 时代方案,在 USB‑DP 信号额外并联外部 1.5kΩ 上拉电阻。H5 系列 USB PHY 内部已经集成 DP 上拉,复位时芯片内核、外设全部复位,但外部电阻持续生效,USB 主机依旧识别设备在位。本文还原故障现象、根因、电路对比,同时顺带解析同一块第三方板卡暴露出的 VCAP 内核稳压电容设计错误,给出硬件评审清单与规避方案。

资料获取:实战经验 | LAT1689 MCU复位期间PC端仍然认为USB连接未断开

1 故障现象

测试硬件:网购第三方 STM32H523 核心板。

  1. 按住 NRST 复位按键,MCU 进入硬件复位状态,芯片程序停止执行;
  2. PC 端 USB 驱动没有弹出设备断开事件,设备管理器中 VCP 虚拟串口仍然存在;
  3. 释放复位,MCU 重新启动,USB 重新枚举,串口终端软件打开 COM 口报错;
  4. 直接拔插 USB‑Type‑C 线缆,PC 可以正常识别设备插拔,串口工作完全正常;
  5. 业务痛点:产品需要通过 MCU 复位触发 DFU 固件升级,复位不断开会导致升级流程异常。

开发人员早期误认为是 STM32H5 芯片 USB 外设本身存在 BUG,对比 STM32F103 旧平台没有该现象。

2. 根因定位:USB‑DP 额外外接 1.5kΩ 上拉电阻

USB 全速设备识别原理

USB 全速设备依靠DP 引脚 1.5kΩ 上拉到 3.3V,通知主机设备已接入。

  • STM32F1/F3 系列 USB 外设内部没有集成 DP 上拉电阻,原理图必须外接 1.5kΩ 上拉;
  • STM32H5、H7、G0、G4 等新一代 MCU,USB PHY 内置 1.5kΩ DP 上拉电阻,由 USB 外设寄存器控制接通 / 断开,硬件原理图不允许再额外增加外部上拉。

第三方开发板照搬 F103 的老旧设计,在 DP 引脚增加外部 1.5kΩ 上拉,与芯片内部电阻并联。

  • 正常上电插拔:芯片内部上拉和外部电阻同时工作,USB 枚举没有明显异常;
  • MCU 硬件复位阶段:内核、外设寄存器全部复位,芯片内部上拉被关闭;但是外部 1.5kΩ 电阻不受 MCU 复位影响,持续把 DP 拉高。PC USB 主机判定设备依然保持连接,不会触发断开、重枚举流程,复位重启之后虚拟串口就会出现打开失败。

把外部 1.5kΩ 上拉电阻移除后,USB 复位断开识别功能恢复正常。

3. 同板卡暴露的另一处严重隐患:VCAP 内核稳压电容错误

该第三方开发板除 USB 上拉错误外,VCAP 内核电源外围电路同样不符合 ST 官方参考设计。

  1. STM32H5 拥有两个 VCAP 引脚,官方要求:两个 VCAP 引脚短接,每个引脚各放置一颗 2.2μF 低 ESR 陶瓷电容,电容必须尽可能紧贴芯片引脚,用于内部 LDO/SMPS 内核稳压。
  2. 这块第三方板卡仅放置一颗 100nF 电容,容量严重不足。会带来内核供电不稳,高温、大负载工况下存在死机、工作异常的隐性风险,问题不一定会在简单点灯测试中暴露。

参考官方文档 AN5711 STM32H5 硬件开发入门,做原理图评审必须核对 VCAP 电容规格、容值、布局约束。

4. 工程落地排查清单

现象 1:MCU 硬件复位,PC 识别不到 USB 断开,VCP 串口打开报错

  1. 检查原理图 USB‑DP 引脚,H5/H7/G4/G0 等系列禁止外接 1.5kΩ 上拉电阻,上拉由 USB PHY 内部硬件实现;STM32F1/F3 才需要外部 DP 上拉。
  2. 测量硬件复位状态下 DP 引脚电平,如果复位后 DP 依旧是高电平,基本确认外部存在上拉源。
  3. 移除外部 DP 上拉电阻,复测复位‑USB 断开识别。
  4. 硬件无法修改的折中软件方案:复位前固件将 DP/DM 配置为 GPIO 推挽输出低电平,模拟 USB SE0 断开信号,但硬件复位瞬间该软件动作失效,仅适用于软件软复位场景,不能解决 NRST 硬件复位场景。

现象 2:系统偶发死机,内核运行不稳定

  1. 核对 VCAP 引脚数量,两颗 VCAP 引脚必须短接;
  2. 每个 VCAP 引脚配 2.2μF 低 ESR 陶瓷电容,电容 PCB 布局必须靠近焊盘;
  3. 禁止使用 100nF 小容值电容替代官方推荐 2.2μF。

选型评估提示

  1. 做芯片评估优先选用 ST 官方 NUCLEO 系列开发板,原理图经过官方验证;
  2. 网购第三方小众核心板,不能直接默认原理图正确,关键 USB、电源部分必须对照 ST 参考手册、应用笔记做原理图评审,否则会引入隐蔽 BUG,误导芯片性能评估。

5. 小结

  1. MCU 硬件复位 PC 识别 USB 不断开,典型诱因:STM32H5 等新一代芯片 USB‑DP 引脚额外增加外部 1.5kΩ 上拉电阻。F1/F3 需要外接 DP 上拉,H5/G4/G0/H7 内置上拉,不能沿用 F1 时代设计惯性。
  2. 外部上拉电阻不受 MCU NRST 硬件复位控制,复位时 DP 持续为高,USB 主机误认为设备保持连接,导致 VCP 串口、DFU 升级流程异常。移除外部上拉电阻即可解决该硬件问题。
  3. 同第三方板卡出现 VCAP 内核稳压电容选型错误,属于隐性风险,简单功能测试很难暴露,会造成内核供电不稳。VCAP 引脚电容容值、数量、布局需要严格遵循 AN5711 官方参考。
  4. 第三方非官方开发板不能直接当作设计参考,硬件设计必须对照 ST 应用笔记重新评审,避免把板卡设计缺陷带入量产产品。

6. FAQ

Q:为什么软件软复位不会复现这个问题,只有硬件 NRST 复位才出现?

A:软件复位时外设寄存器不一定全部复位,USB 内部 DP 上拉可能维持开启;NRST 硬件复位会彻底复位全部片上外设,内部上拉关闭,此时外部上拉电阻的影响完全暴露。

Q:产品硬件已经做出来,DP 已经焊上 1.5K,有没有补救办法?

A:硬件上最好去掉该电阻;软件无法干预 NRST 硬件复位瞬间的引脚电平,软件方案不能彻底解决硬件复位场景的 USB 识别问题。

Q:STM32H5 做 USB‑DFU 升级,对硬件有什么强制要求?

A:DP 不能外部上拉;VBUS 检测电路按 AN4879 实现;VCAP 电容严格按官方规格;BOOT0 启动引脚配置正确。

免责声明:本文全部基于 ST 官方 LAT1689 文档,量产硬件原理图请以 ST 官方应用笔记、芯片 datasheet 为准。

相关推荐