Transitions to State TX_ARET_ON [25]

This section describes how the state TX_ARET_ON is entered. In this state, the radio transceiver is able to do a transaction, which combines the CSMA-CA algorithm, the frame transmission and the acknowledgement check. The state TX_ARET_ON can generally be reached by writing the value CMD_TX_ARET_ON to the sub register SR_TRX_CMD. In case of any pending transmit or receive operation, e.g. if the radio transceiver is in one of the basic operating mode states [BUSY_BASIC], the state TX_ARET_ON is reached after the completion of these transactions.

Note:
It is not recommended to switch directly from one of the states TRX_OFF, RX_AACK_ON or BUSY_RX_AACK to the state TX_ARET_ON. Instead a transition over one of the [PLL_BASIC] states shall be used.
The following state transitions are defined:


PHY_STATE_TRX_OFF__TX_ARET_ON

If the state TX_ARET_ON is requested from the state TRX_OFF, the transition occurs typically within 180 us.
Note:
This state transition is not recommended, because the TRX_IRQ_PLL_LOCK interrupt is internally masked in this case, which means that there is no hardware indication, if the radio transceiver is ready to operate. Instead it is recommended to use a combination of the sequences PHY_STATE_TRX_OFF__PLL_ON or PHY_STATE_TRX_OFF__RX_ON followed by the sequence PHY_STATE_[PLL_BASIC]__TX_ARET_ON.
inline_mscgraph_36
Code example
    trx_bit_write(SR_TRX_CMD, CMD_TX_ARET_ON);
    delay_us(180);
    trxstat = trx_bit_read(SR_TRX_STATUS);
    ASSERT(trxstat==TX_ARET_ON);

PHY_STATE_[PLL_BASIC]__TX_ARET_ON

If the state TX_ARET_ON is requested from one of the [PLL_BASIC] states, the transition occurs within 1us, because the PLL does not need to relock.

inline_mscgraph_37
Code example
    trx_bit_write(SR_TRX_CMD, CMD_TX_ARET_ON);
    delay_us(1);
    trxstat = trx_bit_read(SR_TRX_STATUS);
    ASSERT(trxstat==TX_ARET_ON);

PHY_STATE_[BUSY_BASIC]__TX_ARET_ON

If the command CMD_TX_ARET_ON is written to the sub register SR_TRX_CMD, while the radio transceiver is in one of the [BUSY_BASIC] states, the ongoing transmit or receive transaction is completed and the state change to TX_ARET_ON occurs 1 us after the TRX_IRQ_TRX_END interrupt.
Note:
It is allowed to write CMD_TX_ARET_ON in state BUSY_TX_ARET. However, this is a trivial command, since the radio transceiver will automatically return to TX_ARET_ON after the frame reception is completed.
inline_mscgraph_38
Code example
    trx_bit_write(SR_TRX_CMD, CMD_TX_ARET_ON);
    /* TRX_IRQ_TRX_END occurs here */
    delay_us(1);
    trxstat = trx_bit_read(SR_TRX_STATUS);
    ASSERT(trxstat==TX_ARET_ON);

Generated on Fri Aug 10 16:10:04 2007 for SWPM AT86RF230 Rev. A by  doxygen 1.5.2