功耗常见问题

模组进入低功耗的条件有哪些?

必须满足以下几个条件:

  • USB 拔出,USB_VBUS没有外部电压。
  • 系统唤醒锁全部释放(唤醒锁的数量可通过pm.get_wakelock_num()接口获取)。
  • 无外部引脚中断干扰。
  • 使能系统自动进入休眠(具体接口:pm.autosleep(sleep_flag))。
  • CFUN=0 或者为正常注网状态。

展锐平台模组低功耗的部分唤醒源

唤醒源 类型 唤醒条件 & 处理方法
UART 外设 1.所有串口的收、发线程运行均会阻塞休眠,需要停止收发
2.MAIN_UART被open侧纳入低功耗管理,发AT时自动唤醒
RTC 外设 到期时唤醒,合理使用即可
外部中断 外设 触发时会唤醒,保持设为中断的引脚处于非唤醒状态
USB 外设 检测USB插入时唤醒,休眠时断开
wakeup引脚 外设 硬件唤醒引脚,拉低时唤醒,拉高时休眠
定时器 外设 休眠时关闭不需要的定时器,只保留必要任务的定时器
thread 软件 除IDEL外的线程会阻塞休眠函数进入判断,需要全部sleep或阻塞
唤醒锁 软件 人为设定的唤醒源,需要休眠时关闭

移芯平台的休眠等级与行为

休眠等级 休眠等级
IDLE 关闭核心时钟,停止底层保持active的大循环,但任何系统中断均能重新拉起核心时钟并重新进入active状态
SLEEP1 大部分外围设备下电(除部分在规格书中标记为Always on的引脚仍保留功能),保留功能的外部中断、主串口和USB_VBUS能将模组从此模式唤醒(大约等同于其它平台的deepsleep,当前版本主串口唤醒失效)
SLEEP2 关闭部分的sram(MSMB部分),保留64KB的sram(ASMB)在等待模式
HIBERNATE 关闭ASMB部分,即所有SRAM全部关闭

BC25模组的工作模式及各模式下的功耗表现如何?

BC25的工作模式可以分为以下三种:

  • Active状态:

    网络处于活动状态,可以进行数据发送和接收。所有模块功能正常可用,模块在此模式下可切换到 Idle 模式。

  • Idle状态:

    网络处于 DRX 状态或者 eDRX 状态,可接收寻呼消息。所有模块功能正常可用,模块在此模式下可切换至 Active 或睡眠模式。

  • 睡眠状态:

    网络处于 eDRX 状态或者 PSM 状态,不可接收下行数据。进入睡眠后为最大程度降低模块功耗,会关闭相关外设,串口不再响应 AT 命令,CPU 停止运行,此时模块状态接近于关机状态。模块内部只有 RTC 工作。

各个模式下的功耗表现:

  • Active 模式网络处于活动状态,功耗较高,属于必须消耗不必关注。现在看三种低功耗网络应用模式:DRX、eDRX 和 PSM。其中 DRX 属于 Idle 态;eDRX 可以属于 Idle 态,也可属于睡眠态;PSM 属于睡眠态。

  • DRX 模式下,模块在每个 DRX 周期监听一次寻呼信道,功耗相对 eDRX 和 PSM 来说较高。

  • eDRX 就是模块不断地打开、关闭接收机,支持配置的时长为 20.48s ~ 2.92h,eDRX 功耗较 DRX 低。

  • PSM 打开、关闭接收机的频率更低,可低至几天打开一次接收机,PSM 模式下,进入睡眠后功耗只有微安级,终端在此工作模式下才可能实现极低的功耗,如“一节电池用数年”。