CC2430_CC2431
SWRZ021 Page 3 of 4
// Record the number of bytes in the RX FIFO before the strobe
rxfifocntBefore = RXFIFOCNT;
RFST = ISRFOFF; // or SRXON
// There is a short delay from the strobe until RXFIFOCNT has been updated.
... Wait for 0.75 us or more ...
// If RXFIFOCNT changed during the last operation, it is very
// likely that the bug has occurred
if (RXFIFOCNT != rxfifocntBefore) {
// Flush twice, as described in the data sheet
SFLUSHRX();
SFLUSHRX();
// Software clean-up
... Reset software for frame reception, and abort DMA if necessary ...
}
STXON
A CCA check will always fail during the critical period, from a frame is rejected until it is
completely removed. The bug will never occur when CCA is checked immediately (less
than the time it takes to receive one byte) before STXON.
For transmission without CCA checking, the receiver must be turned off before STXON
is strobed from software, or before the CSP program (containing STXON) is started. Use
the procedure described above when strobing SRFOFF to disable the receiver.
Note:
• SRXON and SRFOFF cannot be used safely in a CSP program to reduce power
consumption during CSMA-CA unless all data received during this period is
discarded manually by software. However, if SRXON and SRFOFF are used during
CSMA-CA, it is probably not expected to receive that much data anyway.
• When flushing the RX FIFO, received frames still to be read out will be lost. There is
also a chance that the lost frames may already have been acknowledged. The effect
is that the transmitter gets a false acknowledgment in return, but this is likely to
happen sooner or later anyway (the only thing that separates one acknowledgment
frame from another is the 8-bit sequence number).
1.3 Batches Affected
This bug affects all batches and revisions of the chip.