SIXG3XX-specific interrupt sources.

Below are the interrupt handlers implemented within the RAIL library for the Series 3 Wireless Platform. See EFR32 for more details about interrupt initialization and priorities. For more information about the interrupt vectors and where they are on your specific chip, see the startup_sixg3xx.c file for your chip. These can be found under the Device/SiliconLabs folder in your release.

Warnings

Public Functions#

void

RAIL interrupt handler for the SYSMBLPW0CPU interrupt source.

void

RAIL interrupt handler for the SEQACC interrupt source.

void

RAIL interrupt handler for the high-priority FRC_PRI interrupt source.

void

RAIL interrupt handler for the normal-priority FRC interrupt source.

void

RAIL interrupt handler for the MODEM interrupt source.

void

RAIL interrupt handler for the SEQ interrupt source.

void

RAIL interrupt handler for the RAC_RSM interrupt source.

void

RAIL interrupt handler for the BUFC interrupt source.

void

RAIL interrupt handler for the AGC interrupt source.

void

RAIL interrupt handler for the PROTIMER interrupt source.

void

RAIL interrupt handler for the SYNTH interrupt source.

void

RAIL interrupt handler for the RFECA0 interrupt source.

void

RAIL interrupt handler for the RFECA1 interrupt source.

void

RAIL interrupt handler for the RFTIMER interrupt source.

void

RAIL interrupt handler for the SYSRTC SEQ interrupt source.

void

RAIL interrupt handler for the EMUDG interrupt source.

Public Function Documentation#

SYSMBLPW0CPU_IRQHandler#

void sl_rail_sixg3xx_interrupts::SYSMBLPW0CPU_IRQHandler (void )

RAIL interrupt handler for the SYSMBLPW0CPU interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This interrupt is triggered by the mailbox mechanism to facilitate communication and coordination with the LPW0 subsystem. It handles events and messages exchanged between the main MCU and the LPW0 subsystem, ensuring proper synchronization and operation.

Note

  • The specific events handled by this interrupt depend on the configuration of the mailbox and the LPW0 subsystem.


SEQACC_IRQHandler#

void sl_rail_sixg3xx_interrupts::SEQACC_IRQHandler (void )

RAIL interrupt handler for the SEQACC interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This interrupt handles sequencer accelerator access-related events, such as PHY configuration, aborts, errors, and bus errors. It ensures proper handling of sequencer operations and transitions the system to appropriate states based on the events received.

  • If the PHY configuration sequence completes successfully, the system transitions to the idle state.

  • If an error occurs during the PHY loading sequence (e.g., abort, sequencer error, or bus error), the system transitions to the uninitialized state.

The interrupt flags are cleared after processing to ensure proper operation of subsequent events.


FRC_PRI_IRQHandler#

void sl_rail_sixg3xx_interrupts::FRC_PRI_IRQHandler (void )

RAIL interrupt handler for the high-priority FRC_PRI interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Note

  • The interrupt vector should still point to the RAIL interrupt handler for compatibility with future RAIL releases.


FRC_IRQHandler#

void sl_rail_sixg3xx_interrupts::FRC_IRQHandler (void )

RAIL interrupt handler for the normal-priority FRC interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This source handles packet completion events for the transmit side. The receive side events are queued and processed in the BUFC_IRQHandler. The following events are currently in use:


MODEM_IRQHandler#

void sl_rail_sixg3xx_interrupts::MODEM_IRQHandler (void )

RAIL interrupt handler for the MODEM interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This source handles demodulator and modulator status and error events. The following events are currently in use:


RAC_SEQ_IRQHandler#

void sl_rail_sixg3xx_interrupts::RAC_SEQ_IRQHandler (void )

RAIL interrupt handler for the SEQ interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This source handles interrupts generated from the radio sequencer. The following events are currently in use:


RAC_RSM_IRQHandler#

void sl_rail_sixg3xx_interrupts::RAC_RSM_IRQHandler (void )

RAIL interrupt handler for the RAC_RSM interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This source handles interrupts generated from the radio state machine. The following events are currently in use:

  • Radio State Changed

    • Enabled in some debug modes.


BUFC_IRQHandler#

void sl_rail_sixg3xx_interrupts::BUFC_IRQHandler (void )

