Hi everybody,
I am developing a smart device based on SDK5.0.3, ble_app_peripheral example,DA14580 01 QFN40 device.In normal, when the device is disconnected from the peer device(smart phone),it
will restart advertising. As for me,the situation is a bit different. In my project code, I need to notify 20Bytes data to the peer device every 20ms. When the peer device terminate the
connection after connecting,the device can restart advertising successfully. But when the device is out of connection range after connecting, it can not restart advertising and I don't know
where the CPU is running to.
I also carry out another test,like described below:
The system environment is the same as above.What changes is the cycle time.I find when I notify 20Bytes data every 125ms,either the peer device terminate the connection or the device is
out of connection range,DA14582 can restart advertising.When this cycle time goes down below 125ms,such as 100ms or 50ms,DA14582 can not restart advertising when the device is out
of connection range.That's strange!
By the way, the connection parameter is:
.intv_min = MS_TO_DOUBLESLOTS(10),
.intv_max = MS_TO_DOUBLESLOTS(20),
smart phone: Samsung S6 Android 5.1.1
What I am concerned is that is it any restriction of the BLE stack to notify data.How to handle such a amount of data exchange? Any suggestion?Thank you!
BR,
Young
Hi yound_dialog,
If i understand your issue correctly you might want to have a look at the post below,
http://support.dialog-semiconductor.com/da14580-does-not-disconnect
Thanks MT_dialog
Hi MT_dialog,
I try to use the data buffer for notification and the problem disappear. But I find a new issue based on RAM. I am using the RAM to debug code and execution. In my code,there is a
函数算法()有限公司nsume a lot of system RAM.When I try to create a 1K bytes buffer in the system SRAM,it does not take affect when notification as it does not send data like
before. I think there is no SRAM room for the buffer to allocate so I allocate it in the retention SRAM. Retry the test. The result is some data in my buffer is changed without any sign. When I
remove the algorithm() function or reduce the buffer size to 500bytes,it works well like before. In theory,the system SRAM and retention SRAM will not disturb each other.What's the matter with
my buffer? Any suggestion?Thank you!
BR,
Young
Hi young_dialog,
To be honest i dont understand what you are trying to do or what the problem is, also i dont see how the data in the retention RAM are affected by the sysram. To avoid a reset after disconnection when sending notifications you can either make something like a flow control mechanism or reduce the supervision timeout in order to disconnect before generating extra data and flood you memory.
Thanks MT_dialog