/* AT86RF231::[PLL_ACTIVE] */ trx_bit_write(SR_TRX_CMD, CMD_TRX_OFF); delay(tTRSw); /* AT86RF231::TRX_OFF */ trxstat = trx_bit_read(SR_TRX_STATUS); ASSERT(trxstat==TRX_OFF);
/* AT86RF231::[BUSY] */ trx_bit_write(SR_TRX_CMD, CMD_TRX_OFF); /* TRX_IRQ_TRX_END occurs here */ /* AT86RF231::TRX_OFF */ trxstat = trx_bit_read(SR_TRX_STATUS); ASSERT(trxstat==TRX_OFF);
/* AT86RF231::BUSY_RX_AACK */ trx_bit_write(SR_TRX_CMD, TRX_OFF); delay(tFrame); /* AT86RF231::TRX_OFF */ trxstat = trx_bit_read(SR_TRX_STATUS); ASSERT(trxstat==TRX_OFF);
In order to ensure that the radio transceiver is not in one of the *_NOCLK states, the pin TRX_PIN_SLP_TR is set to LOW before CMD_FORCE_TRX_OFF is written.
/* AT86RF231::[ACTIVE] */ trx_pinset_slptr(0); trx_bit_write(SR_TRX_CMD, CMD_FORCE_TRX_OFF); delay(tTR12); /* AT86RF231::TRX_OFF */ trxstat = trx_bit_read(SR_TRX_STATUS); ASSERT(trxstat==TRX_OFF);
1.5.2