Page 1 of 1

【已解决】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

Posted: 2022年 Dec 5日 09:58
by john@lu

芯科平台EFR32MG21A020没有任务处理时,会自动进入休眠,如何设置为消息唤醒或禁止其进入休眠?


Re: TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

Posted: 2022年 Dec 5日 10:13
by iot_man

tal_cpu_force_wakeup 这个函数会强行唤醒
系统是唤醒有:

  1. gpio中断唤醒
  2. zigbee poll定时唤醒
  3. tal_sw_timer_start 软件定时器唤醒

Re: TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

Posted: 2022年 Dec 5日 10:16
by zeso

你好:
TuyaOS提供了两个接口:
tal_cpu_allow_sleeptal_cpu_force_wakeup,用于控制设备允许休眠或者强制唤醒。

BTW.
对于低功耗设备,考虑到设备电池寿命,如果连续唤醒时间超过2min,系统定义为设备异常,并默认执行软复位操作,当然,开发者可重写虚函数tal_abnormal_wakeup_callback自定义是否重启(根据返回值)。


Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

Posted: 2022年 Dec 5日 11:27
by john@lu

tal_cpu_force_wakeup是在什么地方调用?是在初始化时,还是在定时器中?


Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

Posted: 2022年 Dec 5日 13:49
by zeso

可以理解为这个接口是SDK在进入休眠之前加的一个开关。tuya_init_last之前SDK内部会关闭或者开启,因此应用代码需要在tuya_init_last或者之后调用都可以。


Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

Posted: 2022年 Dec 5日 15:44
by john@lu

你好,这个好像不起作用,现在是我已经在 tuya_init_last 中添加了 tal_cpu_force_wakeup ,也已经禁止了重启,但现在的现像是只要上电后2秒钟内无动作就会进入休眠,需要用遥控器发码后(外部事件触发),才会继续上一次或几次的操作


Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

Posted: 2022年 Dec 5日 18:19
by zeso

你好,请尝试下打开打印,使用tal_cpu_sleep_callback_register接口注册进入低功耗和退出低功耗回调函数,在回调函数中加打印信息排查确认下是否进入休眠状态。


Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

Posted: 2022年 Dec 6日 09:14
by john@lu

好的,问题解决了,谢谢支持!