
如何把LoRa终端功耗降到最低?降低能耗成为电池供电的产品来重要难题,锐米LoRa终端)RNDU470T可以将休眠能耗降低到极致,但是他又是如何实现的,我们将进行详细的解说。
能耗对于电池供电的产品来说是一个重大的问题,一旦电能耗尽设备将“罢工”,在某些场合电能意味着电子产品的生命。物联网时代将会有越来越多电池供电的设备通过无线通信连接,降低能耗再次摆在工程师的桌面上—解决它。
锐米LoRa终端(简称终端)RNDU470T不但具备空旷环境传输5km的超长距离优势,还将休眠能耗降低到极致(0.4uA,带RTC为1.4uA)。我们是怎么做到的呢?接下来,一步一步解密。
硬件设计
1. 选用低功耗器件
终端MCU选用STM8L151C8T6,它属于超低功耗,不带RTC休眠为400nA,带RTC下休眠为1.4uA。该MCU拥有较大的RAM(4KB)和自带EEPROM(2KB),不用扩展外部存储设备,进行一步降低功耗和成本。
终端射频芯片选用SX1278,在休眠模式下,该芯片功耗低至忽略不计。
2. 尽可能快地让射频模块休眠
SX1278属于LoRa TM扩频调制技术,它的远距离优势得益于调制增益,不是靠增大发射功率(那将消耗更多电能)。该射频芯片的电流消耗如下:休眠《0.2uA,空闲=1.6mA,接收=12mA,发射(最大功率)=120mA.
终端MCU通过“中断+定时器超时”方式控制SX1278,一旦射频完成发送或接收,立即进入休眠模式。
3. 了解MCU的工作模式与功耗
降低MCU的功耗首先尽可能少地开启外设,其次尽可能地让其休眠。我们一起看看STM8L151C8T6不同工作模式下功耗。


4. 静态配置MCU引脚

即使MCU和RF都进入休眠模式,如果没有设置好MCU引脚,它们照样会“偷偷”地消耗电能。以STM8L151C8T6为例,它一共有48个引脚,首先需要用Excel对其进行分类,如下例所示:

一般说来可以将引脚分成5类,可以借鉴“地铁颜色区别”方法,设计如下图例:

软件设计
1. 动态切换MCU引脚
有2类MCU引脚:MCU输出和MCU输入,它们需要动态进行配置。动态方法调用 为什么不安全具体地说,在进入低功耗模式时,将其分别配置成:输入上拉和输入悬浮;在退出低功耗模式时,将其配置成定义的功能状态。在动态切换时需要考虑2点:
首先,动态切换引脚是需要时间的,以STM8L151C8T6为例,动态切换5个引脚需要477us,可见它一般用于休眠这种较长周期的节能模式,不适合空闲停止这种短暂节能模式。
其次,在实际开发中引脚的连接是变化的,换句话说,今天这个引脚是空闲,下次产品升级该引脚可能设计成特定功能。动态方法调用 为什么不安全为减少软件维护成本,需要设计一种优秀的数据结构,它能描述MCU所有引脚,如果引脚功能改变,只需要修改数据定义,而不需要修改程序。
2. 一旦无事可干,MCU立即停止或休眠
在LoRa终端系统中MCU是能源的持续消耗者,软件设计需要考虑尽可能快地让MCU节能,STM8L151C8T6有如下2种节能模式。
短暂等待:如等待RF发送数据帧完毕,MCU执行WFI指令,一旦RF完成发送,中断将MCU唤醒继续运行;
长期等待:如等待下一次主动上报数据帧,MCU执行HALT指令,当指定时间到达时,RTC中断将MCU唤醒继续运行。
3. 采用高效率算法
软件算法效率越高,MCU计算时间更少,可以更快进入低功耗,也就更节能。在终端设计中有2个算法比较消耗时间:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-81991-1.html
为什么马云这么爱说啊
我们该怎么办呀