0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

海阔天空的专栏 来源:Qoitech 作者:Qoitech 2025-01-25 14:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者: Qoitech

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

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

盯紧 TX/RX 漏电电流

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

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

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

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

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

确保关闭一切

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

Otii 实验操作

让我们比较一下在来自 [Seeed Technology]的 [Seeed Studio XIAO nRF52840] 上运行两个固件版本。我们准备了一个示例脚本,用于初始化模块、设置闪存、运行一个简短的 LED 闪烁序列,然后将该模块置于最低功率模式。一个版本在运行时启用 UART,另一个在运行时不启用 UART。用 [Qoitech]的 [Otii 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 App] 的 [Battery Life Estimator](电池寿命估算器)。我们假定每个小时有一个活动期间,当设备唤醒时,运行闪烁序列,然后休眠近 3600 秒。

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

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

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

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

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

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18628

    浏览量

    387533
  • uart
    +关注

    关注

    22

    文章

    1304

    浏览量

    106127
  • 电池
    +关注

    关注

    85

    文章

    11370

    浏览量

    141336
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式UART串口调试嵌入式串口调试连接概述:调试接口与pc的交互程序的开发

    嵌入式软件开发 在项目的开发过程中,使用调试工具是必不可少的。 串口简单灵活的特性常被工程师用作代码的调试工具,它的另一个名字叫uart。 说到ua
    发表于 01-08 11:08 5043次阅读

    嵌入式设备的发展:解决复杂的设计挑战

    通过WiFi连接。或者,远程位置的设备将使用蜂窝网络。一个有趣的选择是结合WiFi和蓝牙低能耗。然后,蓝牙用于调试和本地访问以实现低延迟,并且WiFi用于通过因特网进行远程访问。
    发表于 11-23 10:01

    低功耗嵌入式设计是什么?

    低功耗嵌入式设计是什么,具体该怎么做?
    发表于 04-23 06:06

    嵌入式外围设备有哪些?

    选择填空判断嵌入式系统的定义和特点定义:以应用为中心,计算机技术为基础,软硬件高度定制,适用于对功能、能耗、成本、体积、可靠性有严格要求的专用计算机系统特点:专用性可靠性实时性低功耗可裁剪嵌入
    发表于 10-27 08:43

    所有现代设备中都存在物理嵌入式系统是为什么?

    嵌入式计算机在日常设备,办公用品,汽车,工业,医疗和农业中无处不在。从计算器到电话,相机、电梯,交通信号灯,工厂控制器和核电站控制系统,几乎所有现代设备中都存在物理嵌入式系统。这些是什
    发表于 10-27 09:13

    基于μCOS-II嵌入式系统的低功耗开发

    基于μCOS-II嵌入式系统的低功耗开发 随着嵌入式系统应用的日益广泛,如何实现嵌入式系统的低功耗开发已经成为
    发表于 12-23 11:06 1050次阅读
    基于μCOS-II<b class='flag-5'>嵌入式</b>系统的<b class='flag-5'>低功耗</b>开发

    嵌入式移动终端内置WIFI的低功耗设计

    嵌入式移动终端内置WIFI 的低功耗设计   1 引言   嵌入式设备是无线通信最重要的应用领域。自2007 年开始,全球Wi-Fi(Wireless Fidelity) 市
    发表于 01-13 10:45 1825次阅读
    <b class='flag-5'>嵌入式</b>移动终端内置WIFI的<b class='flag-5'>低功耗</b>设计

    嵌入式系统设计中的低功耗技术

    为了探讨嵌入式系统的低功耗技术降低嵌入式系统的功率消耗, 文中从硬件和软件两个方面对嵌入式系统设计的低功耗问题进行了分析和研究。
    发表于 10-12 15:31 1549次阅读

    嵌入式实时操作系统原理与最佳实践

    嵌入式实时操作系统原理与最佳实践,下来看看
    发表于 07-29 17:11 182次下载

    基于嵌入式Linux演示I2C设备调试

      I2C是嵌入式设备最为常用的接口之一,常用于如下面这些应用场景,因此本文就基于嵌入式Linux演示在User Space进行I2C设备
    发表于 09-18 15:21 3次下载

    嵌入式Linux的低功耗策略

    ,Linux正在嵌入式领域发挥着越来越重要的作用。对于嵌入式设备尤其是移动设备来说,功耗是系统的重要指标,系统设计的重要目标之一就是要尽可能
    发表于 11-01 16:58 1次下载
    <b class='flag-5'>嵌入式</b>Linux的<b class='flag-5'>低功耗</b>策略

    用于嵌入式设备的JavaScript

      这些开发系统中的每一个都是在嵌入式设备上开始 JavaScript 开发的好工具。尽管 JavaScript 在近 20 年前首次引入,但它才刚刚开始用于嵌入式计算。
    的头像 发表于 06-29 09:39 4283次阅读
    <b class='flag-5'>用于</b><b class='flag-5'>嵌入式</b><b class='flag-5'>设备</b>的JavaScript

    低功耗嵌入式设计的提示和技巧

    低功耗嵌入式设计的提示和技巧
    的头像 发表于 12-28 09:51 1191次阅读

    嵌入式产品的低功耗调试实用技巧

    嵌入式产品的低功耗调试是一件较麻烦的事情,因为它既涉及到硬件又涉及到软件,影响因素非常多。但是又十分重要,因为它关系到产品的实际使用时长。
    发表于 04-28 10:23 820次阅读
    <b class='flag-5'>嵌入式</b>产品的<b class='flag-5'>低功耗</b><b class='flag-5'>调试</b>实用技巧

    聚徽厂家嵌入式工业平板:低功耗技术与卓越性能的完美融合

    在工业智能化发展的浪潮中,嵌入式工业平板作为工业设备与数字化系统连接的重要枢纽,其性能与功耗表现直接影响着工业生产的效率与成本。聚徽厂家凭借多年的技术积累与创新实践,打造出的
    的头像 发表于 07-01 17:14 431次阅读