Hello,
We're switching from simplelink_cc2640r2_sdk_1_30_00_25 to simplelink_cc2640r2_sdk_3_30_00_20. Using the previous stack when there was a simultaneous transfer from central and peripheral we were getting faulty data from the stack so we couldn't recognize the higher layer message and simply didn't handle it (but on the air it looked OK). On the newer stack we get faults that are visible on the air. Not every connection event with simultaneous transfer causes issues but when an issue happens it is usually soon after such connection event. And that gets in a way when sending larger amounts of data.
I'm attaching 2 capture files sniffed from air with bookmarks:
- New_stack_disconnection_1.cfa: bookmarks mark beginning of sending of our protocol packets with a sequence number (hence 'AA', 'AB', 'AC' in this log). Issue is visible between frame 32661 and 32665 (first advertising frame after 2s of silence). In this case stack on central reported that disconnection happened because of LL_STATUS_ERROR_CONN_TERM_DUE_TO_MIC_FAILURE (value from ll.h, via GAP_LINK_TERMINATED_EVENT).
- New_stack_retry.cfa: only 2 bookmarks marking start of 'CA' message confirmation and a frame decoded as slave but being in master’s place and carrying data from master. Starting with frame 67398 master is resending same chunk for 2 seconds. In this case disconnection reason was reported as LL_STATUS_ERROR_CONNECTION_TIMEOUT
Is this something I can avoid by configuring the connection in a different way?
Plus we don't have this issue when we wait with sending the confirmation from peripheral util we stop receiving data from central (so when only one side is transferring data at one time).
Best regards,
Attila Szilagyi