RAIL interrupt handler for the BUFC interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This source handles interrupts generated from the radio buffer controller. The following events are currently in use:

  • RX Buffer Threshold

  • RX Buffer Underflow

    • This event cannot be disabled and indicates that too much data was read from the RX buffer. It should not occur in normal operation as all receive APIs protect against it.

  • RX Buffer Corruption

    • This event cannot be disabled and indicates the pointers in the RX buffer have become corrupt. This event should not occur in normal operation.

  • TX Buffer Threshold

  • TX Buffer Overflow

    • This event cannot be disabled and indicates too much data was placed into the TX buffer. This event should not occur in normal operation as all transmit APIs protect against it.

  • TX Buffer Underflow

    • This event cannot be disabled and occurs when the transmit FIFO runs out of bytes before the end of the packet. This event will always perform any necessary cleanup and will call the events_callback if SL_RAIL_EVENT_TX_UNDERFLOW is enabled.

  • TX Buffer Corruption

    • This event cannot be disabled and indicates the pointers in the TX buffer have become corrupt. This event should not occur in normal operation.

  • RX Entry Buffer Threshold

  • RX Entry Buffer Underflow

    • This event cannot be disabled and indicates that too much data was read from the RX entry buffer. This event should not occur in normal operation.

  • RX Entry Buffer Overflow

    • This event cannot be disabled and will fire one time if the RX entry buffer overflows. It will cause the SL_RAIL_EVENT_RX_FIFO_OVERFLOW event to happen later after all valid entries are processed in the RX entry buffer.

  • RX Entry Buffer Corruption

    • This event cannot be disabled and indicates the pointers in the RX entry buffer have become corrupt. This event should not occur in normal operation.


AGC_IRQHandler#

void sl_rail_sixg3xx_interrupts::AGC_IRQHandler (void )

RAIL interrupt handler for the AGC interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This source handles interrupts generated from the automatic gain control block. The following events are currently in use:


PROTIMER_IRQHandler#

void sl_rail_sixg3xx_interrupts::PROTIMER_IRQHandler (void )

RAIL interrupt handler for the PROTIMER interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This source handles interrupts generated from the RAIL timebase (PROTIMER). The following events are currently in use:

  • Scheduled TX/RX

    • This event cannot be disabled and occurs when a scheduled transmit or receive begins.

  • RX scheduled window end timeout

    • This event cannot be disabled and occurs when the scheduled receive window ends and the radio exits receive. This event will call the events_callback if SL_RAIL_EVENT_RX_SCHEDULED_RX_END is enabled.

  • Transmit with CCA Failed

    • This event cannot be disabled and occurs when CCA indicates the channel is busy. This event will call the events_callback if SL_RAIL_EVENT_TX_CHANNEL_BUSY is enabled.

  • Transmit with CCA Success

    • This event cannot be disabled and occurs when CCA indicates the channel is clear and the packet will be transmitted. This event will call the events_callback if SL_RAIL_EVENT_TX_CHANNEL_CLEAR is enabled.

  • Starting a CCA check

  • CCA Check Activated

  • CCA Retry

  • RAIL Timer

    • This event is enabled by sl_rail_set_timer() and will call the provided callback when the timer expires.


SYNTH_IRQHandler#

void sl_rail_sixg3xx_interrupts::SYNTH_IRQHandler (void )

RAIL interrupt handler for the SYNTH interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This source handles interrupts generated from the synth module. The following events are currently in use:

  • Radio Sequencer Handshake

    • This event is used to keep the main core awake during some radio operations.


RFECA0_IRQHandler#

void sl_rail_sixg3xx_interrupts::RFECA0_IRQHandler (void )

RAIL interrupt handler for the RFECA0 interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This source handles interrupts from the RFECA which is used for debug and some internal RAIL features. Currently no interrupt sources from this module are enabled

Note

  • The interrupt vector should still point to the RAIL interrupt handler for compatibility with future RAIL releases.


RFECA1_IRQHandler#

void sl_rail_sixg3xx_interrupts::RFECA1_IRQHandler (void )

RAIL interrupt handler for the RFECA1 interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This source handles interrupts from the RFECA which is used for debug and some internal RAIL features. Currently no interrupt sources from this module are enabled

Note

  • The interrupt vector should still point to the RAIL interrupt handler for compatibility with future RAIL releases.


RFTIMER_IRQHandler#

void sl_rail_sixg3xx_interrupts::RFTIMER_IRQHandler (void )

RAIL interrupt handler for the RFTIMER interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This source handles interrupts from the RFTIMER module which is used for debug and some internal RAIL features. Currently no interrupt sources from this module are enabled

Note

  • The interrupt vector should still point to the RAIL interrupt handler for compatibility with future RAIL releases.


SYSRTC_SEQ_IRQHandler#

void sl_rail_sixg3xx_interrupts::SYSRTC_SEQ_IRQHandler (void )

RAIL interrupt handler for the SYSRTC SEQ interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

The following events are currently in use:

  • SYSRTC compare channel

    • This event is enabled by the rail_power_manager and is only used during rail timebase synchronization after sleep.


EMUDG_IRQHandler#

void sl_rail_sixg3xx_interrupts::EMUDG_IRQHandler (void )

RAIL interrupt handler for the EMUDG interrupt source.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This source handles multiple features based on temperature such as:

This source is currently not used on the SIXG301 device family.