更新时间:2025-06-30 09:52:29下载pdf
Wi-Fi 模组低功耗根据实现原理与功耗级别,可以分为下面几种类型:
各种模式的主要特点如下:
低功耗模式 | 主要特点 |
---|---|
普通低功耗 | Wi-Fi 连接保持;数据上报速度快;功耗 < 15 mA |
断电快连 | Wi-Fi 连接断开;模组掉电,需要时重新上电启动,一般和 MCU 配合;数据上报速度慢 |
深度休眠 | Wi-Fi 连接断开;主动上报时,可通过 GPIO、定时器等方式唤醒,唤醒后系统重启;数据上报速度慢;功耗 uA 级别 |
AP 长保活 | Wi-Fi 连接保持;主动上报时,可通过 GPIO 中断等方式唤醒,无需系统重启;数据上报速度较快;功耗百 uA 级别 |
DTIM
模式)。Tickless
模式)。TuyaOS 提供了丰富的 API 以实现不同的低功耗模式,具体使用方法请参考示例。
用于设置 CPU 是否支持低功耗模式,只有设置后才能在后续控制 CPU 进出低功耗模式。
/**
* @brief set cpu lowpower mode
*
* @param[in] lp_enable
*
* @return none
*/
VOID_T tal_cpu_set_lp_mode(BOOL_T lp_enable);
用于控制 CPU 进入低功耗模式(Tickless),需要先设置 CPU 低功耗模式 tal_cpu_set_lp_mode(TRUE)
。
/**
* @brief cpu lowpower enable
*
* @param[in] param: none
*
* @return OPRT_OK on success. Others on error, please refer to tuya_error_code.h
*/
OPERATE_RET tal_cpu_lp_enable(VOID_T);
用于控制 CPU 退出低功耗模式,需要与 tal_cpu_lp_enable
配对使用,否则可能导致功耗控制紊乱。
/**
* @brief cpu lowpower disable
*
* @param[in] param: none
*
* @return OPRT_OK on success. Others on error, please refer to tuya_error_code.h
*/
OPERATE_RET tal_cpu_lp_disable(VOID_T);
用于控制 Wi-Fi 进入低功耗模式(默认 DTIM-1
),默认会同步设置 CPU 低功耗。
/**
* @brief enable wifi lowpower (together with cpu).
*
* @param[in] none
* @return OPRT_OK on success. Others on error, please refer to tuya_error_code.h
*/
OPERATE_RET tal_wifi_lp_enable(VOID_T);
用于控制 Wi-Fi 退出低功耗模式。
tal_wifi_lp_enable
配对使用,否则可能导致功耗控制紊乱。/**
* @brief disable wifi lowpower (together with cpu).
*
* @param[in] none
* @return OPRT_OK on success. Others on error, please refer to tuya_error_code.h
*/
OPERATE_RET tal_wifi_lp_disable(VOID_T);
用于仅控制 Wi-Fi 进入低功耗模式(默认 DTIM-1
)。
/**
* @brief enable wifi lowpower only
*
* @param[in] none
* @return OPRT_OK on success. Others on error, please refer to tuya_error_code.h
*/
OPERATE_RET tal_wifi_lp_enable_v2(VOID_T);
用于仅控制 Wi-Fi 退出低功耗模式,需要与 tal_wifi_lp_enable_v2
配对使用,否则可能导致功耗控制紊乱。
/**
* @brief disable wifi lowpower only
*
* @param[in] none
* @return OPRT_OK on success. Others on error, please refer to tuya_error_code.h
*/
OPERATE_RET tal_wifi_lp_disable_v2(VOID_T);
用于控制 Wi-Fi 进入自适应超低功耗模式(默认 DTIM-10
)。该模式下 CPU 也会同步进入超低功耗模式(Tickless),最大休眠时间 5s(无中断唤醒,以及数据交互唤醒)。
/**
* @brief Enable ultra lowpower.
*
* @param[in] none
*
* @return OPRT_OK on success. Others on error, please refer to tuya_error_code.h
*/
OPERATE_RET tuya_wifi_ulp_init(VOID);
/**
* @brief register CPU or wifi power mode for feature(HTTP_CONN, OTA, MQTT_CONN, UART, U2C, SPI, PWM, KEY)
*
* @param[in] type function module
* @retval 0 success
* @retval Other fail
*/
int lpmgr_register(TY_LP_TYPE type);
/**
* @brief unregister CPU or wifi power mode for feature(HTTP_CONN, OTA, MQTT_CONN, UART, U2C, SPI, PWM, KEY)
*
* @param[in] type function module
* @retval 0 success
* @retval Other fail
*/
int lpmgr_unregister(TY_LP_TYPE type);
用于设置退出低功耗时的唤醒源。
仅 深度休眠(Deep Sleep) 与 AP 长保活 模式需要配置唤醒源。
/**
* @brief wake up source set
*
* @param[in] param: wake up source set,
*
* @return OPRT_OK on success. Others on error, please refer to tuya_error_code.h
*/
OPERATE_RET tkl_wakeup_source_set(CONST TUYA_WAKEUP_SOURCE_BASE_CFG_T *param);
void test_lowpower(void)
{
// 1. 尽可能早地调用该 API,如 tuya_app_main() 函数
tal_cpu_set_lp_mode(TRUE);
// 2. 在 Wi-Fi 连上路由时调用
tal_wifi_lp_enable();
// 3. 在 Wi-Fi 与路由器断开时调用
tal_wifi_lp_disable();
// 4. 其他场景,如需要接收 Wi-Fi 管理帧时,先退出 Wi-Fi 低功耗,接收完毕后再打开
}
void test_lowpower(void)
{
// 1. 设置唤醒源(GPIO)
TUYA_WAKEUP_SOURCE_BASE_CFG_T wakeup_cfg;
wakeup_cfg.source = TUYA_WAKEUP_SOURCE_GPIO;
wakeup_cfg.wakeup_para.gpio_param.gpio_num = TUYA_GPIO_NUM_28; // 根据实际产品配置
wakeup_cfg.wakeup_para.gpio_param.level = TUYA_GPIO_WAKEUP_RISE; // 根据实际产品配置
tkl_wakeup_source_set(&wakeup_cfg);
// 2. 关闭非必要的外设,否则可能会影响实际功耗
// xxx
// 3. 进入深度睡眠
tal_cpu_sleep_mode_set(TRUE, TUYA_CPU_DEEP_SLEEP);
}
void test_lowpower(void)
{
// 1. 尽可能早地调用该 API,如 tuya_app_main() 函数
tuya_wifi_ulp_init();
// 2. 在需要退出超低功耗时调用
lpmgr_register(TY_LP_UART); // 根据实际产品配置
// 3. 在需要进入超低功耗时调用
lpmgr_unregister(TY_LP_UART); // 根据实际产品配置
}
低功耗相关 API 需要配对使用,否则可能会导致功耗异常,无法达到预期的低功耗。
Wi-Fi 模组在工作时的常态电流在几十毫安(具体模组略有差异,峰值电流会更高一点),低功耗模式的本质是为了降低常态功耗。如果产品对功耗不敏感(如长供电设备),可以不用关注本文档相关内容。
对于功耗敏感型设备,请根据实际场景选择相应的低功耗模式。需要注意的是,设备功耗与响应速度一般是负相关的,即功耗越低,响应速度越慢,影响用户体验。
一般来说,对于电池供电类设备,选择 断电快连 或者 AP 长保活 可有效延长电池使用时间。
对于普通电工、照明类设备,可以选择 普通低功耗 模式(工作电流小于 15 mA)。
请先检查是否按照示例正确调用了相关 API。需要特别注意,进入/退出低功耗 API 需要配对使用,否则会可能导致功耗紊乱。详细内容请参考本文档相关介绍。
对于功耗敏感型设备,请根据实际场景选择相应的低功耗模式。需要注意的是,设备功耗与响应速度一般是负相关的,即功耗越低,响应速度越慢,影响用户体验。
一般来说,对于电池供电类设备,选择 断电快连 或者 AP 长保活 可有效延长电池使用时间。
对于普通电工、照明类设备,可以选择 普通低功耗 模式(工作电流小于 15 mA)。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