Transitions to State RX_ON

This section describes how the state RX_ON is entered. In this state the receiver tries to detect IEEE 802.15.4 synchronization headers (SHR) on the configured RF channel. The state RX_ON can generally be entered by writing the value CMD_RX_ON to the sub register SR_TRX_CMD. The following state transitions are defined:


PHY_STATE_TRX_OFF__RX_ON

If the state RX_ON is requested from the state TRX_OFF, the PLL needs up to tTR6 to lock to the configured channel. The radio transceiver is only able to receive after the TRX_IRQ_PLL_LOCK occured.

inline_mscgraph_43
Code example
    /* AT86RF212::TRX_OFF */
    trx_bit_write(SR_TRX_CMD, CMD_RX_ON);
    delay(tTR6);
    /* AT86RF212::RX_ON */
    trxstat = trx_bit_read(SR_TRX_STATUS);
    ASSERT(trxstat==RX_ON);

PHY_STATE_PLL_ON__RX_ON

If the state RX_ON is requested from state PLL_ON, the transition occurs within tTR8.

inline_mscgraph_44
Code example
    /* AT86RF212::PLL_ON */
    trx_bit_write(SR_TRX_CMD, CMD_RX_ON);
    delay(tTR8);
    /* AT86RF212::RX_ON */
    trxstat = trx_bit_read(SR_TRX_STATUS);
    ASSERT(trxstat==RX_ON);

PHY_STATE_BUSY_TX__RX_ON

If the command CMD_RX_ON is written to the sub register SR_TRX_CMD and the radio transceiver is in the BUSY_TX state, the ongoing transmit transaction is completed and the state change to RX_ON occurs right after the TRX_IRQ_TRX_END interrupt.

inline_mscgraph_45
Code example
    /* AT86RF212::BUSY_TX */
    trx_bit_write(SR_TRX_CMD, CMD_RX_ON);
    /* TRX_IRQ_TRX_END occurs here */
    /* AT86RF212::RX_ON */
    trxstat = trx_bit_read(SR_TRX_STATUS);
    ASSERT(trxstat==RX_ON);

Generated on Mon Aug 17 13:35:00 2009 for SWPM AT86RF212 by  doxygen 1.5.6