RF Core Data Memory
The supported FIFO commands are listed in
. A command in the range of 0x80
–
0xFF that does
not match any of the listed commands is ignored.
Table 25-2. Commands to FIFO via
RFST
Register
Number
Command Name
Description
0x81
CMD_RXFIFO_RESET
Reset (empty) Rx FIFO. Set
RFRXF
* := 0
0x82
CMD_RXFIFO_DEALLOC
Deallocate Rx FIFO. This sets
RFRXFSRP
:=
RFRXFRP
.
0x83
CMD_RXFIFO_RETRY
Retry Rx FIFO. This sets
RFRXFRP
:=
RFRXFSRP
0x84
CMD_RXFIFO_DISCARD
Discard Rx FIFO. This sets
RFRXFWP
:=
RFRXFSWP
0x85
CMD_RXFIFO_COMMIT
Commit Rx FIFO. This sets
RFRXFSWP
:=
RFRXFWP
0x91
CMD_TXFIFO_RESET
Reset (empty) Tx FIFO. Set
RFRXF
* := 0
0x92
CMD_TXFIFO_DEALLOC
Deallocate Tx FIFO. This sets
RFTXFSRP
:=
RFTXFRP
.
0x93
CMD_TXFIFO_RETRY
Retry Tx FIFO. This sets
RFTXFRP
:=
RFTXFSRP
0x94
CMD_TXFIFO_DISCARD
Discard Tx FIFO. This sets
RFTXFWP
:=
RFTXFSWP
0x95
CMD_TXFIFO_COMMIT
Commit Tx FIFO. This sets
RFTXFSWP
:=
RFTXFWP
0xF1
CMD_FIFO_RESET
Reset both FIFOs
0xF2
CMD_FIFO_DEALLOC
Deallocate both FIFOs
0xF3
CMD_FIFO_RETRY
Retry both FIFOs
0xF4
CMD_FIFO_DISCARD
Discard both FIFOs
0xF5
CMD_FIFO_COMMIT
Commit both FIFOs
25.3.1.3 FIFO Pointer Operations
The FIFO pointers can be accessed directly through registers
RFFRXFWP
,
RFFRXFRP
,
RFFRXFSWP
,
RFFRXFSRP
,
RFFTXFWP
,
RFFTXFRP
,
RFFTXFSWP
, and
RFFTXFSRP
.
Because the placement of the pointers may be the same for an empty and a full FIFO, there are internal
states distinguishing between these situations. This means that while any value can be written to the
pointer registers, certain rules must be observed for the FIFO to function reliably after the pointer write.
Any writes to a pointer must be considered to move that pointer up. Hence, writing N to a pointer already
holding N is considered equivalent to moving that pointer up 128 places, writing N-1 is equivalent to
moving the pointer up 127 places, and so on.
The pointers must maintain a specific ordering: (Going from lowest position to highest) SRP, RP, SWP,
WP.
A lower pointer may be moved up to but not past a higher pointer, whereas the highest pointer (WP) may
be moved down to, but not past the lower.
25.3.1.4 Cooperation With LLE
The LLE performs FIFO operations as part of its operation. In order to avoid conflicts between the LLE
and the MCU, access to FIFO registers should be done according to
. Read accesses can
always be made, except for the data-read registers, which causes the read pointers to be modified. If the
MCU reads a register, one must take into account that the value may change at any time due to accesses
from the LLE. The reset FIFO commands should only be run by the MCU between LLE tasks. They are
marked with an asterisk in
.
296
CC2541 Proprietary Mode Radio
SWRU191C
–
April 2009
–
Revised January 2012
Copyright
©
2009
–
2012, Texas Instruments Incorporated