In the BLE transfer bottleneck? thread, it is suggested that one needs to call "GAPCentralRole_UpdateLink(BLEConnHandle,5,5,0,1000);" to set up the lowest latency communication.
However, I am using the CC254X in network processor mode and I don't have access to that API call. Looking for similar interface in the TI_BLE_Vendor_Specific_HCI_Guide, I have found GAP_UpdateLinkParamReq and L2CAP_ConnParamUpdateReq. I got them to "work" but they don't behave as expected.
Reading the manual, it seems that GAP_UpdateLinkParamReq should be called on the central. When I call it, it returns failure status and no more information.
If I call L2CAP_ConnParamUpdateReq on the device, I get a L2CAP_ConnParamUpdateRsp with status "Connection Parameters rejected", but then I get on both central and device a GAP_LinkParamUpdate message, containing the latency setting that I've just selected! And they clearly are changed, since I can send data at lower latency.
What is going on here, is the manual incorrect or the 1.3 firmware?
Also, the Bluetooth spec mentions that the lowest latency is 7.5 ms but the manual states that the range for the "intervalMin" and "intervalMax" is 6 to 3200, which would indicate a lowest bound of 9 ms. Edited, the multiplication factor is 1.25ms not 1.5ms.