OTA BLE stack timing issue

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
JoYe_1259141
Level 1
Level 1
First like given Welcome!

I have an application running on the CYBLE-222014-01 that has a BLE notification triggered by an external interrupt ranging from 10Hz to 50Hz.  During each notification event, the device grabs 8 bytes of data from an external device via I2C and transmits it to the host.  The application works every well.  However, with the OTA upgradeable BLE stack integration, I can no longer maintain a stable connection.  The host side, CySmart, will report a connection timeout, while the device side the connection LED will still show a connection.  The external interrupt is still running and being serviced, I can confirm this on the logic analyzer.  The drop event happens a lot faster as the interrupt rate increases.  The strange thing is that all other non BLE related function on my application works just fine.  It seems like just the BLE stack is having issues.  Has anyone experienced anything similar?  Does the BLE stack in the bootloader mode have a different timing specification?  How does one go about tuning such parameter?

Thanks in advance,

John

0 Likes
1 Solution

Hello John,

Please have a look in the datasheet of the BLE component. V3.40 page 532

pastedImage_0.png

There is a known issue in the errate with a combination of DeepSleep and continuous notifications send within a short time frame.

Please test the proposed fix by adding the function call CyBle_SetSlaveLatencyMode(st_ConnectionHandle.bdHandle, 1); to CYBLE_EVT_GAP_DEVICE_CONNECTED inside the BLE event handler.

Unfortunately I am not sure why it should be OTA related.

kind regards,

Achim

View solution in original post

0 Likes
8 Replies