ECR6600 低功耗一些问题

Wi-Fi 设备、Wi-Fi 低功耗设备、Wi-Fi BLE 双模设备、Ethernet设备、Ethernet+Wi-Fi设备等
hzb
Posts: 38

基于AXYU模组二次开发, 因为考虑本产品是低功耗4路场景开关,4个按键io分别是0,1,2,17(该模组支持的唤醒引脚),按键驱动使用io外部中断模式,在中断回调函数中开启软件定时器(用于按键去抖),系统就会崩溃,请问:

  1. 中断函数是不能调用软件定时器嘛?如果不行,如何实现低功耗模式下实现按键扫描功能呢?
  2. ECR6600-TS2D_TuyaOS-3.8.4 通过哪个接口唤醒配置,没有找到tkl_wakeup_source_set 这个接口
  3. 唤醒的gpio 0, 1, 2, 17,需要配置成什么io模式?还是无需其他处理,只需要调用类似tkl_wakeup_source_set唤醒设置即可
  4. 唤醒后,模组默认再次睡眠的时间是多长, 是否可以通过tkl_cpu_force_wakeup接口强制唤醒
  5. 是否有低功耗相关demo参考
Attachments
171336282205efc1d0b83.jpg
JSHANG
Posts: 35

Re: ECR6600 低功耗一些问题

问题1:不能用,软件定时器封装的函数用到了互斥锁;抛到其它任务去做,可以参考demo里面的tuya_app_key.c处理。
问题2:这个版本里面没这个部分代码,我附件给附上,需要自己合并一下。
vendor\eswin_ecr6600\tuyaos\tuyaos_adapter\src\system\tkl_system.c
vendor\eswin_ecr6600\tuyaos\tuyaos_adapter\include\wakeup\tkl_wakeup.h
问题3:tkl_wakeup_source_set 函数会配置成支持唤醒的IO.
问题4:深度休眠模式,休眠是有业务控制的,你自己要他休眠就会休眠;唤醒后,你不设置让他休眠,模组不会睡。
wake_cfg.source=TUYA_WAKEUP_SOURCE_GPIO;
wake_cfg.wakeup_para.gpio_param.gpio_num=TUYA_GPIO_NUM_0;
wake_cfg.wakeup_para.gpio_param.level=TUYA_GPIO_LEVEL_HIGH;
tkl_wakeup_source_set(&wake_cfg); 设置gpio唤醒
tkl_cpu_sleep_mode_set(1, TUYA_CPU_DEEP_SLEEP) ; 进入deep sleep

定时唤醒:
wake_cfg.source=TUYA_WAKEUP_SOURCE_TIMER;
wake_cfg.wakeup_para.timer_param.mode=TUYA_TIMER_MODE_ONCE;
wake_cfg.wakeup_para.timer_param.timer_num=0;
wake_cfg.wakeup_para.timer_param.ms=60000;
tkl_wakeup_source_set(&wake_cfg); 进入deep sleep
问题5: 深度休眠,唤醒的demo没有,参考问题4。

hzb
Posts: 38

Re: ECR6600 低功耗一些问题

好的,感谢解答,另外:

  1. 在ECR6600-TS2D_TuyaOS-3.8.4 这份sdk 没有找到相关demo中tuya_app_key.c 文件, 能否帮忙发下,我参考下
  2. 关于:这个版本里面没这个部分代码,我附件给附上,需要自己合并一下。
    vendor\eswin_ecr6600\tuyaos\tuyaos_adapter\src\system\tkl_system.c
    vendor\eswin_ecr6600\tuyaos\tuyaos_adapter\include\wakeup\tkl_wakeup.h

没有找到附件有相关文件, 麻烦一起再发下

JSHANG
Posts: 35

Re: ECR6600 低功耗一些问题

添加附件

Attachments
tkl_wakeup.h
(971 Bytes) Downloaded 121 times
tkl_system.c
(14.93 KiB) Downloaded 123 times
tuya_app_key.c
(3.56 KiB) Downloaded 116 times
hzb
Posts: 38

Re: ECR6600 低功耗一些问题

tuya_app_key.c 是通过创建任务不断读按键状态,这种方式适合非低功耗产品, 因为本项目是低功耗产品(进入睡眠模式后,任务失效了), 想要通过按键触发外部中断,再开启按键扫描,而在中断函数中又无法开启软件定时器接口, 那如何实现呢?

hzb
Posts: 38

Re: ECR6600 低功耗一些问题

另外将附件中的tkl_system.c和tkl_wakeup.h替换原sdk,编译链接报错,以下接口未定义

Code: Select all

psm_enable_lower_deep_mode
psm_deep_sleep
pin_func_set_gpio

SDK版本:ECR6600-TS2D_TuyaOS-3.8.4

请问如何解决呢?

JSHANG
Posts: 35

Re: ECR6600 低功耗一些问题

可以切到SDK 3.5的版本上:ECR6600-TSD-3.5.7; 这个版本上deep sleep是正常的,看是否能满足您的需求.

hzb
Posts: 38

Re: ECR6600 低功耗一些问题

下载了3.5.7版本sdk,为什么这个sdk每个demo编译都报错.....

hzb
Posts: 38

Re: ECR6600 低功耗一些问题

编译错误信息:

JSHANG
Posts: 35

Re: ECR6600 低功耗一些问题

看不到你编译错误信息,再贴一下。

Post Reply