当前位置: 首页 > 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.gsyq.cn/news/1485993.html

相关文章:

  • 过冲:拥塞控制的呼吸与盲行
  • AzurLaneAutoScript:碧蓝航线全功能自动化脚本的终极解决方案
  • H3C交换机NETCONF功能开启与排错指南:从SSH配置到端口830连通性测试
  • 从手电筒到汽车大灯:ZEMAX中Étendue(光展量)概念的实战解读与设计权衡
  • AI-Shoujo HF Patch终极指南:一键解锁70+插件与完整汉化 [特殊字符]✨
  • 广东商业广场道闸栏杆选型攻略:2026年热门款式大比拼 - 品牌优选官
  • 从STM32迁移到GD32F303?手把手教你用RT-Thread点亮第一个多线程应用
  • 告别付费限制:5分钟解锁Wand所有高级功能
  • 别再手动算温度了!用STM32CubeMX+MAX31865搞定PT100铂电阻,附三线制接线避坑指南
  • 注意力机制与最优传输的数学本质及GOAT实现
  • 基于U-Net网络的肺部图像分割
  • 3分钟免费解密微信聊天记录:WechatDecrypt终极解决方案
  • 遗传算法实战进阶:从黑箱调参到问题驱动的算子设计
  • 3ds Max可编辑衣柜模型:带预览图、分组结构与材质预留的实用家具资源
  • 你的NFS配置安全吗?详解Ubuntu上/etc/exports权限设置的5个常见误区与正确姿势
  • 奥运数据分析实战:从数据采集到夺金概率建模
  • 百考通:AI智能文献综述生成,是您的“科研伙伴“
  • 华为交换机NAC配置避坑指南:搞定打印机、摄像头等哑终端接入(含MAC旁路认证)
  • 颠覆性智能评价革命:如何用AI思维告别京东评论文不对题难题
  • 手把手教你用华为交换机ACL实现办公网访问控制:封堵游戏、限制上网时间实战
  • 别再只会用analogWrite了!Arduino Uno的PWM引脚(3,5,6,9,10,11)详解与呼吸灯实战
  • 保姆级教程:用Docker快速搭建SEED-Lab SQL注入靶场(附常见环境报错解决)
  • 从USB3.0到MIPI:盘点5种常用差分信号,你的PCB阻抗和端接做对了吗?
  • 生物信息学入门第一课:用中牧一号CDS序列实战演练本地BLAST全流程(从fasta文件到结果可视化)
  • 别再手动复制粘贴了!用HBuilderX + Uni-app 5分钟搞定微信小程序登录注册页(附完整源码)
  • Linear Technology:模拟芯片领域的价值创造与垂直整合之道
  • 3步搞定微信聊天记录永久备份:WeChatExporter终极指南
  • 基于Django框架的岗位招聘系统的设计与实现
  • 承德市2026年黄金回收白银回收铂金回收 5 家高性价比门店实地测评盘点 - 马刺总冠军
  • Anthropic取消请求编排层:大模型服务架构的零中间件革命