14.2.1.1 State Control

The radio transceiver’s states are controlled by shifting serial digital data using the SPI to write individual commands to the TRX_CMD bits in the TRX_STATE register ( TRX_STATE.TRX_CMD). Change of the transceiver state can also be triggered by driving directly two signal pins: pin 11 (SLP_TR) and pin 8 (/RST). A successful state change can be verified by reading the radio transceiver status from register bits TRX_STATUS (register 0x01, TRX_STATUS).

If TRX_STATUS = 0x1F (STATE_TRANSITION_IN_PROGRESS), the AT86RF212B is in a state transition. Do not try to initiate a further state change while the radio transceiver is in STATE_TRANSITION_IN_PROGRESS.

Pin 11 (SLP_TR) is a multifunctional pin. Dependingon the radio transceiver state, a rising edge of pin 11 (SLP_TR) causes the following state transitions:

  • TRX_OFF ⇨ SLEEP (level sensitive)
  • RX_ON ⇨ RX_ON_NOCLK (level sensitive)
  • PLL_ON ⇨ BUSY_TX

Whereas the falling edge of pin SLP_TR causes the following state transitions:

  • SLEEP ⇨ TRX_OFF (level sensitive)
  • RX_ON_NOCLK ⇨ RX_ON

A low level on pin 8 (/RST) causes a reset of all registers (register bits CLKM_CTRL are shadowed) and forces the radio transceiver into TRX_OFF state. However, if the device was in P_ON state it remains in the P_ON state.

For all states except SLEEP, the state change commands FORCE_TRX_OFF or TRX_OFF lead to a transition into TRX_OFF state. If the radio transceiver is in active receive or transmit states (BUSY_*), the command FORCE_TRX_OFF interrupts these active processes, and forces an immediate transition to TRX_OFF. In contrast a TRX_OFF command is stored until an active state (receiving or transmitting) has been finished. After that the transition to TRX_OFF is performed.

For a fast transition from any non sleep states to PLL_ON state the command FORCE_PLL_ON is provided. Active processes are interrupted. In contrast to FORCE_TRX_OFF, this command does not disable the PLL and the analog voltage regulator (AVREG). It is not available in states P_ON, SLEEP, RESET, and all *_NOCLK states.

The completion of each requested state change shall always be confirmed by reading the TRX_STATUS bits in the TRX_STATUS register (TRX_STATUS.TRX_STATUS).

Note: If FORCE_TRX_OFF and FORCE_PLL_ON commands are used, it is recommended to set pin 11 (SLP_TR) = L before.