AT模块 8: 低功耗功能 AT 命令(Low Power Function AT Commands)

来自Bouffalo Lab Docs
张良留言 | 贡献2026年1月12日 (一) 02:18的版本 (创建页面,内容为“= Low power function AT command = == 指令列表 == {| class="wikitable" ! 指令 ! 描述 |- | <code>AT+PWR</code>_ | 配置电源模式 |- | <code>AT+SLWKIO</code>_ | 配置 GPIO 作为唤醒源 |- | <code>AT+DEWKIO</code>_ | 删除 GPIO 作为唤醒源 |- | <code>AT+SLWKTIMER</code>_ | 配置定时器作为唤醒源 |- | <code>AT+SLWKDTIM</code>_ | 配置 DTIM |- | <code>AT+SLCLDTIM</code>_ | 删除 DTIM 配置 |- | <code>AT+TWT_PARAM</code>_ | 设置 TWT…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

Low power function AT command

指令列表

指令 描述
AT+PWR_ 配置电源模式
AT+SLWKIO_ 配置 GPIO 作为唤醒源
AT+DEWKIO_ 删除 GPIO 作为唤醒源
AT+SLWKTIMER_ 配置定时器作为唤醒源
AT+SLWKDTIM_ 配置 DTIM
AT+SLCLDTIM_ 删除 DTIM 配置
AT+TWT_PARAM_ 设置 TWT 参数
AT+TWT_SLEEP_ 进入 TWT 低功耗模式
AT+TWT_TEARDOWN_ 拆除 TWT
AT+GET_CLOCK_ 获取当前时钟源
AT+SET_CLOCK_ 设置系统时钟源

---

Low power AT command description

AT+PWR

功能: 配置电源模式

Execute Command

命令:

AT+PWR=<power mode>[,<level>]

响应:

OK

Parameters

  • <power mode>:
 * 0: normal mode(正常模式)
 * 1: hibernate mode(休眠模式)
 * 2: standby mode(待机模式)
  • [<level>]: 在休眠模式下,电源等级 0-2; 在待机模式下,1 - 启用接收广播包

Example

AT+PWR=0             // Normal mode
AT+PWR=1,0           // Hbn mode, level 0.
AT+PWR=2             // Standby mode
AT+PWR=2,1           // Standby mode, enable receive broadcast package

---

AT+SLWKIO

功能: 配置 GPIO 作为唤醒源

Execute Command

命令:

AT+SLWKIO=<wakeup io>,<trigger mode>

响应:

OK

Parameters

  • <wakeup io>: GPIO 唤醒 IO 编号,仅支持 gpio 16 或 gpio 28
  • <trigger mode>: 唤醒触发模式
 * 0: 高电平唤醒

注意: 当前实现使用五线 SPI 低功耗方案,因此唤醒方式不可配置,仅支持高电平唤醒。

---

AT+DEWKIO

功能: 删除 GPIO 作为唤醒源

Execute Command

命令:

AT+DEWKIO=<io>

响应:

OK

Parameters

  • <io>: GPIO 唤醒 IO 编号

---

AT+SLWKTIMER

功能: 配置定时器作为唤醒源

Set Command

命令:

AT+SLWKTIMER=<mode>,<timeouts>

响应:

OK

Parameter

  • <mode>: 0, standby mode(待机模式), 1 hibernate mode(休眠模式)
  • <timeouts>: 设置唤醒持续时间,单位为毫秒。一次性唤醒定时器,唤醒后不会再次进入睡眠(除非重新配置新的唤醒定时器)

Example

AT+SLWKTIMER=0,5000                       //Standby mode, Wake up once next 5000ms

---

AT+SLWKDTIM

功能: 配置 DTIM 作为唤醒源

Set Command

命令:

AT+SLWKDTIM=<dtim>

响应:

OK

Parameter

  • <dtim>: 设置唤醒 DTIM

Example

AT+SLWKDTIM=10                      // Set ditm10 for wakeup.

---

AT+SLCLDTIM

功能: 删除 DTIM 配置

Set Command

命令:

AT+SLCLDTIM

响应:

OK

Example

AT+SLCLDTIM

---

AT+TWT_PARAM

功能: 设置 TWT 参数

Set Command

命令:

AT+TWT_PARAM=<setup type>,<flow type>,<exponent>,<wakeup duration>,<wake interval mantissa>

响应:

OK

Parameter

  • Setup type (s): 0:REQUEST(请求), 1:SUGGEST(建议), 2:DEMAND(要求)
  • Flow type (t): 0:ANNOUNCED TWT(宣告式 TWT), 1:UNANNOUNCED TWT(非宣告式 TWT)。仅支持非宣告式 TWT
  • Wake Interval Exponent: 指定唤醒间隔指数
  • Wake Duration (n): 最小唤醒持续时间,单位为微秒
  • Wake Interval Mantissa (m): 用于精确间隔调整的尾数值
  • Service Period (SP): SP = WakeDuration * 256us
  • Wakeup Interval: Wakeup Interval = wake_int_mantissa << WakeIntervalExponent us

Example

AT+TWT_PARAM=1,1,13,128,1000                       //SP = 32.768 ms, Wake Interval = 8.192 seconds:

Note

  • REQUEST Setup type: TWT 元素的目标唤醒时间字段设置为 0,由响应的 STA/AP 指定目标唤醒时间值。其他字段由请求 STA 建议。
  • SUGGEST Setup type: TWT 请求 STA 将在设置期间建议目标唤醒时间和其他参数。响应 STA 可能/可能不接受建议值。TWT 连接仍将被接受,使用请求 STA 建议的值或响应 STA 提供的值。
  • DEMAND Setup type: TWT 请求 STA 将在设置期间要求目标唤醒时间和其他参数。如果响应 STA 无法接受建议值,TWT 设置将失败。
  • 计算服务周期的公式: Service Period (SP) =( <wakeup duration>/10 ) msec
  • 示例: AT+TWT_PARAM=1,1,13,128,1000 : SP = (128/10) = 12.8 msec
  • 计算 TWT 唤醒间隔的公式: TWT Wake Interval = ((2^<exponent>)/<wake interval mantissa>)sec
  • 示例: AT+TWT_PARAM=1,1,13,128,1000 : TWT Wake Interval = ((2^12)/1000) = 8.192s

---

AT+TWT_SLEEP

功能: 进入 TWT 低功耗模式

Set Command

命令:

AT+TWT_SLEEP

响应:

OK

Example

AT+TWT_SLEEP

---

AT+TWT_TEARDOWN

功能: 拆除目标唤醒时间 (TWT) 会话

Set Command

命令:

AT+TWT_TEARDOWN=<neg_type>,<all_twt>[,<flow_id>]

响应:

OK

ERROR

Parameters

  • <neg_type>: TWT 协商类型
 * 0: 单独协商(将对指定的 TWT 流执行 TWT 拆除)
 * 1: 在下一个唤醒 TBTT(目标信标传输时间)协商 TWT 拆除。目前不支持
  • <all_twt>: 指定是否拆除所有 TWT 流
 * 0: 仅拆除指定的 TWT 流(由 <flow_id> 参数指定)
 * 1: 拆除所有现有的 TWT 流
  • <flow_id>: 要拆除的 TWT 流 ID。当 <all_twt> 设置为 0 时,此参数是必需的

Notes

  • 内部 RC 错误可能导致唤醒间隔不准确(例如,30 秒内 60 毫秒的偏差)
  • 外部晶振要求: 必须在带有外部晶振的板上进行测试,以最大限度地减少 RTC 时钟偏差
  • 路由器兼容性: 使用支持 TWT 的路由器进行测试(例如 TP-Link AX5400)
  • 目前,仅支持单独协商类型(0)
  • 当 <all_twt>=1 时,不需要 <flow_id> 参数
  • 设备必须在使用此命令之前处于 TWT 模式

Example

// Teardown a specific TWT flow with ID 1
AT+TWT_TEARDOWN=0,0,1

// Teardown all TWT flows
AT+TWT_TEARDOWN=0,1

---

AT+GET_CLOCK

功能: 获取当前时钟源

Execute Command

命令:

AT+GET_CLOCK

响应:

+GET_CLOCK:<source>

OK

Parameters

  • <source>: 当前时钟源 ID
 * 1: RC 作为 RTC 时钟源
 * 2: 无源晶振作为 RTC 时钟源
 * 3: 有源晶振作为 RTC 时钟源

Example

AT+GET_CLOCK

// Response
+GET_CLOCK:1

OK

---

AT+SET_CLOCK

功能: 设置系统时钟源

Execute Command

命令:

AT+SET_CLOCK=<source>

响应:

OK

Parameters

  • <source>: 要设置的时钟源
 * 1: RC 作为 RTC 时钟源
 * 2: 无源晶振作为 RTC 时钟源
 * 3: 有源晶振作为 RTC 时钟源

Notes

  • 更改时钟源可能会影响系统性能和功耗
  • 某些时钟源在某些电源模式下可能不可用

Example

AT+SET_CLOCK=1

// Response
OK

---