If the interrupt
TRX_IRQ_TRX_UR occurs during a frame transmission, it indicates a frame buffer write access violation. This may happen when a frame buffer write process is started after the transmission was initiated (see
PHY_DATA_REQUEST_PINSTART,
PHY_DATA_REQUEST_REGSTART,
PHY_DATA_REQUEST_TX_ARET) and the
SPI transfer speed is lower than the on-air data rate of the radio transceiver. In this case, the frame buffer read pointer moves beyond the frame buffer write pointer, which is controlled by the
trx_frame_write function. If an
TRX_IRQ_TRX_UR occured, the entire transmit transaction has to be repeated because the transmit data are invalid. If the SPI data rate of the system is generally lower then the on-air data rate of the radio transceiver, the entire frame has to be downloaded before the transmission is initiated.
- Note:
- Even if an TRX_IRQ_TRX_UR occurs during transmission, an TRX_IRQ_TRX_END will be generated. The radio will transmit the actual contents of the frame buffer.
- Code example
If the interrupt
TRX_IRQ_TRX_UR occurs during a frame reception, it indicates a frame buffer read access violation. This may happen during a frame buffer read access if:
- the SPI data rate is higher than the on-air data rate, or
- the computed wait time twait was too short. In this case, the SPI read pointer, which is controlled by the trx_frame_read function, moves beyond the SPI write pointer and the data read from the frame buffer are invalid. The receive transaction is not affected by this interrupt and the frame can be uploaded again.
- Note:
- RX underrun interrupts can be avoided, if the frame buffer empty indicator is used.
- Code example
-