On the EZRadioPro and EZRadio devices the Rx (Receive) state machine can automatically change the device’s state upon three different events:
Let’s have a look at these events and the mechanisms that can make them occur!
RX TIMEOUT: Generally speaking this is an event that signals that there has been no signal detection in the current receive process (i.e., from the time instant the receiver got started / re-started). There are a few mechanism that can provide this signal.
RX VALID: This event simply signals that a packet has been received without a CRC error. Note that if no CRC check is configured in the packet handler, all received packets (albeit erroneous) will be also deemed valid packets.
RX INVALID: This event simply signals that a packet has been received with a CRC error. Note that if no CRC error check is configured in the packet handler, this event will never come about.
Now, in the START_RX command a state can be defined for all above described events (look for arguments RXTIMEOUT_STATE, RXVALID_STATE, RXINVALID_STATE at the START_RX API command) where the automatic state machine will bring the part upon the occurrences of these events.
Let’s go through the typical state transition use cases:
0: NO CHANGE: There will not be any change in the receiver’s state whatsoever. This is the recommended value for the RX TIMEOUT event in normal (i.e., not LDC or PSM) continuous receive mode. One might say the 8: RX_STATE is as good a state transition as no change in such a case. When RX_STATE is selected however, the receiver does get re-started making it blind for a few 100 us while the calibrations are completed. Note also that in automatic frequency hopping Rx application at NO CHANGE the receiver will still hop onto the next channel.
1: SLEEP: This is the recommended value for the RX_TIMEOUT state when in automatic LDC RX mode. The part will be sent back to SLEEP state if no signal is detected in the channel.
3: READY: This state is recommended after a (valid) packet has been received. There are a few advantages of using READY state as opposed to restarting the receiver straight away. (1) The latched RSSI and frequency error measurement values are reset upon entering into RX state therefore if the host FW is not quick enough at reading them they may get lost if automatic RX STATE transition is selected. (2) If the receiver is sent back to RX STATE automatically another packet may be being received while the previous one is being retrieved from the FIFO calling for very careful FIFO handling from the host not to lose parts of packets.
8: RX: This state transition can be used after a (valid/invalid) packet has been received taken above considerations (at READY state) into account.
9: IDLE: This state transition is used by the Preamble Sense Mode (PSM) operation where the receiver is duty cycling in a short term basis. The part will transition into this state of no signal has been detected by the DSA block.
Independently of all above described there is another automatic state machine running in the demodulator while the part is Rx state. (Let’s call this state machine the demodulator state machine and one discussed above the Rx state machine.) It has got three states: (1) Preamble search, (2) Sync word search (3) Packet Receive. Note that the demodulator state machine always gets reset when the Rx state machine transitions into Rx state.
Let’s have a look at the two commonly used packet based receive processes!
All the considerations on the demodulator state machine hold for both the EZRadioPRO and EZRadio devices.