User manual
Bluetooth Low Energy
www.ti.com
Table 23-124. End of Scanner Operation (continued)
Condition Status Code Result
Observed trigger indicated by pParams->timeoutTrigger, then performed Action
BLE_DONE_RXTIMEOUT True
Number1, 2, 3, 4, or 5
Observed trigger indicated by pParams->endTrigger while waiting for sync on
BLE_DONE_ENDED False
ADV*_IND
Observed trigger indicated by pParams->endTrigger, then performed Action Number1,
BLE_DONE_ENDED False
2, 3, 4, or 5
Observed CMD_STOP while waiting for sync on ADV*_IND BLE_DONE_STOPPED False
Observed CMD_STOP, then performed Action Number1, 2, 3, 4, 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 value of channel BLE_ERROR_PAR Abort
Scan request data length field has illegal value BLE_ERROR_PAR Abort
23.6.4.6 Initiator Command
An initiator operation is started by a CMD_BLE_INITIATOR command. In the command structure, it has a
pParams parameter of the type defined in Table 23-92 and a pOutput parameter of the type defined in
Table 23-98. At the start of an initiator operation, the radio CPU waits for the start trigger, then programs
the frequency based on the channel parameter of the command structure. The channel parameter is not
allowed to be in the range 0–36, as these are data channels. The radio CPU sets up the advertising
channel access address and uses the CRC initialization value 0x555555. The whitener is set up as
defined in the whitening parameter. The radio CPU then configures the receiver.
When having tuned to the correct channel, the radio CPU starts listening for an advertising channel
packet. If sync is obtained on the demodulator, the message is received into the RX queue. The header is
checked, and if it is not a connectable advertising packet, reception is stopped and sync search restarted.
The bCrcErr and bIgnore bits are set according to the CRC result and the received message. The
parameter pParams->initConfig.bUseWhiteList determines if the initiator must try to connect to a specific
device or against the white list. If this parameter is 0, the white list is not used, and pParams->pWhiteList
points to a buffer containing only the device address of the device to connect to. The address type of the
peer is given in pParams->advConfig.peerAddrType. Otherwise, pParams->pWhiteList points to a white
list. If the white list is not used, the received AdvA field in the message is checked against the address
found in pParams->pWhiteList, and the TXAdd bit of the received header is checked against pParams-
>initConfig.peerAddrType. If the white list is used, the received AdvA field in the message, along with the
TXAdd bit of the received header is checked against white list as described in Section 23.6.4.9, White List
Processing. For ADV_DIRECT_IND messages, the received InitA field and RXAdd bit are checked against
pParams->deviceAddr and pParams->initConfig.deviceAddrType, respectively. Depending on this, the
actions taken are as given in Table 23-125, where the definition of each action, including the value used
on bCrcErr and bIgnore, is given in Table 23-126. If pParams->initConfig.bStrictLenFilter is 1, only length
fields compliant with the BLE specification are considered valid. For an ADV_DIRECT_IND, valid means a
length field of 12, and for ADV_IND messages it means a length field in the range 6–37. If pParams -
>initConfig.bStrictLenFilter is 0, all received packets with a length field less than or equal to the maximum
length of an advertiser packet (37, if not overridden) are considered valid. If the length is not valid, the
receiver is stopped.
Table 23-125. Actions on Received Packets by Initiator
Action
PDU Type CRC Result AdvA Match InitA Match
Number
ADV_IND OK No N/A 1
ADV_IND OK Yes N/A 2
ADV_IND NOK X N/A 3
ADV_DIRECT_IND OK No X 1
ADV_DIRECT_IND OK Yes No 1
ADV_DIRECT_IND OK Yes Yes 2
1540
Radio SWCU117A–February 2015–Revised March 2015
Submit Documentation Feedback
Copyright © 2015, Texas Instruments Incorporated