Page 1 of 1
T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题
Posted: 2026年 Apr 17日 15:43
by xdt_chen
T5模组做AI玩具,SDK版本:3.13.6。
1.我试了一下新版本的功耗,有的模组在深度休眠下是130uA,148uA,161uA,一方面这个功耗相比以前1113uA的水平相差太大,另一方面功耗怎么相差这么多。
2.进入低功耗后保持高电平的问题,我们现在有4个GPIO要在休眠后保持高电平,GPIO17,GPIO23,GPIO26,GPIO28,按照上个版本写法,好像没有作用。
{
"gpio_id": "GPIO_17",
"second_func_en": "GPIO_SECOND_FUNC_DISABLE",
"second_func_dev": "GPIO_DEV_INVALID",
"io_mode": "GPIO_IO_DISABLE",
"pull_mode": "GPIO_PULL_UP_EN",
"int_en": "GPIO_INT_DISABLE",
"int_type": "GPIO_INT_TYPE_LOW_LEVEL",
"low_power_io_ctrl": "GPIO_LOW_POWER_DISCARD_IO_STATUS",
"gpio_init":"GPIO_INIT_ENABLE",
"driver_capacity": "GPIO_DRIVER_CAPACITY_3"
},
Re: T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题
Posted: 2026年 Apr 17日 15:57
by 愚者千虑必有一得
您好,关于T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题,分析如下:
问题1:GPIO休眠后无法保持高电平
根因:您的GPIO配置中 low_power_io_ctrl 设置为 GPIO_LOW_POWER_DISCARD_IO_STATUS,这表示"丢弃IO状态",所以休眠后GPIO状态会丢失。
解决方案:
- 将
low_power_io_ctrl 改为 GPIO_LOW_POWER_KEEP_IO_STATUS(保持IO状态)
- 将
io_mode 从 GPIO_IO_DISABLE 改为 GPIO_IO_OUTPUT(输出模式)
- 在休眠前预置GPIO为高电平
修正后的配置示例:
Code: Select all
{
"gpio_id": "GPIO_17",
"second_func_en": "GPIO_SECOND_FUNC_DISABLE",
"second_func_dev": "GPIO_DEV_INVALID",
"io_mode": "GPIO_IO_OUTPUT",
"pull_mode": "GPIO_PULL_UP_EN",
"int_en": "GPIO_INT_DISABLE",
"int_type": "GPIO_INT_TYPE_LOW_LEVEL",
"low_power_io_ctrl": "GPIO_LOW_POWER_KEEP_IO_STATUS",
"gpio_init": "GPIO_INIT_ENABLE",
"driver_capacity": "GPIO_DRIVER_CAPACITY_3"
}
休眠前代码:
Code: Select all
// 预置高电平
tkl_gpio_write(TUYA_GPIO_NUM_17, TUYA_GPIO_LEVEL_HIGH);
tkl_gpio_write(TUYA_GPIO_NUM_23, TUYA_GPIO_LEVEL_HIGH);
tkl_gpio_write(TUYA_GPIO_NUM_26, TUYA_GPIO_LEVEL_HIGH);
tkl_gpio_write(TUYA_GPIO_NUM_28, TUYA_GPIO_LEVEL_HIGH);
tal_system_sleep(10); // 确保电平稳定
// 进入深度休眠
tal_cpu_sleep_mode_set(TRUE, TUYA_CPU_DEEP_SLEEP);
问题2:深度休眠功耗偏高(130-161uA)
T5深度休眠正常应在10-20uA范围。130uA+表明有外设未关闭或GPIO漏电流。
排查建议:
- 检查是否有GPIO配置为浮空输入(应配置为输入+下拉)
- 确认WiFi/BLE射频已关闭
- 检查是否有其他外设未deinit
- 不同模组间差异可能是硬件批次问题,建议对比正常模组的GPIO配置
建议先用万用表确认休眠时GPIO17/23/26/28的实际电平,再逐步排查功耗问题。
如有疑问请补充日志或硬件连接信息。
Re: T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题
Posted: 2026年 Apr 17日 16:02
by xdt_chen
你好,关于功耗,我们是纯模组无外设测试的,就直接给模组供电,其他的引脚都不接
Re: T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题
Posted: 2026年 Apr 17日 16:05
by xdt_chen
是不是要将所有使用过的GPIO都deinit掉,因为我们现在只是把项目配置的深度休眠打开后测试的,以及配置了电池,4G,现在软件逻辑并未修改
Re: T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题
Posted: 2026年 Apr 17日 16:08
by xdt_chen
还有一个,这几个模组,我们烧录旧版本的固件:3.12.23的固件,深度休眠,功耗在11.5-13.5uA,烧录以前的固件功耗是正常的
Re: T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题
Posted: 2026年 Apr 17日 16:46
by xdt_chen
GPIO_LOW_POWER_KEEP_IO_STATUS,GPIO_IO_OUTPUT这两个参数,SDK好像无法识别,编译会报错
Re: T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题
Posted: 2026年 Apr 17日 18:04
by 愚者千虑必有一得
您好!针对您的追问:
关于 GPIO_LOW_POWER_KEEP_IO_STATUS 编译报错:
这两个参数在 TalAPI 中不存在,是因为使用了错误的 API。正确做法是直接操作 GPIO 寄存器:
休眠前保留 GPIO 状态(推荐):
Code: Select all
#include "tal_gpio.h"
// 休眠前将 GPIO 配置为低功耗保持状态
tal_gpio_set_output_value(GPIO_NUM_X, GPIO_VALUE_LOW);
// 或者配置为输入+上拉
tal_gpio_init(GPIO_NUM_X);
tal_gpio_set_direction(GPIO_NUM_X, GPIO_DIRECTION_INPUT);
tal_gpio_set_pull_mode(GPIO_NUM_X, GPIO_PULL_UP);
深度休眠配置(tal_system.h):
确保 tal_pm_sleep_mode_set(TAL_PM_SLEEP_MODE_DEEP) 已设置,并检查以下配置:
检查 TAL_PM_DEEP_SLEEP_GPIO_KEEP_ENABLE 宏是否定义
查看 <T5芯片>/kal/tal_pm.h 中深度休眠相关 API
关于 3.13.6 vs 3.12.23 差异:
新版本可能修改了深度休眠的默认行为,旧版本固件功耗正常说明硬件没问题,建议对比两个 SDK 版本的 tal_pm_sleep_mode_set() 参数和 gpio_config.c 配置差异。
功耗 130uA 排查建议:
确认 4G 模块是否在休眠时断电(可通过电流波形判断)
检查是否所有 GPIO 在休眠前都 deinit 了
WiFi/BLE 射频是否完全关闭
如果方便,建议提供编译报错的具体信息,我可以进一步帮您定位。