PLL Handling

This section describes, how PLL events are handled and how the PLL status is retrieved. A locked PLL is mandatory for any receive or transmit operation. Locking and unlocking of the PLL are signaled with the interrupts TRX_IRQ_PLL_LOCK and TRX_IRQ_PLL_UNLOCK. For a more detailed decription on PLL locking/unlocking conditions refer to section 9.7.5 (PLL Interrupt Handling) of the AT86RF231 datasheet.

If a test of TRX_IRQ_PLL_LOCK is required, the function described in PHY_STATE_TRX_OFF__PLL_ON can be used. In the following the TRX_IRQ_PLL_UNLOCK is described:

PHY_UNLOCK_PLL

If the TRX_IRQ_PLL_UNLOCK interrupt occurs during a frame transmission or reception, this transaction has failed. The higher software layers should handle this error the same way like a normal transmission error. As long as the PLL is unlocked, no transmission and reception of frames is possible.

The unlocking of the PLL is a critical error, if it occurs in one of the [PLL_ACTIVE] states and no TRX_IRQ_PLL_LOCK interrupt follows after a TRX_IRQ_PLL_UNLOCK interrupt within the time tLockCrit.

In this case, the software should try to execute the sequence PHY_STATE_TRX_OFF__PLL_ON in order to force the PLL to lock.

inline_mscgraph_23
Code example
    /* AT86RF231::[PLL_ACTIVE] */
    /* TRX_IRQ_PLL_UNLOCK occurs here */
    handle_unlock();

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