【已解决】TLSR8250 单点蓝牙唤醒后无广播

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


dong
Posts: 15

已在唤醒后用户初始化函数中 ty_ble_start_adv(); 启动广播
唤醒前操作正常,
唤醒正常
未修改sdk其它部分

jinyuan
Posts: 81

Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播

信息有点少, 芯片启动后 是怎么进入休眠的? 调用哪个接口或者指令进入休眠?

dong
Posts: 15

Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播

app_config.h中
#define BLE_MODULE_PM_ENABLE 1
#define PM_DEEPSLEEP_RETENTION_ENABLE 1

初始化完成后启动一个30秒的定时器;
定时器函数中调用
ty_system_enter_sleep();

jinyuan
Posts: 81

Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播

把ty_system_enter_sleep接口改成 ty_system_enter_suspend

dong
Posts: 15

Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播

suspend mode 待机功耗有60uA多,我的设备是个很小的钮扣电池供电,需要超低功耗,所有选择Deepsleep retention mode
在Deepsleep retention mode 下 执行ty_system_enter_sleep() 休眠唤醒后,如何才能快速打开广播并连接网关?
唤配初始化函数中执行ty_ble_start_adv();无作用!

jinyuan
Posts: 81

Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播

ty_system_enter_sleep 这个函数里面的 cpu_sleep_wakeup 会让设备进入deepsleep, 调用这个接口后广播是停止的
调用了这个接口,就只有两个唤醒源 ,一个是 定时唤醒, 一个是按键唤醒 ,
定时多久唤醒,参考如下(1s唤醒1次):
cpu_sleep_wakeup(DEEPSLEEP_MODE_RET_SRAM_LOW32K, PM_WAKEUP_PAD | PM_WAKEUP_TIMER, clock_time() + CLOCK_SYS_CLOCK_1S);
按键唤醒, 参考如下(将对应的pin初始化为高电平唤醒,若按键一直是高电平,则不会进入休眠):
cpu_set_gpio_wakeup(pin,Level_High , 1);

如果休眠前广播没有停止,唤醒后会继续广播.

dong
Posts: 15

Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播

设置的是按键唤醒,
邦定前是可以正常睡眠和唤醒,唤醒后也可以正常邦定
现在的问题是邦定后重新上电是正常的,也能连接上,邦定上休眠后,用按键唤醒后, 蓝牙无广播,也连接不到,用nrf Connect 查看无广播,也无调试信息输出
app_config.h 中配置如下,

Code: Select all

#define BLE_MODULE_PM_ENABLE				 1
#define PM_DEEPSLEEP_RETENTION_ENABLE		 1
//////////////////////////// MODULE PM GPIO	(EVK board) /////////////////////////////////
#define GPIO_WAKEUP_MODULE					GPIO_PA1   //mcu wakeup module
#define	 PA1_FUNC							AS_GPIO
#define PA1_INPUT_ENABLE					      1
#define	 PA1_OUTPUT_ENABLE					0
#define	 PA1_DATA_OUT						      0
#define GPIO_WAKEUP_MODULE_HIGH				gpio_setup_up_down_resistor(GPIO_WAKEUP_MODULE, PM_PIN_PULLUP_10K);
#define GPIO_WAKEUP_MODULE_LOW				gpio_setup_up_down_resistor(GPIO_WAKEUP_MODULE, PM_PIN_PULLDOWN_100K);

ty_pin_tlsr825x.c 中配置如下

Code: Select all

#define  GPIO_WAKEUP_MODULE_POLARITY			0
#define  WAKEUP_MODULE_GPIO                    GPIO_PA1
dong
Posts: 15

Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播

已找到问题,唤醒后要更新状态

jinyuan
Posts: 81

Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播

在 user_init_deepRetn 函数里面执行一下 ty_ble_start_adv 试试?

dong
Posts: 15

Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播

之前已经在 user_init_deepRetn 函数里加了 ty_ble_start_adv 是不行了
对比了demo初始化函数,有在user_init_deepRetn 函数里加了tuya_ble_sdk_test_send(TY_UARTV_CMD_SHAKE_HAND, NULL, 0); 广播就可以了,
但是发现唤醒后广播需要8-12s才有, 而重新上电,广播出现的时间不会超过2s, 对于此应用,唤醒连接时间必须优化到2s以内才能用,烦请指教,谢谢

Post Reply