Texas Instruments CC2650DK Benutzerhandbuch

Seite von 1570
Bluetooth Low Energy
Otherwise, nNack is decremented.
If pParams ->seqStat.nextTXSn was updated and became different from pParams-
>seqStat.lastTXSn after reception of a packet, and pParams->seqStat.bAutoEmpty = 0, the current
TX queue entry is finished and the next one is set as active, and a TX_ENTRY_DONE interrupt is
raised. If pParams->seqStat.bLlCtrlTX = 1, an TX_CTRL_ACK interrupt is raised and pParams-
>seqStat.bLlCtrlAckRX set to 1.
If pParams->seqStat.nextTXSn was updated and became different from pParams-
>seqStat.lastTXSn after reception of a packet, pParams->seqStat.bAutoEmpty is set to 0.
If no buffer is available in the TX queue, or if pParams->seqStat.nextTXSn is equal to pParams-
>seqStat.lastTXSn and pParams->seqStat.bAutoEmpty = 1 when transmission of a packet is to take
place, an automatically empty packet is transmitted. Nothing is read from the TX queue. Otherwise, the
transmitted packet is read from the first entry of the TX queue.
In the header of a transmitted packet, the SN bit is set to the value of pParams->seqStat.nextTXSn,
and the NESN bit is set to the inverse of pParams->seqStat.lastRXSn.
After a packet has been transmitted:
If pParams->seqStat.nextTXSn is equal to pParams->seqStat.lastTXSn, a TX_RETRANS interrupt
is raised.
If pParams->seqStat.nextTXSn is different from pParams->seqStat.lastTXSn after a transmission
and the transmitted packet had LLID = 11b, a TX_Ctrl interrupt is raised.
If pParams->seqStat.nextTXSn is different from pParams->seqStat.lastTXSn after a transmission
and pParams->seqStat.bLlCtrlAckPending = 1, an RX_CTRL_ACK interrupt is raised.
If pParams->seqStat.nextTXSn is different from pParams->seqStat.lastTXSn after a transmission
and pParams->seqStat.bLlCtrlAckRX = 1, a TX_CTRL_ACK_ACK interrupt is raised.
pParams->seqStat.lastTXSn is set to the value of pParams->seqStat.nextTXSn.
pParams->seqStat.bAutoEmpty is set to 1 if the packet was not read from the TX queue, otherwise
to 0.
pParams->seqStat.bLlCtrlTX is set to 1 if the transmitted packet had LLID = 11, otherwise to 0.
pParams->seqStat.firstPkt, pParams ->seqStat.bLlCtrlAckPending, and pParams-
>seqStat.bLlCtrlAckRX is set to 0.
A TX_DONE interrupt is raised.
nPkt is decremented.
When an interrupt is raised as described above, the corresponding counter given in
is
incremented.
In the header of a transmitted packet, the MD bit is set according to the following rules:
If the transmit queue is empty or the packet being transmitted is the last packet of the transmit queue,
MD is 0.
If the trigger described in pParams->endTrigger has occurred, MD is 0.
If the counter nPkt is 1, MD is 0.
Otherwise, MD is 1.
The pOutput structure contains counters, which shall be updated by the radio CPU as explained above
and in
. The radio CPU shall not initialize the fields, so this must be done by the system CPU
when a reset of the counters is desired. In addition to the counters, the following fields shall be set by the
radio CPU:
If a packet is received, lastRssi is set to the RSSI of that packet.
For slave commands, timeStamp shall be set to the time stamp of the start of the first received packet
if any packet is received. bValidTimeStamp shall be set to 0 at the beginning of the operation and to 1
if a packet is received so that timeStamp is written.
For correct operation, the value of pParams->seqStat is the same at the beginning of a command as at
the end of the previous operation of the same connection. The TX queue must also be unmodified
between commands operating on the same connection, except that packets may be appended to the
queue.
1529
SWCU117A – February 2015 – Revised March 2015
Radio
Copyright © 2015, Texas Instruments Incorporated