news 2026/7/7 20:12:26

别让USB拖后腿!硬件参考设计+软件开发API,都帮你整理好了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
别让USB拖后腿!硬件参考设计+软件开发API,都帮你整理好了

本文以Air780EPM系列低功耗模组为例,分享USB接口的硬件设计要点以及LuatOS高效开发API,帮助开发者在设计中避开常见陷阱,快速构建稳定可靠的USB应用。

01. 模组管脚

Air780EPM系列模组与USB相关的管脚,如上方管脚图右侧浅绿色块所示:

  • VBUS:PIN61;

  • USB_DM:PIN60;

  • USB_DP:PIN59;

特别说明:
管脚图中所示的USB_DN正确的写法应该是USB_DM,历史原因一直将错误写法延续到了现在。

USB_DM:
USB Data Minus,USB数据负信号;

USB_DP:
USB Data Positive,USB数据正信号。

02. 功能说明

Air780EPM系列模组支持如下USB功能:

  • 支持USB Full speed:
    全速模式,最高支持12Mbps,即1.5MB/s;

  • 支持USB High speed:
    高速模式,最高支持480Mbps,即40MB/s;

  • 支持USB下载软件,Boot from USB;

  • 支持USB RNDIS:
    搭配Windows/Linux实现快速上网;

  • 仅支持USB Slave,不支持USB HOST。

03. 注意事项

与USB相关的操作,重点关注如下几个方面:

  • 上电开机前将USB_BOOT(GPIO0)上拉至 VDD_EXT,模组将进入USB下载模式(Boot from USB);

  • 模组内部用于USB部分供电的电源是LDO33USB(3.3V输出),该LDO只为USB功能提供电源,模组管脚未引出;

  • 低功耗模式pm.WORK_MODE,1和PSM+模式pm.WORK_MODE,3 下,会将LDO33USB关闭;

  • 模组VBAT最低2.3V左右(实测最低可至 2.1V)时仍可工作,但因此时LDO33USB的输入(2.3V)已远低于输出(3.3V),所以USB已无法正常工作;

  • VBUS,在模组内部实际接的是WAKEUP1,USB_VBUS的5V经过分压后接到WAKEUP1,用于USB插入检测。

04. 硬件参考设计

USB接口相关硬件参考设计如下图示,横屏或点击放大查看。

▼ 相关注意事项 ▼

USB接口硬件设计需要特别注意如下几个方面:

1)阻抗匹配

USB接口的PCB设计中,差分信号线(USB_DP/USB_DM)的阻抗需控制在90Ω±10%(即81Ω~99),这是保证信号完整性的关键参数。

注意:阻抗不匹配将会导致信号反射、眼图闭合、误码率上升,甚至通信失败。

2)布线原则
  • 差分对等长匹配:
    长度差控制在5mil以内,避免时序偏差和共模干扰;

  • 减少换层过孔:
    每次换层加一对回流地过孔,维持信号回流路径连续性,降低阻抗不连续风险;

  • 保持完整参考平面:
    避免跨分割,优先内层布线,包地处理减少串扰。

3)TVS保护

USB接口容易引入静电干扰,因此需要在电路上增加 TVS保护。

  • USB High speed差分数据线选择TVS的最关键参数是结电容容值,需要小于1pF;我们验证使用过的是芯禾微XESD124N-5V0。

  • VBUS电源上使用的TVS,我们使用过的是芯禾微XESD307D-5V0。

05. 与USB相关的LuatOS API

LuatOS高度封装与灵活的API设计,简化了传统USB开发的繁琐流程

▼ pm.USB ▼

  • 常量含义:USB的供电使能;

  • 数据类型:number;

  • 常量取值:0;

  • 适用产品:
    Air780EXX系列、Air700E系列、Air8000系列模组;

  • 示例代码:

▼ mobile.CONF_USB_ETHERNET ▼

  • 常量含义:蜂窝网络模块的USB以太网卡控制;

  • 数据类型:number;

  • 常量取值:11;

  • 取值范围:
    0x01:开启RNDIS功能;
    0x03:开启RNDIS功能,使用NAT模式(基站分配ip);
    0x05:开启ECM功能;
    0x07:开启ECM功能,使用NAT模式(基站分配ip)。

  • 注意事项:
    控制设备的USB以太网卡功能,通过位操作来控制不同的功能;仅在开启前可以修改;bit2:协议选择(1ECM协议,0RNDIS协议);必须在飞行模式下设置才能生效。

  • 适用产品:
    Air780EXX系列和Air8000系列模组。

  • 示例代码:

▼ uart.VUART_0 ▼

  • 常量含义:USB虚拟串口;

  • 数据类型:number;

  • 常量取值:32;

  • 适用产品:
    Air780EXX系列和Air8000系列模组。

  • 示例代码:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 6:52:09

GitCode项目创建分支并提交代码

网上的合作项目,创建自己的分支。确认本地仓库状态(先看当前分支、修改内容):# 查看关联 git remote -v # 查看当前分支 git branch # 查看本地修改(确认要备份的内容) git status # 提交本地所有修改&…

作者头像 李华
网站建设 2026/7/6 19:02:59

GitCode克隆输入账号密码后报错

使用各种ide工具克隆GitCode代码的时候,例如这里使用Trae,会提示需要输入账号密码,但正确输入后,会提示错误。这个报错核心是 GitCode 已经停用了 “账号密码” 的 HTTP 认证方式,要求改用个人访问令牌(Per…

作者头像 李华
网站建设 2026/7/7 14:22:06

ARM64 指令 --- TST/CSEL

文章目录一、TST1.1 TST (immediate)1.2 TST (shifted register)二、CSEL2.1 简介2.2 CSEL的扩展指令2.2.1 CSINC2.2.2 CSINV2.2.3 CSNEG三、demo3.1 tst3.1.1 demo 13.1.2 demo 23.2 TST CSEL3.2.1 demo 13.2.2 demo 23.2.3 总结一、TST 1.1 TST (immediate) TST (immediat…

作者头像 李华
网站建设 2026/7/7 14:13:54

Java全栈开发工程师的面试实战:从基础到微服务

Java全栈开发工程师的面试实战:从基础到微服务 一、开场介绍 面试官:你好,我是今天的面试官,欢迎来到我们公司的技术面试。我看到你的简历上写着你有5年的Java全栈开发经验,主要集中在电商和内容社区方向。可以简单介绍…

作者头像 李华
网站建设 2026/7/7 13:40:10

虚拟网络环境及socket概述

虚拟网络环境及socket概述 文章目录虚拟网络环境及socket概述一、前言二、VMware虚拟机网络环境概述2.1 概述2.2 注意事项2.3 几种组网方式的区别2.4 Vmware和Windows的数据互通三、Socket简介3.1 什么是socket四、socket下的常用编程接口五、小结一、前言 今天,将带…

作者头像 李华