【已解决】【TuyaOS OS】蓝牙低功耗模式功耗300uA无法满足小于100uA的需求

蓝牙 BLE设备、蓝牙 MESH设备、蓝牙 Beacon设备、Sub-G设备等


Post Reply
17394068840
Posts: 22

开发包版本:使用的SDK版本是BLE_TLSR_3.8.1 模块型号BTU
问题现象:调用函数tal_cpu_allow_sleep();后,手机关闭蓝牙模块进入低功,但是电流仍然有300uA,无法达到电流小于100uA的要求,此时GPIO可输出高低电平,按键中断可以正常进入。
调试过程:1.尝试调用 tal_ble_advertising_stop();接口,功耗降至10uA,但是手机无法发现和控制设备。
2.尝试增加TY_ADV_INTERVAL 值由100改为1000 ,手机蓝牙关闭,功耗降至10uA。手机打开蓝牙可发现设备并控制。但此时模块GPIO无法输出高低电平输出信号,按键检测中断无法进入。
3.尝试tkl_board_pm_suspend 接口和tkl_board_pm_working 接口,但是无法仍然无法解决问题。
请帮忙看下如何解决此问题,最好提供demo代码可以正常进入休眠并且可以按键唤醒 ,也可以手机发现设备。

Last edited by 17394068840 on 2023年 Oct 27日 09:42, edited 1 time in total.

Tags:
jinyuan
Posts: 56

Re: 【求助】【TuyaOS OS】蓝牙低功耗模式功耗300uA无法满足小于100uA的需求

  1. 功耗方面,TY_ADV_INTERVAL 改为1000, 广播不要关闭, 再调用接口 “tal_cpu_allow_sleep” ,可以让设备进入低功耗的同时手机也能够发现设备。
  2. 芯片休眠时无法保持输出能力,不过休眠前可以通过配置成输入上、下拉的方式来保持一定的高低电平输出。
  3. 休眠时按键中断都是无法响应的,可以在唤醒的时候扫描一下按键状态,如果有按键被按下,则启动定时器扫描按键。可以通过 tkl_wakeup_source_set 接口来配置按键唤醒,该接口工程demo里有演示使用方法
17394068840
Posts: 22

Re: 【求助】【TuyaOS OS】蓝牙低功耗模式功耗300uA无法满足小于100uA的需求

感谢您的回复,配置tkl_wakeup_source_set 接口可以看到电流变化为3mA应该是唤醒了,但是按键中断仍然没有进入,大约1秒后电流重新降到10uA.
1.是否需要在唤醒后重新配置GPIO的输入和输出,重新初始化按键函数? 如果需要的话这个初始化函数应该放在哪个回调函数中?

jinyuan
Posts: 56

Re: 【求助】【TuyaOS OS】蓝牙低功耗模式功耗300uA无法满足小于100uA的需求

  1. 需要重新配置。tuya_init_third 该函数在芯片每次唤醒时都会调用一次。,重新配置放在这里就可以了
17394068840
Posts: 22

Re: 【求助】【TuyaOS OS】蓝牙低功耗模式功耗300uA无法满足小于100uA的需求

非常感谢您的回复,现在我已经可以正常的休眠和通过按键唤醒和手机发现唤醒了。 另外还有两个问题想请教一下:
1.在模块和网关或者手机连接长时间没有指令下发的情况下,是否有强制休眠的指令可以让模块进入休眠(保持连接),并且当有指令下发的时候立即唤醒并执行动作?
2.在模块休眠的时候没有手机扫描和按键触发的情况下,用户设定的定时时间到了,是否可以强制唤醒,执行完动作后再次进入休眠?

jinyuan
Posts: 56

Re: 【求助】【TuyaOS OS】蓝牙低功耗模式功耗300uA无法满足小于100uA的需求

  1. 只要tal_cpu_allow_sleep执行后,当设备满足休眠条件(没有广播/连接事件,按键电平不在唤醒状态等)时会自动进入休眠,可以把广播的interval和连接的interval理解成定时事件,在定时时间到的时候,SDK会主动唤醒MCU来执行对应的事件。在没有相关事件需要执行的时候,就自动进入休眠。
  2. 该SDK的 软件定时器(tal_sw_timer)已经做了封装,可以支持低功耗场景下的使用。启动这个定时器就可以实现定时期间休眠,超时时唤醒。
17394068840
Posts: 22

Re: 【已解决】【TuyaOS OS】蓝牙低功耗模式功耗300uA无法满足小于100uA的需求

感谢回复

17394068840
Posts: 22

【已解决】【TuyaOS OS】蓝牙低功耗模式功耗300uA无法满足小于100uA的需求

已解决 修改标题

Post Reply