![Texas Instruments CC2533 User Manual Download Page 320](http://html.mh-extra.com/html/texas-instruments/cc2533/cc2533_user-manual_1094592320.webp)
Link Layer Engine
If a CRC field is present, it is checked using the polynomial configured in the BSP and the initialization
value from
PRF_CRC_INIT
. The result of the CRC check is written in the MSB of the RES byte in the
status field if a status field is configured. If the CRC is not correct and
PRF_FIFO_CONF.AUTOFLUSH_CRC
is 1, the LLE sends a discard Rx FIFO command to remove the packet from the Rx FIFO.
A packet where the length is equal to the address size contains no payload. Such a packet is known as an
empty packet. If
PRF_FIFO_CONF.AUTOFLUSH_EMPTY
is 1 and an empty packet is received, the LLE
sends a discard Rx FIFO command to remove the empty packet from the Rx FIFO.
Note that if the CRC length is 1 byte, the CRC check is not correct for empty packets if fixed length is
configured or no address bytes are used.
If the Rx FIFO becomes full while receiving a packet, the packet is discarded from the FIFO and no more
bytes are stored in the Rx FIFO, but the packet is received to its end. After that, it is checked whether the
packet would be discarded from the Rx FIFO anyway due to the setting of
PRF_FIFO_CONF
. If so, the
task proceeds as normally. Otherwise, an
RXFIFOFULL
error interrupt is raised in lieu of the normal
interrupt for received packets.
After receiving a packet, the LLE raises an interrupt to the MCU. Depending on CRC result and whether
the packet was empty, the interrupts are generated as shown in
, provided an
RXFIFOFULL
interrupt is not raised as described previously. The table also shows which of the counters among the
RAM registers are to be updated.
Table 25-16. Interrupt and Counter Operation for Received Messages
Payload Length
>
Address
CRC Result
Counter Incremented
Interrupt Raised
Length
OK
No
RXEMPTY
PRF_ADDR_ENTRYn.N_RXOK
OK
Yes
RXOK
PRF_ADDR_ENTRYn.N_RXOK
NOK
No
RXNOK
PRF_ADDR_ENTRYn.N_RXNOK
NOK
Yes
RXNOK
PRF_ADDR_ENTRYn.N_RXNOK
An address entry should not be modified while the receiver is running. In order to modify, stop the
receiver, modify the entry or entries, and restart the receiver.
25.9.2.3.2 Auto Mode
This section describes the receive operation if
PRF_TASK_CONF.MODE
is 10 or 11.
If
PRF_PKT_CONF.ADDR_LEN
is 1, the address byte is compared against
PRF_ADDR_ENTRYn.ADDRESS
,
where n ranges from 0 to 7. It is compared against
PRF_ADDR_ENTRYn.ADDRESS
for the values of n
where the entry is enabled for the received sync word. If there is a matching entry, this entry is used when
receiving the packet, otherwise reception is stopped and the device goes back to sync search. If
PRF_PKT_CONF.ADDR_LEN
is 0, the first entry that is enabled for the received sync word is used.
Next, the 9-bit or 10-bit header is read. If
PRF_ADDR_ENTRYn.CONF.VARLEN
is 1, the length is fetched
from the header and compared against
PRF_ADDR_ENRYn.RXLENGTH
. If it is greater than that value,
reception is stopped and the device goes back to sync search. If
PRF_ADDR_ENTRYn.CONF.VARLEN
is 0,
the length field in the received header is ignored and the packet length is read from
PRF_ADDR_ENTRYn.RXLENGTH
. In both cases, the length is the number of bytes after the header and
before the CRC. The length must be less than or equal to 63 for a 9-bit header and 127 for a 10-bit
header. When a 10-bit header is used, the MCU must ensure that an entire packet can fit in the Rx FIFO
for auto ACK to be possible. This limits the maximum packet size based on the settings in
PRF_FIFO_CONF
.
If reception is stopped due to address mismatch or invalid length, the time-out given by
PRF_SEARCH_TIME
or Timer 2 event 2 still applies. If the first packet of the task is being received and
PRF_TASK_CONF.STOP_CONF
is 11, this still counts as the first packet.
If a CRC field is present, it is checked using the polynomial configured in the BSP and the initialization
value from
PRF_CRC_INIT
. The result of the CRC is written in the MSB of the RES byte in the status field
if a status field is configured. If the CRC is not correct and
PRF_FIFO_CONF.AUTOFLUSH_CRC
is 1, the
LLE sends a discard Rx FIFO command to remove the packet from the Rx FIFO.
320
CC2541 Proprietary Mode Radio
SWRU191C
–
April 2009
–
Revised January 2012
Copyright
©
2009
–
2012, Texas Instruments Incorporated