Hi,
We are using the CC2541 as a Peripheral Device.
Our Connection Interval Params are as below:
Conn Interval Min = 7.5 ms
Conn Interval Max = 12.5 ms
Slave Latency = 0
Supervision Timeout = 10 seconds
We have set the "enable automatic parameter update request when a connection is formed" to TRUE.
The issue that we are seeing is when we connect to Central Device, the Central Device sends Connection Parameter Update Request to 11.25 ms i.e. value is set as 9 (9 * 1.25ms = 11.25ms). But we get the Connection Events from the BLE Stack at every 50ms.
Our BLE Stack version is 1.4.0 (BLE-CC254x-1.4.0).
To confirm the above we did the below mentioned code changes:
We referred the SensorTag Sample Project and we have added code to detect:
Connection Events from the Stack
Connection Parameter Request Updates from the Stack
How we have measured the Connection Events from the BLE Stack is by the below code :
HCI_EXT_ConnEventNoticeCmd(AppTaskID, CONN_EVENT_COMPLETE_EVT);
Also we have registered the Connection Parameter Update Request callback in our Application Task Init function:
VOID GAPRole_RegisterAppCBs( ¶mUpdateCB );
So when we get the Connection Event, we process the CONN_EVENT_COMPLETE_EVT and we take the difference between two consecutive connection events, so that we know what exactly is the Connection Event followed by our BLE Controller.
Also when we get the Connection Parameter Update Request from Central Device, we are logging the new Connection Interval Max sent by the Central Device.
What we observed is that, the Central Device sends the Connection Parameter Update Request with value of 9 (9 * 1.25ms = 11.25ms), but the difference between the two consecutive Connection Events from the stack is 50ms.
So is there a bug in the Stack that the new Connection Interval is not honored or are we missing anything.
Thanks,
Sunny