Initialization Utility

RAIL Initialization Utility

This software component can optionally be enabled for applications that need general RAIL initialization and callback support.

This RAIL utility allows setting up specific configuration settings on device boot and provides a way to set up basic RAIL callbacks (found in sl_rail_util_callbacks.c) for application use. These are some of the callbacks available for application-level use:

  • sl_rail_app_on_assert_failed: This callback occurs when a RAIL library-level assertion occurs. This callback occurs regardless of the other configuration options enabled in this software component.
  • sl_rail_app_on_rf_ready: This callback occurs when the call to RAIL_Init completes. The Enable RAIL Initialization configuration option must be enabled to permit this callback.
  • sl_rail_app_on_channel_config_change: This callback occurs when an automatic switch from one channel configuration entry to another is performed internal to the RAIL library. The Setup Channel Configuration on Init configuration option must be enabled to permit this callback.
  • sl_rail_app_on_event: This callback occurs when a configured radio event happens. The radio events capable of causing this callback are identified in RAIL_Events_t. The Enable Setup of Radio Events configuration option must be enabled to permit this callback.

You can use this software component with all options disabled. In this mode, the only enabled configuration is the sl_rail_app_on_assert_failed callback.

Note: Currently, only one instance of this component can be enabled in application code. As a result, for dynamic multiprotocol (DMP) scenarios, this software component can only configure one of the protocols.

Configuration Options

The following configuration options can be changed:

  • Enable/disable RAIL initialization.
    • Enable/disable Bluetooth BLE support. If not using Bluetooth, this option can be disabled to reduce memory usage, but if left enabled, no difference in performance occurs.
    • Enable/disable dynamic multiprotocol (DMP) support. This option allocates memory for use by the radio scheduler incorporated into the multiprotocol RAIL library. This should be left disabled for single protocol RAIL library use, which includes switched multiprotocol (SMP) support.
    • Enable/disable initialization complete callback.
  • Enable/disable a DMA channel for use by RAIL. Allocating a DMA channel to the RAIL library allows for faster switching time between different channel configurations (e.g., protocols) and channel configuration entries (e.g., channels within a protocol) set up for use. If only one channel configuration entry is being used, then there is no benefit to allocating a DMA channel to the RAIL library.
    • Allow for a DMA channel to be selected automatically.
    • If not automatically allocating a DMA channel, identify a specific channel to allocate.
  • Enable/disable channel configuration.
    • Configure a proprietary channel configuration on boot. This specifically involves the use of the channelConfigs array in rail_config.c/h.
    • If using a proprietary channel configuration, specify the channel index for use (i.e., index x of array channelConfigs[x]).
  • Enable/disable calibration configuration.
    • Enable/disable temperature-dependent calibrations (e.g., voltage controlled oscillator calibration).
    • Enable/disable one-time calibrations (e.g., image rejection calibration).
  • Enable/disable auto transition configuration.
    • Configure TX transitions on Success and Failure.
    • Configure RX transitions on Success and Failure.
  • Enable/disable radio callback event configuration.
    • Configure RX events.
    • Configure TX events.
    • Configure protocol-specific events.
    • Configure dynamic multiprotocol-specific events.
    • Configure maintenance events.