User manual
www.ti.com
Bluetooth Low Energy
Table 23-125. Actions on Received Packets by Initiator (continued)
Action
PDU Type CRC Result AdvA Match InitA Match
Number
ADV_DIRECT_IND NOK X X 3
ADV*_IND with invalid length X X X 4
Other X N/A N/A 4
Table 23-126. Descriptions of the Actions to Take on Packets Received by Initiator
Action Number bCrcErr bIgnore Description
1 0 1 Continue scanning
2 0 0 Send CONNECT_REQ and end operation
3 1 0 Continue scanning
4 – – Stop receiving packet, then continue scanning
If the packet 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 buffer, the operation
ends.
If the action from the received packet is #2, a CONNECT_REQ packet is transmitted. When transmitting a
CONNECT_REQ, the radio CPU constructs this packet. In the header, the PDU Type bits are 0101b. The
TXAdd bit is as shown in pParams ->initConfig.deviceAddrType. The RXAdd bit is as shown in the TXAdd
field of the header of the received ADV_IND or ADV_DIRECT_IND message. The length is calculated
from the length of the LLData, pParams->connectReqLen + 12. The RFU bits are 0. The payload starts
with the 6-byte device address, read from pParams ->pDeviceAddress, followed by the 6-byte peer
address read from the AdvA field of the received message. The rest of the payload is read from the
pParams->pConnectData buffer. If pParams ->initConfig.bDynamicWinOffset is 1, the radio CPU replaces
the bytes in the WinSize and WinOffset position with a calculated value as explained below. After a
CONNECT_REQ message has been transmitted, the operation ends.
Two triggers to end the operation are set up by pParams->endTrigger/pParams->endTime and pParams-
>timeoutTrigger/pParams->timeoutTime, respectively. If either of these triggers occurs, the radio operation
ends as soon as possible. If these triggers occur while waiting for sync on an ADV*_IND packet, the
operation ends immediately. If they occur at another time, the operation continues until the scan would
otherwise be resumed, and then ends. If the immediate command CMD_STOP is received by the radio
CPU, it has the same meaning as the end trigger occurring, except that the status code after ending is
CMD_DONE_STOPPED. The differences between the two triggers are the status and result at the end of
the operation. Typically, timeoutTrigger is used at the end of a scan window, while endTrigger is used
when scanning is to end entirely.
If pParams->initConfig.bDynamicWinOffset is 1, the radio CPU performs automatic calculation of the
WinSize and WinOffset parameters in the transmitted message. WinSize is byte 7 of the payload, and
WinOffset is byte 8 and 9. The radio CPU finds the possible start times of the first connection event from
the pParams->connectTime parameter and the connection interval, which are given in units of 1.25 ms by
the interval field (byte 10 and 11) from the payload to be transmitted. The possible times of the first
connection event are any whole multiple of connection intervals from pParams->connectTime, which may
be in the past or the future from the start of the initiator command. The radio CPU inserts a WinOffset
parameter in the transmitted CONNECT_REQ, such that the first connection event is signaled to be at the
first connection event that comes sufficiently long enough after the end of the CONNECT_REQ packet to
be transmitted. The radio CPU is set up the transmit window (WinOffset and WinSize) so that there is
margin both between the start of the transmit window and the start of the first master packet, and between
the start of the first master packet and the end of the transmit window. The inserted WinSize is either 1 or
2; ensuring such a margin. The radio CPU writes the calculated values for WinSize and WinOffset into the
corresponding locations in the pParams->pConnectData buffer. The start time of the first connection event
used to transmit the first packet within the signaled transmit window is written back by the radio CPU in
pParams->connectTime. If no connection is made, the radio CPU adds a multiple of connection intervals
to pParams->connectTime, so that it is the first possible time of a connection event after the operation
ended.
1541
SWCU117A–February 2015–Revised March 2015 Radio
Submit Documentation Feedback
Copyright © 2015, Texas Instruments Incorporated