RF Core Data Memory
www.ti.com
The supported FIFO commands are listed in Table 25-2. 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 Table 25-3. 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 Table 25-3.
296
CC2541 Proprietary Mode Radio SWRU191C– April 2009–Revised January 2012
Submit Documentation Feedback
Copyright © 2009–2012, Texas Instruments Incorporated