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, frame (re)transmission(s) and the acknowledgement check. In case of missing acknowledgments, automatic retransmissions will be carried out. 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 from any other state then PLL_ON or BUSY_TX to the state TX_ARET_ON.
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_ON__TX_ARET_ON.
inline_mscgraph_35
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_ON__TX_ARET_ON

If the state TX_ARET_ON is requested from the PLL_ON state, the transition occurs within 1us, because the PLL does not need to relock.

inline_mscgraph_36
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_TX__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 the BUSY_TX state, the ongoing transmit operation is completed and the state change to TX_ARET_ON occurs 1 us after the TRX_IRQ_TRX_END interrupt.

inline_mscgraph_37
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 Sep 28 14:07:36 2007 for SWPM AT86RF230 Rev. B by  doxygen 1.5.2