Reset

Use Cases:

State Machine Reset

This command sequence is executed in order to reset the state machine of the radio transceiver to state TRX_OFF. With this procedure any transaction in progress (e.g. if the radio transceiver is in one of the [BUSY] states) is canceled immediately.

All other register values (channel, power, ...) of the radio transceiver will not be affected by this procedure.

The state machine reset is identical to the procedure described in PHY_FORCE_[ACTIVE]__TRX_OFF.

Note:
Alternatively, it is possible to use CMD_FORCE_PLL_ON as described in PHY_FORCE_[ACTIVE]__PLL_ON. In contrast to CMD_FORCE_TRX_OFF this command does not disable the PLL and the analog voltage regulator AVREG.

Power-On Reset

This command sequence is executed in order to bring the radio transceiver to the basic state TRX_OFF after power on. Nevertheless, this sequence can safely be executed from any state.

After the reset, the Awake Interrupt is enabled. After writing CMD_TRX_OFF, the Awake Interrupt will indicate that the radio transceiver has reached the state TRX_OFF. If desired a radio transceiver identification process can be initiated as described in section Identification.

Note:
It is recommended but not mandatory to use the Awake Interrupt. Instead, a timer can be used to wait until state TRX_OFF is reached.
inline_mscgraph_4
Code example
    /* AT86RF231::P_ON */
    delay(tTR1);
    trx_pinset_reset(0);
    trx_pinset_slptr(0);
    delay(t10);
    trx_pinset_reset(1);
    trx_reg_write(RG_IRQ_MASK, TRX_IRQ_AWAKE_END);
    trx_bit_write(SR_TRX_CMD, CMD_TRX_OFF);
    delay(tTR17);
    /* AT86RF231::TRX_OFF */
    state = trx_bit_read(SR_TRX_STATUS);
    ASSERT(state==TRX_OFF);

Reset

This command sequence is executed to do a radio transceiver reset, where all registers gets initialized with their default values. It is assumed, that the radio transceiver is in one of the [ACTIVE] states.

Because the interrupt TRX_IRQ_AWAKE_END is disabled after reset, it needs to be explicitely enabled by writing the RG_IRQ_MASK register.

Note:
It is recommended but not mandatory using the Awake Interrupt. Instead, a timer can be used to wait until state TRX_OFF is reached.
This routine will be used to bring the radio transceiver into a known state in case of a fatal error.

inline_mscgraph_5
Code example
    /* AT86RF231::[ACTIVE] */
    trx_pinset_reset(0);
    trx_pinset_slptr(0);
    delay(t10);
    trx_pinset_reset(1);
    trx_reg_write(RG_IRQ_MASK, TRX_IRQ_AWAKE_END);
    delay(tTR13);
    /* AT86RF231::TRX_OFF */
    state = trx_bit_read(SR_TRX_STATUS);
    ASSERT(state==TRX_OFF);

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