|
楼主 |
发表于 2025-9-27 02:45:37
|
显示全部楼层
来自 德国
I think I found out what is happening. If the TLSR8251 enters deepsleep retention after doing the transmit/before doing the retransmit then instead of retransmitting the actual packet only an empty packet is retransmitted. If the TLSR8251 stays awake then the retransmission is done properly (I have also seen the retransmission now in that case on my capture). I found out that for the ble_sample it does not enter deepsleep retention usually if I keep sending read requests, only if I add
- unsigned int app_wakeup_tick = clock_time() + (320000 * sys_tick_per_us);
- bls_pm_setAppWakeupLowPower(app_wakeup_tick, 1);
复制代码
it will enter deepsleep retention for some reason. I am checking if it enters deepsleep retention by turning on an LED at the beginning of the main loop, while the LED is on the TLSR8251 is awake, if the CPU goes into deepsleep the LED turns off.
I have uploaded the changed ble_sample, I am reading in an endless loop with a 2500ms interval, latency is 0. If I uncomment the line- bls_pm_setAppWakeupLowPower(app_wakeup_tick, 1);
复制代码 then only empty packets are retransmitted, if it stays commented the LED stays on while I am reading so the device never enters deepsleep, and in that case the retransmissions work. Also in my opinion it should enter deepsleep mode even if I am continously reading and not using the bls_pm_setAppWakeupLowPower function? Not sure why that is not working properly. |
|