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"
},
T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题
T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题
Re: T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题
您好,关于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的功耗及休眠后保持高电平输出问题
你好,关于功耗,我们是纯模组无外设测试的,就直接给模组供电,其他的引脚都不接
Re: T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题
是不是要将所有使用过的GPIO都deinit掉,因为我们现在只是把项目配置的深度休眠打开后测试的,以及配置了电池,4G,现在软件逻辑并未修改
Re: T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题
还有一个,这几个模组,我们烧录旧版本的固件:3.12.23的固件,深度休眠,功耗在11.5-13.5uA,烧录以前的固件功耗是正常的
Re: T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题
GPIO_LOW_POWER_KEEP_IO_STATUS,GPIO_IO_OUTPUT这两个参数,SDK好像无法识别,编译会报错
- Attachments
-
Re: T5_TUYAOS-3.13.6的功耗及休眠后保持高电平输出问题
您好!针对您的追问:
关于 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 射频是否完全关闭
如果方便,建议提供编译报错的具体信息,我可以进一步帮您定位。