SWCU185G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
A secondary channel advertiser operation is started by a CMD_BLE5_ADV_AUX command. In the command structure, it shall have a pParams parameter of the type defined in Table 26-106 and a pOutput parameter of the type defined in Table 26-110. The operation starts with transmission.
After an AUX_ADV_IND packet is transmitted, the receiver shall be started if the transmitted packet is connectable of scannable. If the transmitted advertising packet is scannable, the receiver shall look for an AUX_CONNECT_REQ message. If the transmitted advertising packet is connectable, the receiver shall look for an AUX_SCAN_REQ message.
An AUX_SCAN_REQ or AUX_CONNECT_REQ message is received into the RX queue given by pParams->pRxQ, as described in Section 26.10.4.1. The bCrcErr and bIgnore bits are set according to the CRC result and the received message. The AdvA field in the message, along with the TxAdd bit of the received header, is compared to the pParams->pDeviceAddress array and pParams->advConfig.deviceAddrType, respectively, to see if the message was addressed to this advertiser. The received ScanA or InitA field, along with the RxAdd bit of the received header, is checked as follows:
Depending on the received packet, the actions taken shall be as given in Table 26-140 and Table 26-141, where the definition of each action (including the value that will be used on bCrcErr and bIgnore) is given in Table 26-142. If pParams->advConfig.bStrictLenFilter is 1, only length fields that are compliant with the Bluetooth low energy specification shall be considered valid. For an AUX_SCAN_REQ packet, it means a length field of 12, and for an AUX_CONNECT_REQ packet, it means a length field of 34. If pParams->advConfig.bStrictLenFilter is 0, all received packets with a length field less than or equal to the maximum length of an advertiser packet (255, but can be overridden) shall be considered valid. If the length is not valid, the receiver shall be stopped.
PDU Type | CRC Result | Directed | Valid Length | AdvA Match | Filter Policy | RPA Mode | Resolvable Private Address | ScanA or InitA Match | Action No. |
---|---|---|---|---|---|---|---|---|---|
AUX_SCAN_REQ | OK | X | Yes | No | X | X | X | X | 1 |
AUX_SCAN_REQ | OK | No | Yes | Yes | 2 or 3 | X | X | No | 1 |
AUX_SCAN_REQ | OK | No | Yes | Yes | 2 or 3 | X | X | Yes | 2 |
AUX_SCAN_REQ | OK | No | Yes | Yes | 0 or 1 | 0 | X | X | 2 |
AUX_SCAN_REQ | OK | No | Yes | Yes | 0 or 1 | 1 | No | X | 2 |
AUX_SCAN_REQ | OK | No | Yes | Yes | 0 or 1 | 1 | Yes | No | 1 |
AUX_SCAN_REQ | OK | No | Yes | Yes | 0 or 1 | 1 | Yes | Yes | 2 |
AUX_SCAN_REQ | OK | Yes | Yes | Yes | X | X | X | No | 1 |
AUX_SCAN_REQ | OK | Yes | Yes | Yes | X | X | X | Yes | 2 |
AUX_SCAN_REQ | NOK | X | Yes | X | X | X | X | X | 3 |
AUX_SCAN_REQ | X | X | No | X | X | X | X | X | 5 |
Other | X | X | X | N/A | X | X | N/A | N/A | 5 |
No packet received | N/A | X | N/A | N/A | X | X | N/A | N/A | 5 |
PDU Type | CRC Result | Directed | Valid Length | AdvA Match | Filter Policy | RPA Mode | Resolvable Private Address | ScanA or InitA Match | Action No. |
---|---|---|---|---|---|---|---|---|---|
AUX_CONNECT_REQ | OK | X | Yes | No | X | X | X | X | 1 |
AUX_CONNECT_REQ | OK | No | Yes | Yes | 2 or 3 | X | X | No | 1 |
AUX_CONNECT_REQ | OK | No | Yes | Yes | 2 or 3 | X | X | Yes | 4 |
AUX_CONNECT_REQ | OK | No | Yes | Yes | 0 or 1 | 0 | X | X | 4 |
AUX_CONNECT_REQ | OK | No | Yes | Yes | 0 or 1 | 1 | No | X | 4 |
AUX_CONNECT_REQ | OK | No | Yes | Yes | 0 or 1 | 1 | Yes | No | 1 |
AUX_CONNECT_REQ | OK | No | Yes | Yes | 0 or 1 | 1 | Yes | Yes | 4 |
AUX_CONNECT_REQ | OK | Yes | Yes | Yes | X | X | X | No | 1 |
AUX_CONNECT_REQ | OK | Yes | Yes | Yes | X | X | X | Yes | 4 |
AUX_CONNECT_REQ | NOK | X | Yes | X | X | X | X | X | 3 |
AUX_CONNECT_REQ | X | X | No | X | X | X | X | X | 5 |
Other | X | X | X | N/A | X | X | N/A | N/A | 5 |
No packet received | N/A | X | N/A | N/A | X | X | N/A | N/A | 5 |
Action No. | bCrcErr | bIgnore | Description |
---|---|---|---|
1 | 0 | 1 | End operation with BLE_DONE_OK status |
2 | 0 | 0 | Transmit AUX_SCAN_RSP message |
3 | 1 | 0 | End operation with BLE_DONE_RXERR status |
4 | 0 | 0 | Transmit AUX_CONNECT_RSP message |
5 | — | — | Stop receiver immediately and end operation with BLE_DONE_NOSYNC status |
If an AUX_SCAN_REQ packet is received with a length of 12 (or less), it shall be viewed as an empty packet. This means that if pParams->rxConfig.bAutoflushEmpty is 1 and bCrcErr and bIgnore are both 0, the packet is removed from the RX buffer. If a packet is flagged by bIgnore or bCrcErr, it may also be removed, based on the bits in pParams->rxConfig.
If the packet being received did not fit in the RX queue, the packet is received to the end, but the received bytes are not stored. If the packet would normally not have been discarded from the RX queue based on the bits in pParams->rxConfig, the command shall end.
If the next action according to Table 26-142 is to transmit an AUX_SCAN_RSP or AUX_CONNECT_RSP message, the radio CPU shall start the transmitter to transmit this packet from the descriptor in pParams->pRspPkt as described in Section 26.8.9.1.
A secondary channel advertiser operation shall end with one of the statuses listed in Table 26-143. The status field of the command structure after the operation is ended indicates the reason why the operation ended. In all cases, a Command_Done interrupt is raised. In each case, the result of TRUE, FALSE, or ABORT is indicated, which will decide the next action.
Condition | Status Code | Result |
---|---|---|
Performed action 1 after running receiver | BLE_DONE_OK | TRUE |
Performed action 2 and transmitted AUX_SCAN_RSP | BLE_DONE_OK | TRUE |
Performed action 3 after running receiver | BLE_DONE_RXERR | TRUE |
Performed action 4 and transmitted AUX_CONNECT_RSP | BLE_DONE_CONNECT | FALSE |
Performed action 5 after running receiver | BLE_DONE_NOSYNC | TRUE |
Observed trigger indicated by pParams->endTrigger, then performed Actions 1, 2, 3, or 5 | BLE_DONE_ENDED | FALSE |
Observed CMD_STOP, then performed Actions 1, 2, 3, or 5 | BLE_DONE_STOPPED | FALSE |
Received CMD_ABORT | BLE_DONE_ABORT | ABORT |
No space in RX buffer to store received packet | BLE_ERROR_RXBUF | FALSE |
Illegal parameter | BLE_ERROR_PAR | ABORT |
Aux pointer target time gives higher Aux Offset than can be represented numerically | BLE_ERROR_AUX | ABORT |