跳转至

PM (功耗管理) 指令

对应源码: components/airlink/include/luat_airlink_drv_pm.h, components/airlink/src/luat_airlink_cmds.c

启用宏: LUAT_USE_AIRLINK_EXEC_PM

PM 指令用于主机控制从机的功耗模式、电源开关和唤醒引脚.

通用 payload 头

所有 driver 指令的 data 字段前 8 字节是 seq_id (uint64_t, 小端, 单调递增), 用于匹配 cmd 0x08 result 回调. 详见 指令层描述.

指令列表

cmd 名称 方向 说明
0x600 pm_request 主→从 请求进入指定功耗模式
0x601 pm_power_ctrl 主→从 控制指定电源域开关
0x602 pm_wakeup_pin 主→从 配置唤醒引脚

各指令详细定义

pm_request (0x600)

请求从机进入指定功耗模式 (例如休眠).

字段 长度 含义
seq_id 8B 序列号
mode 1B 功耗模式 (mode 编号由 luat_pm.h 定义, 例如 LUAT_PM_SLEEP_MODE_LIGHT / LUAT_PM_SLEEP_MODE_DEEP)

详细的 mode 取值参考源码头文件 include/luat_pm.h.

pm_power_ctrl (0x601)

控制指定电源域开关 (例如 WiFi 模组的 PA/LDO).

字段 长度 含义
seq_id 8B 序列号
id 1B 电源域 id (由 BSP 定义)
val 1B 0 = 关闭, 1 = 打开

pm_wakeup_pin (0x602)

配置唤醒引脚, 用于从深度休眠唤醒.

字段 长度 含义
seq_id 8B 序列号
pin 1B GPIO 引脚号
val 1B 唤醒极性: 0 = 低电平唤醒, 1 = 高电平唤醒

相关 API

除 cmd 之外, AirLink 还提供以下电源管理接口 (见 binding/luat_lib_airlink.c):

API 作用
airlink.pause(mode) 暂停/恢复 airlink 传输 task (0 = 恢复, 1 = 暂停). 休眠前调用 pause 持 mutex, 避免传输 task 干扰
airlink.power(enable) 关闭/打开 wifi 供电 (仅 Air8000 自动调用)
airlink.irqmode(enable, master_gpio, slave_gpio) 启用 RDY/IRQ 引脚中断模式
airlink.wakeupIrqmode(enable, m_gpio, s_gpio, irq_mode) 配置唤醒引脚极性

这些 API 通过 cmd 0x600/0x601/0x602 间接控制从机, 详见 物理层描述.

问一下 AI