Page 1 of 1

PHY6222_MESH_3.9.0 mesh进低功耗问题

Posted: 2026年 Jan 29日 10:08
by scanway_lin

pwm在进低功耗时需要hal_pwm_stop才能进入,而stop后pwm工作异常

void user_low_power_init(void)
{
TUYA_WAKEUP_SOURCE_BASE_CFG_T param_timer;
param_timer.source = TUYA_WAKEUP_SOURCE_TIMER;
param_timer.wakeup_para.timer_param.timer_num = TUYA_TIMER_NUM_0;
param_timer.wakeup_para.timer_param.mode = TUYA_TIMER_MODE_ONCE;
param_timer.wakeup_para.timer_param.ms = 40000;
tkl_wakeup_source_set(&param_timer);
tkl_cpu_sleep_mode_set(1, TUYA_CPU_SLEEP);
}

void user_pwm_init(void)
{
int ret;
TUYA_PWM_BASE_CFG_T pwm_cfg = {0};
pwm_cfg.polarity = TUYA_PWM_POSITIVE;
pwm_cfg.duty = 0;
pwm_cfg.frequency = 16000;
ret = tal_pwm_info_set(TUYA_PWM_NUM_0, &pwm_cfg);
tal_pwm_start(TUYA_PWM_NUM_0);
user_pwm_led0_set_duty(TUYA_PWM_NUM_0,1000);
}

按键消息:短按->
tkl_pwm_stop(TUYA_PWM_NUM_0);
hal_pwm_stop();
tal_cpu_allow_sleep();
唤醒后 长按->
user_pwm_init();

如果注释掉hal_pwm_stop后,pwm可以正常工作,帮忙看看是什么原因导致的。


Re: PHY6222_MESH_3.9.0 mesh进低功耗问题

Posted: 2026年 Jan 30日 09:06
by scanway_lin

大佬们,帮忙看看


Re: PHY6222_MESH_3.9.0 mesh进低功耗问题

Posted: 2026年 Jan 30日 10:12
by joey_nobug

进入低功耗时外设是无法使用的,例如 PWM UART 等。所以 SDK 进休眠前会检测外设状态,如果外设在运行则无法进入低功耗。


Re: PHY6222_MESH_3.9.0 mesh进低功耗问题

Posted: 2026年 Jan 30日 12:00
by scanway_lin

这个明白,hal_pwm_stop()执行后,进入低功耗suspend,唤醒后pwm再初始化工作异常。目的是在唤醒后能正常使用pwm.


Re: PHY6222_MESH_3.9.0 mesh进低功耗问题

Posted: 2026年 Jan 30日 14:37
by joey_nobug
scanway_lin 2026年 Jan 30日 12:00

这个明白,hal_pwm_stop()执行后,进入低功耗suspend,唤醒后pwm再初始化工作异常。目的是在唤醒后能正常使用pwm.

初始化接口换一下 tkl_pwm_init,不要用 tkl_pwm_info_set


Re: PHY6222_MESH_3.9.0 mesh进低功耗问题

Posted: 2026年 Jan 30日 15:57
by scanway_lin

好的,感谢