当前位置: 首页 > news >正文

USB 枚举失败?别只怪线缆,看看这 3 个电阻与上拉

摘要:USB 插上电脑,提示“未知设备”?示波器看 D+ D- 没波形?不是 MCU 不行,而是 USB 物理层的上拉电阻、串阻、ESD 器件配置错误。本文解析 USB 硬件设计的 3 个致命雷区。


一、问题描述(现象)

**MCU 跑 USB 例程,电脑毫无反应;

设备管理器里偶尔出现“未知 USB 设备(设备描述符请求失败)”;

示波器测 D+ D-,电压一直是 0V。**

很多工程师的排查方向是:

  1. 晶振不准?

  2. 描述符写错了?

  3. 换个 USB 口试试?


二、原理分析

1. 物理模型

USB 是全双工差分总线。

PC Host -> [ESD] -> [Rs] -> D+ / D- -> [MCU] ^ | [Rpu] (1.5k)

2. 核心参数

  • 差分阻抗:90Ω ±10%。

  • 上拉电阻(Rpu)

    • Full Speed (12Mbps):D+ 上拉 1.5kΩ 到 3.3V。

    • Low Speed (1.5Mbps):D- 上拉 1.5kΩ 到 3.3V。

  • 串联电阻(Rs):22Ω ~ 33Ω,用于阻抗匹配。

3. 反直觉真相

USB 不是“两根线直接接到 MCU”就能用的。

  • 没有上拉电阻:主机永远不知道有设备接入(不会开始枚举)。

  • 上拉接错脚:低速设备接 D+,主机当成全速设备,直接报错。

  • ESD 管子结电容太大:直接吃掉高频信号,12Mbps 跑不起来。


三、工程级解决方案

方案 1:上拉电阻的正确接法(铁律)

  • STM32 / ESP32 等自带 PHY 的 MCU

    • 通常内部已有 1.5kΩ 上拉。

    • 硬件上不要再外接!(否则变成并联,阻值变小,电流过大)。

  • 外置 USB PHY 或 FPGA

    • 必须外接 1.5kΩ 精密电阻。

方案 2:串联电阻与 ESD 选型

器件

参数要求

推荐型号

串联电阻 Rs

22Ω ~ 33Ω,0402

普通厚膜电阻

ESD 保护

结电容 < 1pF

PRTR5V0U2X, TPD1E10B06

TVS 管

钳位电压 < 3.6V

严禁使用普通 TVS

方案 3:电压电平检查

用万用表测量:

  • 未插入时:D+、D- 应为 0V。

  • 插入瞬间:

    • 全速设备:D+ 被拉高到约 3.0V(经过二极管压降)。

    • 主机回应后:D- 会有 17 个 Keep-Alive 脉冲。


四、选型避坑建议

  1. 不要省 ESD 管:USB 接口是静电重灾区,没有 ESD 保护,芯片很容易挂。

  2. DP/DM 走线:必须做差分对,等长(±10mil),不要跨分割。

  3. VBUS 检测:有些 MCU USB 外设需要检测 VBUS 电压来判断是否连接,别忘了分压电阻。


五、总结 Checklist

  • [ ] 是否用示波器看过 D+ 在上电瞬间是否被拉高?

  • [ ] 上拉电阻是接在 D+ 还是 D-(是否匹配速度模式)?

  • [ ] ESD 保护管的结电容是否 < 2pF?

  • [ ] 串联电阻是否在 22Ω~33Ω 范围?


六、写在最后(关注我,少走弯路)

我是 gqqsherry,一个拒绝调包、专注底层逻辑的嵌入式工程师。

USB 的坑在于“软硬件强耦合”:硬件没动,软件怎么调都没用。

关注我的专栏《嵌入式底层避坑指南》,我会持续更新 USB、CAN、UART 等外设的真实调试案例量产级解决方案

👉下一篇预告:《USB 描述符怎么写都不对?别只抄例程,看看 bLength 与 wTotalLength》


References

  • USB 2.0 Specification – Electrical Characteristics

  • STM32 Reference Manual – USB hardware development guidelines


如果你在 USB 硬件设计上踩过“插上没反应”的坑,欢迎在评论区晒出你的原理图片段。

原创文章,转载请注明出处。

http://www.jsqmd.com/news/974271/

相关文章:

  • 温州市方氏建材:瑞安专业的室内外拆除公司 - LYL仔仔
  • 过冲:拥塞控制的呼吸与盲行
  • 魔兽争霸3老玩家的福音:WarcraftHelper如何让你的怀旧之旅焕然一新?
  • AzurLaneAutoScript:碧蓝航线全功能自动化脚本的终极解决方案
  • VSCode Markdown All in One:重新定义Markdown编辑体验的技术深度解析
  • H3C交换机NETCONF功能开启与排错指南:从SSH配置到端口830连通性测试
  • UABEA:现代化Unity资源逆向工程与编辑平台技术解析
  • 从手电筒到汽车大灯:ZEMAX中Étendue(光展量)概念的实战解读与设计权衡
  • 株洲市2026年本地黄金回收铂金白银回收哪家强?TOP5 正规门店榜单 +联系方式 - 开始就结束
  • 广东商业广场道闸栏杆选型攻略:2026年热门款式大比拼 - 品牌优选官
  • USB 描述符怎么写都不对?别只抄例程,看看 bLength 与 wTotalLength
  • 后端开发效率提升技巧:让编码更轻松
  • AI-Shoujo HF Patch终极指南:一键解锁70+插件与完整汉化 [特殊字符]✨
  • Wand-Enhancer:免费解锁Wand专业版功能的终极增强工具
  • 成都市2026年黄金回收白银回收铂金回收 5 家高性价比门店实地测评盘点 - 马刺总冠军
  • 3种高级方案深度解析pywencai项目:从量化数据采集到自动化分析系统
  • 魔兽争霸3终极优化解决方案:Warcraft Helper完全使用指南
  • 从STM32迁移到GD32F303?手把手教你用RT-Thread点亮第一个多线程应用
  • Colab工程化实践:构建可复现、抗中断的远程GPU工作站
  • ArcGIS工具箱实战:手把手教你定制自己的MODIS数据处理工具(附完整Python代码)
  • 告别付费限制:5分钟解锁Wand所有高级功能
  • 告别在线排队!手把手教你用NCBI BLAST+ 2.11.0在Windows本地搭建自己的序列比对工作站
  • 别再手动算温度了!用STM32CubeMX+MAX31865搞定PT100铂电阻,附三线制接线避坑指南
  • 注意力机制与最优传输的数学本质及GOAT实现
  • 深入解析FPGA架构:从查找表到逻辑单元与布线资源
  • 嵌入式信号处理避坑指南:你的滤波器阶数真的选对了吗?
  • COM3D2 MaidFiddler终极指南:实时修改女仆属性的完整教程
  • 如何用AI轻松征服2048游戏?这款智能助手让你胜率提升85%
  • Django REST后端 + Vue前端的可运行电商毕设项目(含数据导入、部署步骤和后台管理)
  • 3分钟免费解密微信聊天记录:WechatDecrypt终极解决方案