User manual

www.ti.com
Bluetooth Low Energy
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 can be used at the end of a scan window, while endTrigger can be
used when scanning is to end entirely.
The output structure pOutput contains fields which give information on the command being run. The radio
CPU does not initialize the fields, so this must be done by the system CPU when a reset of the counters is
desired. The fields are updated by the radio CPU as described below. The list also indicates when
interrupts are raised in the system CPU.
If a SCAN_REQ packet has been transmitted, nTXScanReq is incremented and a TX_DONE interrupt
is raised.
If a SCAN_REQ is not transmitted due to the backoff procedure, nBackedOffScanReq is incremented.
If an ADV*_IND packet is received with CRC OK and the bIgnore flag cleared, nRXAdvOk is
incremented, an RX_OK interrupt is raised, and timeStamp is set to a timestamp of the start of the
packet.
If an ADV*_IND packet is received with CRC OK and the bIgnore flag set, nRXAdvIgnored is
incremented and an RX_IGNORED interrupt is raised.
If an ADV*_IND packet is received with CRC error, nRXAdvNok is incremented and an RX_NOK
interrupt is raised.
If an ADV*_IND packet is received and did not fit in the RX queue, nRXAdvBufFull is incremented and
an RX_BUF_FULL interrupt is raised.
If a SCAN_RSP packet is received with CRC OK and the bIgnore flag cleared, nRXScanRspOk is
incremented and an RX_OK interrupt is raised.
If a SCAN_RSP packet is received with CRC OK and the bIgnore flag set, nRXScanRspIgnored is
incremented and an RX_IGNORED interrupt is raised.
If a SCAN_RSP packet is received with CRC error, nRXScanRspNok is incremented and an RX_NOK
interrupt is raised.
If a SCAN_RSP packet is received and did not fit in the RX queue, nRXScanRspBufFull is incremented
and an RX_BUF_FULL interrupt is raised.
If a packet is received, lastRssi is set to the RSSI of that packet.
If the first RX data entry in the RX queue changed state to Finished after a packet was received, an
RX_ENTRY_DONE interrupt is raised.
A scanner operation ends with one of the statuses listed in Table 23-124. 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, it is indicated if the result is True, False, or Abort,
which decides the next action.
Table 23-124. End of Scanner Operation
Condition Status Code Result
Performed Action Number2 with pParams->scanConfig.bEndOnRpt = 1 BLE_DONE_OK True
Performed Action Number3 with pParams->scanConfig.bEndOnRpt = 1 and did not
BLE_DONE_OK True
send SCAN_REQ due to backoff
Performed Action Number3 with pParams->scanConfig.bEndOnRpt = 1, sent
BLE_DONE_OK True
SCAN_REQ and received SCAN_RSP with bCrcErr = 0 and bIgnore = 0
Performed Action Number3 with pParams->scanConfig.bEndOnRpt = 1, sent
BLE_DONE_RXERR True
SCAN_REQ and received SCAN_RSP with bCrcErr = 1 or bIgnore = 1
Performed Action Number3 with pParams->scanConfig.bEndOnRpt = 1, sent
BLE_DONE_NOSYNC True
SCAN_REQ, but did not get sync or found wrong packet type or invalid length
Observed trigger indicated by pParams->timeoutTrigger while waiting for sync on
BLE_DONE_RXTIMEOUT True
ADV*_IND
1539
SWCU117AFebruary 2015Revised March 2015 Radio
Submit Documentation Feedback
Copyright © 2015, Texas Instruments Incorporated