BLE slot allocation error
I read in this document about the concept of BLE slot allocation. I experimented with 5 STM32WB boards, one as master the four as slaves), and encountered an error I didn't understand.
The master issued `aci_gap_create_connection` to each of the four slaves with the following parameters:
- Common parameters:
- LE_Scan_Interval: 96 (which means 96 * 0.625 = 60 ms)
- LE_Scan_Window: 96 (same as above)
- Conn_Interval_Min: 48 (48 * 1.25 = 60 ms)
- Conn_Interval_Max: 48 (same as above)
- Conn_Latency: 0
- Slave1:
- Minimum_CE_Length: 0
- Maximum_CE_Length: 0
- Slave2:
- Minimum_CE_Length: 14 (14 * 0.625 = 8.75 ms)
- Maximum_CE_Length: 14
- Slave3:
- Minimum_CE_Length: 28 (28 * 0.625 = 17.5 ms)
- Maximum_CE_Length: 28
- Slave4:
- Minimum_CE_Length: 43 (43 * 0.625 = 26.875 ms)
- Maximum_CE_Length: 43
If I understand the document correctly, the first connection (to slave1) will make the anchor period 60 ms, and the subsequent connections won't change that as Conn_Interval_Min and Conn_Interval_Max are the same for all connections.
All four connections should fit in a single anchor period and the master connections with them for 0, 8.75, 17.5, 26.875 ms, respectively, every 60ms.
However, when the master tries to connection with slave4 (after successfully connecting with salve 1~3), it receives error code 0x86, which is BLE_STATUS_LENGTH_FAILED. I don't understand why the error occurs as the parameters seem to be legitimate. Please help!
