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_35
Code example
    /* AT86RF231::TRX_OFF */
    trx_bit_write(SR_TRX_CMD, CMD_RX_ON);
    delay(tTR6);
    /* AT86RF231::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_36
Code example
    /* AT86RF231::PLL_ON */
    trx_bit_write(SR_TRX_CMD, CMD_RX_ON);
    delay(tTR8);
    /* AT86RF231::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_37
Code example
    /* AT86RF231::BUSY_TX */
    trx_bit_write(SR_TRX_CMD, CMD_RX_ON);
    /* TRX_IRQ_TRX_END occurs here */
    /* AT86RF231::RX_ON */
    trxstat = trx_bit_read(SR_TRX_STATUS);
    ASSERT(trxstat==RX_ON);

Generated on Mon Jan 12 18:32:16 2009 for SWPM AT86RF231 by  doxygen 1.5.2