用于嵌入式设备调试的 UART:低功耗设备最佳实践

虽然 USB 已经成为大多数外设的通用接口,但是 UART 仍然在使用,甚至在嵌入式系统中仍起着关键作用——用于从 GPS 模块到 Raspberry Pi 和 Arduino 等板卡的调试。

但是当我们推进到超低功耗设计的极限时,开发人员经常会有疑问:UART 会是无声的电池杀手吗?简而答之:否也,不必如此。像所有好的工具一样,关键在于如何实现。期间缘由让我们细细道来。

盯紧 TX/RX 漏电电流

防止非必要漏电的简单之法就是从 TX 和 RX 信道解决任何漏电问题。尽管高泄漏并不很常见,但通常最好提前检查并解决潜在问题,以免后面出现意外漏电。

以低功耗思维编写并运行代码

将 UART 看一把锋利的瑞士军刀,开发时用起来很就手,但携带时并不需要所有时间都将其打开。在代码中使用 #define,调试时将 UART 打开,设备生产操作时将其关闭,才是明智之举。这是一个小诀窍,但能让你在实际工作中免于噩梦缠身。

试想一下:你和你的团队精力都放在最大限度降低功耗上,正在运行连续的电流检测,看看有没有取得进展。开发时,你将 UART 设置成调试时才打开,接受临时电源中断。但是随后突然有人将该代码合并到主分支中,此时因为 UART 仍在启用中,就会将该设置通过空中下载更新到成千上万的设备中。你曾经高效的设计(如街机)突然之间耗尽电池,此时你就要面对成千上万怒气冲冲的客户了。

怎么办?给连续集成系统设置电流消耗基准。通过这个方式,你可以在发生灾难性错误前发现这样的问题。可以将其看成一个自动化的安全网,在代码到达生产端前时刻检查有无过大电流。

确保关闭一切

启用 UART 会激活软件多个部分,包括各种 MCU 阻断和时钟。MCU 通常设计成默认所有功能都是打开的以方便进行开发。但在 MCU 进入休眠模式前禁用非必要组件很重要。如果 UART 时钟仍被启用,则可能会阻止 MCU 进入其最深的休眠状态,造成功耗过高。检查你的时钟树并确保所有链接到 UART 的组件均在不需要时被恰当地关闭。

Otii 实验操作

让我们比较一下在来自 Seeed TechnologySeeed Studio XIAO nRF52840 上运行两个固件版本。我们准备了一个示例脚本,用于初始化模块、设置闪存、运行一个简短的 LED 闪烁序列,然后将该模块置于最低功率模式。一个版本在运行时启用 UART,另一个在运行时不启用 UART。用 QoitechOtii Ace Pro,我们测量了电流消耗以对两个版本在不同电压水平下的功耗进行分析和比较。

在图 1 中,我们看到设备主动发送 UART 消息,而图 2 则显示 MCU 处于休眠模式。蓝线表示 UART 启用,而黄线表示禁用。差异显示了 UART 对功耗的影响。

图 1:活动模式 SeeedStudio XIAO nRF52840 设备的 UART 通信 | 启用(蓝色图) | 禁用(橙色图)。(图片来源:Qoitech)

图 2:低功耗模式 XIAO nRF52840 设备(图中选定部分)的UART 通信 | 启用(蓝色图) | 禁用(橙色图)。(图片来源:Qoitech)

在活动模式时,平均电流消耗从 460 μA 增加到 1.34 mA(如图 1 所示)。在休眠模式时,电流消耗从 2.27 μA 变到 2.19 μA(图 2)。尽管这看起来差异不大,但物联网设备典型都是长休眠期,会对电池寿命造成明显差异。很明显,此固件针对 UART 禁用进行了优化。

使用 Otii 估算电池寿命

为展示对电池寿命的影响,我们使用了 Otii Desktop AppBattery Life Estimator(电池寿命估算器)。我们假定每个小时有一个活动期间,当设备唤醒时,运行闪烁序列,然后休眠近 3600 秒。

在图 3 中,UART 处于禁用状态,而在图 4 中,UART 处于启用状态。从中我们看出是否使用 UART 对电池寿命有着明显影响。

图 3:禁用 UART 通信时的电池寿命估算。(图片来源:Qoitech)

图 4:启用 UART 通信时的电池寿命估算。(图片来源:Qoitech)

差距相当大!当启用 UART 时,预计电池寿命将从 5.9 年缩短至 11.6 天。

关键之处是确保在 MCU 进入休眠模式之前关闭与 UART 相关的所有功能。使用 Otii 产品套件将这一设置集成到持续集成流程中,将有助于防止启用 UART 后的意外发布,因为这可能会大大缩短设备的电池寿命。

关于此作者

Image of Qoitech

Qoitech offers the Otii product series, designed to help companies extend battery life throughout the prototype, development, and maintenance phases, getting insights beyond datasheets. With real-time measurements, Otii enables the optimization of devices, battery profiling, and selecting the most suitable batteries. Whether you're working from home, your desk, or outside, Otii provides a versatile on-the-bench solution.

Used by developers and teams in 3,500+ companies across more than 65 countries, Otii consists of powerful hardware options: Otii Arc, supporting up to 5V, and Otii Ace, supporting up to 25V. Coupled with the Otii Pro software, enhanced with two robust add-ons - the Battery Toolbox and Automation Toolbox - Qoitech delivers a comprehensive solution to enhance battery performance and overall device efficiency.

By leveraging Qoitech's Otii products, companies can confidently optimize battery usage, extend battery life, and streamline their development processes, resulting in improved product reliability and customer satisfaction. Qoitech empowers developers worldwide to achieve their battery life goals and deliver exceptional IoT devices.

More posts by Qoitech
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum