乐于分享
好东西不私藏

从入门到放弃,有时只差一次“下载失败”

从入门到放弃,有时只差一次“下载失败”

从入门到放弃,有时只差一次“下载失败”。

有多少朋友经历过这样的时刻:

看教程里大神行云流水,唰唰成功;自己操作却总在关键时刻弹窗提示【下载失败】。反复尝试一败再败,依然找不到问题所在,只剩下满脑海大写的WHY……

本文将以合宙低功耗系列模组Air780EPM为例,帮你系统梳理LuatOS开发下载流程中的关键环节与高频“雷区”。

LuatOS推荐的下载工具


工欲善其事必先利其器,针对不同阶段的核心需求,合宙提供了两款高效工具。

1.1  LuaTools工具

用于平时研发调试下载的工具,支持最新固件获取、固件打包、trace打印、单机烧录等功能。

LuaTools下载及使用说明详见:https://docs.openluat.com/air780epm/common/Luatools/

1.2  合宙量产烧录工具

用于工厂批量生产下载的工具,专为产品批量烧录程序而设计开发的PC客户端软件,可搭配一拖八量产烧录夹具使用。

量产烧录工具下载及使用说明详见:https://docs.openluat.com/air780epm/common/Luat_productiontool/

支持的下载方式


Air780EPM系列模组支持以下三种下载方式,具体说明如下:

2.1  USB下载(推荐)

最为推荐且最保险的方式,适合上电即进入下载模式的场景,比如工厂批量下载。

经典操作步骤:

  • 将LuaTools设置为下载界面;

  • 将USB_BOOT与VDD_EXT短接,或者是按键形式,或者是二者的测试点临时短接;

  • 按住开机键,或者直接将PWRKEY接地;

  • 给模组上电(VBAT:3.3V‑4.35V);

  • 使用Win10及以上系统,并且USB 2.0速度较高,建议使用华米OV等手机官配的USB线。

特别说明:

  • 开机状态下USB_BOOT与VDD_EXT短接不会让模组进入USB下载模式,必须重新上电才可以;

  • 仅下载时才需要将USB_BOOT与VDD_EXT短接,否则将会导致模组进入USB下载模式而无法正常开机。

2.2  免BOOT下载

USB_BOOT不与VDD_EXT短接;常用于使用LuaTools研发调试的场景,要求模组必须先正常开机之后才能进入下载,存在一定失败概率。

特别说明:

模组在低功耗模式pm.WORK_MODE,1和PSM+模式pm.WORK_MODE,3下,无法使用这种方式下载,因为这两种模式下会将USB关闭。

2.3  UART下载

理论上支持,但LuatOS未开放,不建议尝试。

批量生产的最小系统要求


为实现稳定下载,PCB设计时必须引出以下8个测试点:

  • PWRKEY引出测试点,与GND测试点短接,实现上电即开机;

  • VDD_EXT引出测试点,与USB_BOOT短接以进入下载模式;

  • USB_BOOT引出测试点,与VDD_EXT测试点短接,实现上电开机即进入USB下载模式;

  • USB_DP/USB_DM/USB_VBUS引出测试点,或者引出到Type-C等USB接口,连接电脑的USB接口;

  • VBAT/GND供电范围3.3V-4.35V,数字电源供电时建议使用3.6V-3.8V。

▼ 特别提醒  ▼

在实际开发中,需要特别注意以下两点:

  • TVS保护

    PCB引出测试点后使用顶针接触下载时容易引入静电,请注意保护。具体见PWRKEY、VDD_ETX、USB_BOOT、USB、VBAT等对应章节,了解如何加强TVS保护。

    详细文档参见:https://docs.openluat.com/air780epm/product/air780exxpins/

  • 再次强调!!!

    任何时候都必须将用于下载的8个信号全部引出测试点,以便在需要下载时使用,并且USB_BOOT一定要引出;

    FOTA升级更适合于批量出货后远程运维时的使用,不能因为FOTA而不保留USB线刷的方式。

常见问题及解决办法


在调试模组时,一些看似微小的设计疏忽或操作误区,往往会成为导致下载失败的“暗雷”。

4.1  USB通信不稳定

  • USB_DP/DM未差分走线或阻抗不匹配

    USB信号线,即USB_DP和USB_DM,没有差分走线,也没有做90Ω阻抗匹配,导致USB信号变形严重,进而导致USB通信不正常;

  • TVS结电容过大(>0.5pF)

    USB信号线,即USB_DP和USB_DM,使用的TVS结电容比较大,导致USB信号变形严重,进而导致USB通信不正常,这种情况下要把TVS拿掉进行验证;

    特别说明!USB Full Speed速率较高,要求TVS的结电容一般在0.5pF以内,详见"USB接口"中的介绍:https://docs.openluat.com/air780epm/product/air780exxpins/

  • USB线上误加滤波电容

    USB信号线,即USB_DP和USB_DM,错误的加上了滤波电容,一定要去掉才可以,否则会导致USB信号变形严重,进而导致USB通信不正常;

  • USB线材质量差(无屏蔽、阻抗高、过长)

    连接模组与电脑的USB自身线材质量较差,要么没有做屏蔽,要么金属导线阻抗较大,要么既没有屏蔽、阻抗较大且线材又长,这些都有可能导致USB信号严重变形进而导致通信不正常。

下面是我在实际解决客户问题中,将较长USB线剪短后可以通信的图片,供参考:

4.2  免BOOT下载失败

免BOOT下载也很容易踩雷:

  • 模组未正常开机

    免BOOT的前提是模组必须要先可以正常开机且未进入低功耗模式,之后才能免BOOT下载;否则,不将USB_BOOT与VDD_EXT短接是进入不了下载模式的。

  • 免BOOT本身存在概率性失败

    即便模组已经正常开机,免BOOT方式也有一定的失败概率。

4.3  将USB_BOOT与VDD_EXT短接了,USB线材也是非常好的线材,也换了电脑测试,还是不行,为什么?

切记!一定要在上电开机前,将USB_BOOT与VDD_EXT短接。

然后再上电开机,才能让模组进入USB下载模式(上电开机后再将USB_BOOT与VDD_EXT短接没有任何作用);经典操作步骤参考上文2.1说明。

今天的内容就分享到这里了,欢迎加技术交流群共同探讨。

合宙LuatOS提供一站式物联网高效解决方案,集成高速通信、外设驱动、UI交互及视觉处理,助力行业客户快速落地产品,同时实现极致低功耗——相较于传统的“串口屏+DTU方案”或安卓方案,功耗减半,成本不足三分之一。

更多开发资料,详见合宙资料中心:

docs.openluat.com