14.4.8.5 Interrupt Handling

Two different interrupts indicate the PLL status (refer to the IRQ_STATUS register). IRQ_0 (PLL_LOCK) indicates that the PLL has locked. IRQ_1 (PLL_UNLOCK) interrupt indicates an unexpected unlock condition. A PLL_LOCK interrupt clears any preceding PLL_UNLOCK interrupt automatically and vice versa.

An IRQ_0 (PLL_LOCK) interrupt is supposed to occur in the following situations:

  • State change from TRX_OFF to PLL_ON / RX_ON
  • Frequency setting change in states PLL_ON / RX_ON
  • A manually started center frequency calibration has been completed

All other PLL_LOCK interrupt events indicate that the PLL locked again after a prior unlock happened.

An IRQ_1 (PLL_UNLOCK) interrupt occurs in the following situations:

  • A manually initiated center frequency calibration in states PLL_ON / (RX_ON)
  • Frequency setting change in states PLL_ON / RX_ON

Any other occurrences of IRQ_1 (PLL_UNLOCK) indicate erroneous behavior and require checking of the actual device status.

PLL_LOCK and PLL_UNLOCK affect the behavior of the transceiver:

In states BUSY_TX and BUSY_TX_ARET the transmission is stopped and the transceiver returns into state PLL_ON. During BUSY_RX and BUSY_RX_AACK, the transceiver returns to state RX_ON and RX_AACK_ON, respectively, once the PLL has locked.

Note:
  1. An AT86RF212B interrupt IRQ_0 (PLL_LOCK) clears any preceding IRQ_1 (PLL_UNLOCK) interrupt automatically and vice versa.
  2. The state transition from BUSY_TX / BUSY_TX_ARET to PLL_ON / TX_ARET_ON after successful transmission does not generate an IRQ_0 (PLL_LOCK) within the settling period.