已在唤醒后用户初始化函数中 ty_ble_start_adv(); 启动广播
唤醒前操作正常,
唤醒正常
未修改sdk其它部分
【已解决】TLSR8250 单点蓝牙唤醒后无广播
【已解决】TLSR8250 单点蓝牙唤醒后无广播
Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播
信息有点少, 芯片启动后 是怎么进入休眠的? 调用哪个接口或者指令进入休眠?
Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播
app_config.h中
#define BLE_MODULE_PM_ENABLE 1
#define PM_DEEPSLEEP_RETENTION_ENABLE 1
初始化完成后启动一个30秒的定时器;
定时器函数中调用
ty_system_enter_sleep();
Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播
把ty_system_enter_sleep接口改成 ty_system_enter_suspend
Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播
suspend mode 待机功耗有60uA多,我的设备是个很小的钮扣电池供电,需要超低功耗,所有选择Deepsleep retention mode
在Deepsleep retention mode 下 执行ty_system_enter_sleep() 休眠唤醒后,如何才能快速打开广播并连接网关?
唤配初始化函数中执行ty_ble_start_adv();无作用!
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);
如果休眠前广播没有停止,唤醒后会继续广播.
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
Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播
已找到问题,唤醒后要更新状态
Re: 【求助】TLSR8250 单点蓝牙唤醒后无广播
在 user_init_deepRetn 函数里面执行一下 ty_ble_start_adv 试试?
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以内才能用,烦请指教,谢谢