Modules#

RAILSched_Config_t

RAIL_Config_t

RAIL_AntennaConfig_t

RAIL_ChannelConfigEntryAttr

RAIL_DirectModeConfig_t

RAIL_TxPowerConfig_t

RAIL_PtiConfig_t

This file contains the type definitions for efr32xg1x chip-specific aspects of RAIL.

License#

Copyright 2020 Silicon Laboratories Inc. www.silabs.com

SPDX-License-Identifier: Zlib

The licensor of this software is Silicon Laboratories Inc.

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

  3. This notice may not be removed or altered from any source distribution.

Macros#

#define

Include guard.

#define
RAIL_ENUM (name)

The RAIL library does not use enumerations because the ARM EABI leaves their size ambiguous, which causes problems if the application is built with different flags than the library.

#define
RAIL_ENUM_GENERIC (name, type)

This macro is a more generic version of the RAIL_ENUM() macro that allows the size of the type to be overridden instead of forcing the use of a uint8_t.

#define
RAIL_EFR32_HANDLE ((RAIL_Handle_t)0xFFFFFFFFUL)

A placeholder for a chip-specific RAIL handle.

#define

Time it takes to take care of protocol switching.

#define
RAIL_CAL_TEMP_VCO (0x00000001U)

EFR32-specific temperature calibration bit.

#define

EFR32-specific HFXO temperature check bit.

#define

EFR32-specific HFXO compensation bit.

#define
RAIL_CAL_RX_IRCAL (0x00010000U)

EFR32-specific IR calibration bit.

#define
RAIL_CAL_ONETIME_IRCAL (RAIL_CAL_RX_IRCAL)

EFR32-specific IR calibration bit.

#define
RAIL_CAL_TEMP (RAIL_CAL_TEMP_VCO)

A mask to run temperature-dependent calibrations.

#define
RAIL_CAL_ONETIME (RAIL_CAL_ONETIME_IRCAL)

A mask to run one-time calibrations.

#define

A mask to run optional performance calibrations.

#define
RAIL_CAL_OFFLINE (RAIL_CAL_ONETIME_IRCAL)

A mask for calibrations that require the radio to be off.

#define
RAIL_CAL_ALL (RAIL_CAL_TEMP | RAIL_CAL_ONETIME)

A mask to run all possible calibrations for this chip.

#define
RAIL_CAL_ALL_PENDING (0x00000000U)

A mask to run all pending calibrations.

#define

An invalid calibration value.

#define

Indicates the number of RF Paths supported.

#define

A define to set all RAIL_IrCalValues_t values to uninitialized.

#define
RAIL_IRCALVAL (irCalStruct, rfPath)

A define allowing Rx calibration value access compatibility between series 1 and series 2.

#define
RAIL_CALVALUES_UNINIT RAIL_IRCALVALUES_UNINIT

A define to set all RAIL_CalValues_t values to uninitialized.

#define
RAIL_FREQUENCY_OFFSET_MAX ((RAIL_FrequencyOffset_t) 0x3FFF)

The maximum frequency offset value supported by this radio.

#define
RAIL_FREQUENCY_OFFSET_MIN ((RAIL_FrequencyOffset_t) -RAIL_FREQUENCY_OFFSET_MAX)

The minimum frequency offset value supported by this radio.

#define
RAIL_FREQUENCY_OFFSET_INVALID ((RAIL_FrequencyOffset_t) 0x8000)

Specify an invalid frequency offset value.

#define

Returned by RAIL_SetPaPowerSetting when the current PA does not support the dBm to power setting mapping table.

#define

The maximum valid value for the RAIL_TxPowerLevel_t when in RAIL_TX_POWER_MODE_2P4_LP mode.

#define

The maximum valid value for the RAIL_TxPowerLevel_t when in RAIL_TX_POWER_MODE_2P4_HP mode.

#define

The maximum valid value for the RAIL_TxPowerLevel_t when in RAIL_TX_POWER_MODE_SUBGIG mode.

#define

The minimum valid value for the RAIL_TxPowerLevel_t when in RAIL_TX_POWER_MODE_2P4_LP mode.

#define

The minimum valid value for the RAIL_TxPowerLevel_t when in RAIL_TX_POWER_MODE_2P4_HP mode.

#define

The minimum valid value for the RAIL_TxPowerLevel_t when in RAIL_TX_POWER_MODE_SUBGIG mode.

#define

Invalid RAIL_TxPowerLevel_t value returned when an error occurs with RAIL_GetTxPower.

#define

Sentinel value that can be passed to RAIL_SetTxPower to set the highest power level available on the current PA, regardless of which one is selected.

#define
RAIL_TX_POWER_LEVEL_LP_MAX RAIL_TX_POWER_LEVEL_2P4_LP_MAX

Backwards compatibility define.

#define
RAIL_TX_POWER_LEVEL_HP_MAX RAIL_TX_POWER_LEVEL_2P4_HP_MAX

Backwards compatibility define.

#define
RAIL_TX_POWER_LEVEL_SUBGIG_MAX RAIL_TX_POWER_LEVEL_SUBGIG_HP_MAX

Backwards compatibility define.

#define
RAIL_TX_POWER_LEVEL_LP_MIN RAIL_TX_POWER_LEVEL_2P4_LP_MIN

Backwards compatibility define.

#define
RAIL_TX_POWER_LEVEL_HP_MIN RAIL_TX_POWER_LEVEL_2P4_HP_MIN

Backwards compatibility define.

#define
RAIL_TX_POWER_LEVEL_SUBGIG_MIN RAIL_TX_POWER_LEVEL_SUBGIG_HP_MIN

Backwards compatibility define.

#define
RAIL_TX_POWER_MODE_2P4_HP RAIL_TX_POWER_MODE_2P4GIG_HP
#define
RAIL_TX_POWER_MODE_2P4_LP RAIL_TX_POWER_MODE_2P4GIG_LP
#define

The number of PA's on this chip.

#define

The names of the TX power modes.

#define

Use this value with either TX or RX values in RAIL_SetPaCTune to use whatever value is already set and do no update.

#define
RAIL_RETIME_OPTION_HFXO (1U << RAIL_RETIME_OPTION_HFXO_SHIFT)

An option to configure HFXO retiming.

#define
RAIL_RETIME_OPTION_HFRCO (1U << RAIL_RETIME_OPTION_HFRCO_SHIFT)

An option to configure HFRCO retiming.

#define
RAIL_RETIME_OPTION_DCDC (1U << RAIL_RETIME_OPTION_DCDC_SHIFT)

An option to configure DCDC retiming.

#define

A value representing no retiming options.

#define

A value representing all retiming options.

#define

The static amount of memory needed per channel for channel hopping, measured in 32 bit words, regardless of the size of radio configuration structures.

#define

Default PRS channel to use when configuring sleep.

#define

Default RTCC channel to use when configuring sleep.

#define

Default timer synchronization configuration.

#define

Fixed-width type indicating the needed alignment for RX and TX FIFOs.

#define
RAIL_FIFO_ALIGNMENT (sizeof(RAIL_FIFO_ALIGNMENT_TYPE))

Alignment that is needed for the RX and TX FIFOs.

#define

The minimum value for a consistent RAIL transition.

#define

The maximum value for a consistent RAIL transition.

Enumerations#

enum
RAIL_ANTENNA_0 = 0
RAIL_ANTENNA_1 = 1
RAIL_ANTENNA_AUTO = 255
}

Antenna path Selection enumeration.

enum
RAIL_TX_POWER_MODE_2P4GIG_HP
RAIL_TX_POWER_MODE_2P4GIG_LP
RAIL_TX_POWER_MODE_SUBGIG
RAIL_TX_POWER_MODE_NONE
}

An enumeration of the EFR32 power modes.

enum
RAIL_PTI_MODE_DISABLED
RAIL_PTI_MODE_SPI
RAIL_PTI_MODE_UART
RAIL_PTI_MODE_UART_ONEWIRE
}

A channel type enumeration.

enum
RAIL_RETIME_OPTION_HFXO_SHIFT = 0
RAIL_RETIME_OPTION_HFRCO_SHIFT
RAIL_RETIME_OPTION_DCDC_SHIFT
}

Retiming options bit shifts.

Typedefs#

typedef uint8_t

Provided for backwards compatibility.

typedef uint32_t

RAIL_IrCalValues_t.

A calibration value structure.

typedef int16_t

Chip-specific type that represents the number of Frequency Offset units.

typedef const uint32_t *

The radio configuration structure.

typedef uint8_t

Raw power levels used directly by the RAIL_Get/SetTxPower API where a higher numerical value corresponds to a higher output power.

typedef uint32_t

PA power setting used directly by the RAIL_GetPaPowerSetting() and RAIL_SetPaPowerSetting() APIs which is decoded to the actual hardware register value(s).

typedef uint32_t

(_SILICON_LABS_32B_SERIES_1_CONFIG == 1)

Functions#

RAIL_ApplyIrCalibration(RAIL_Handle_t railHandle, uint32_t imageRejection)

Apply a given image rejection calibration value.

RAIL_ApplyIrCalibrationAlt(RAIL_Handle_t railHandle, RAIL_IrCalValues_t *imageRejection, RAIL_AntennaSel_t rfPath)

Apply a given image rejection calibration value.

RAIL_CalibrateIr(RAIL_Handle_t railHandle, uint32_t *imageRejection)

Run the image rejection calibration.

RAIL_CalibrateIrAlt(RAIL_Handle_t railHandle, RAIL_IrCalValues_t *imageRejection, RAIL_AntennaSel_t rfPath)

Run the image rejection calibration.

RAIL_IEEE802154_CalibrateIr2p4Ghz(RAIL_Handle_t railHandle, uint32_t *imageRejection)

Calibrate image rejection for IEEE 802.15.4 2.4 GHz.

RAIL_IEEE802154_CalibrateIrSubGhz(RAIL_Handle_t railHandle, uint32_t *imageRejection)

Calibrate image rejection for IEEE 802.15.4 915 MHz and 868 MHz.

RAIL_BLE_CalibrateIr(RAIL_Handle_t railHandle, uint32_t *imageRejection)

Calibrate image rejection for Bluetooth Low Energy.

RAIL_CalibrateTemp(RAIL_Handle_t railHandle)

Run the temperature calibration.

RAIL_CalibrateHFXO(RAIL_Handle_t railHandle, int8_t *crystalPPMError)

Performs HFXO compensation.

RAIL_ConfigRetimeOptions(RAIL_Handle_t railHandle, RAIL_RetimeOptions_t mask, RAIL_RetimeOptions_t options)

Configure retiming options.

RAIL_GetRetimeOptions(RAIL_Handle_t railHandle, RAIL_RetimeOptions_t *pOptions)

Get the currently configured retiming option.

Indicate that the DCDC peripheral bus clock enable has changed allowing RAIL to react accordingly.

Macro Definition Documentation#

__RAIL_CHIP_SPECIFIC_H_#

#define __RAIL_CHIP_SPECIFIC_H_

Include guard.


Definition at line 38 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_ENUM#

#define RAIL_ENUM
Value:
(name)

The RAIL library does not use enumerations because the ARM EABI leaves their size ambiguous, which causes problems if the application is built with different flags than the library.

Instead, uint8_t typedefs are used in compiled code for all enumerations. For documentation purposes, this is converted to an actual enumeration since it's much easier to read in Doxygen.


Definition at line 49 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_ENUM_GENERIC#

#define RAIL_ENUM_GENERIC
Value:
(name, type)

This macro is a more generic version of the RAIL_ENUM() macro that allows the size of the type to be overridden instead of forcing the use of a uint8_t.

See RAIL_ENUM() for more information.


Definition at line 53 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_EFR32_HANDLE#

#define RAIL_EFR32_HANDLE
Value:
((RAIL_Handle_t)0xFFFFFFFFUL)

A placeholder for a chip-specific RAIL handle.

Using NULL as a RAIL handle is not recommended. As a result, another value that can't be de-referenced is used.

This generic handle can and should be used for RAIL APIs that are called prior to RAIL initialization.


Definition at line 74 of file chip/efr32/efr32xg1x/rail_chip_specific.h

TRANSITION_TIME_US#

#define TRANSITION_TIME_US
Value:
430

Time it takes to take care of protocol switching.


Definition at line 234 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CAL_TEMP_VCO#

#define RAIL_CAL_TEMP_VCO
Value:
(0x00000001U)

EFR32-specific temperature calibration bit.


Definition at line 327 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CAL_TEMP_HFXO#

#define RAIL_CAL_TEMP_HFXO
Value:
(0U)

EFR32-specific HFXO temperature check bit.


Definition at line 329 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CAL_COMPENSATE_HFXO#

#define RAIL_CAL_COMPENSATE_HFXO
Value:
(0U)

EFR32-specific HFXO compensation bit.


Definition at line 331 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CAL_RX_IRCAL#

#define RAIL_CAL_RX_IRCAL
Value:
(0x00010000U)

EFR32-specific IR calibration bit.


Definition at line 333 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CAL_ONETIME_IRCAL#

#define RAIL_CAL_ONETIME_IRCAL
Value:
(RAIL_CAL_RX_IRCAL)

EFR32-specific IR calibration bit.


Definition at line 335 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CAL_TEMP#

#define RAIL_CAL_TEMP
Value:
(RAIL_CAL_TEMP_VCO)

A mask to run temperature-dependent calibrations.


Definition at line 338 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CAL_ONETIME#

#define RAIL_CAL_ONETIME
Value:
(RAIL_CAL_ONETIME_IRCAL)

A mask to run one-time calibrations.


Definition at line 340 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CAL_PERF#

#define RAIL_CAL_PERF
Value:
(0)

A mask to run optional performance calibrations.


Definition at line 342 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CAL_OFFLINE#

#define RAIL_CAL_OFFLINE
Value:
(RAIL_CAL_ONETIME_IRCAL)

A mask for calibrations that require the radio to be off.


Definition at line 344 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CAL_ALL#

#define RAIL_CAL_ALL
Value:
(RAIL_CAL_TEMP | RAIL_CAL_ONETIME)

A mask to run all possible calibrations for this chip.


Definition at line 346 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CAL_ALL_PENDING#

#define RAIL_CAL_ALL_PENDING
Value:
(0x00000000U)

A mask to run all pending calibrations.


Definition at line 348 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CAL_INVALID_VALUE#

#define RAIL_CAL_INVALID_VALUE
Value:
(0xFFFFFFFFU)

An invalid calibration value.


Definition at line 350 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_RF_PATHS#

#define RAIL_RF_PATHS
Value:
1

Indicates the number of RF Paths supported.


Definition at line 356 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_IRCALVALUES_UNINIT#

#define RAIL_IRCALVALUES_UNINIT
Value:
{ \
RAIL_CAL_INVALID_VALUE, \
}

A define to set all RAIL_IrCalValues_t values to uninitialized.

This define can be used when you have no data to pass to the calibration routines but wish to compute and save all possible calibrations.


Definition at line 375 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_IRCALVAL#

#define RAIL_IRCALVAL
Value:
(irCalStruct, rfPath)

A define allowing Rx calibration value access compatibility between series 1 and series 2.


Definition at line 383 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CALVALUES_UNINIT#

#define RAIL_CALVALUES_UNINIT
Value:
RAIL_IRCALVALUES_UNINIT

A define to set all RAIL_CalValues_t values to uninitialized.

This define can be used when you have no data to pass to the calibration routines but wish to compute and save all possible calibrations.


Definition at line 598 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_FREQUENCY_OFFSET_MAX#

#define RAIL_FREQUENCY_OFFSET_MAX
Value:
((RAIL_FrequencyOffset_t) 0x3FFF)

The maximum frequency offset value supported by this radio.


Definition at line 628 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_FREQUENCY_OFFSET_MIN#

#define RAIL_FREQUENCY_OFFSET_MIN
Value:
((RAIL_FrequencyOffset_t) -RAIL_FREQUENCY_OFFSET_MAX)

The minimum frequency offset value supported by this radio.


Definition at line 633 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_FREQUENCY_OFFSET_INVALID#

#define RAIL_FREQUENCY_OFFSET_INVALID
Value:
((RAIL_FrequencyOffset_t) 0x8000)

Specify an invalid frequency offset value.

This will be returned if you call RAIL_GetRxFreqOffset() at an invalid time.


Definition at line 639 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_PA_POWER_SETTING_UNSUPPORTED#

#define RAIL_TX_PA_POWER_SETTING_UNSUPPORTED
Value:
(0U)

Returned by RAIL_SetPaPowerSetting when the current PA does not support the dBm to power setting mapping table.


Definition at line 734 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_LEVEL_2P4_LP_MAX#

#define RAIL_TX_POWER_LEVEL_2P4_LP_MAX
Value:
(7U)

The maximum valid value for the RAIL_TxPowerLevel_t when in RAIL_TX_POWER_MODE_2P4_LP mode.


Definition at line 740 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_LEVEL_2P4_HP_MAX#

#define RAIL_TX_POWER_LEVEL_2P4_HP_MAX
Value:
(252U)

The maximum valid value for the RAIL_TxPowerLevel_t when in RAIL_TX_POWER_MODE_2P4_HP mode.


Definition at line 745 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_LEVEL_SUBGIG_HP_MAX#

#define RAIL_TX_POWER_LEVEL_SUBGIG_HP_MAX
Value:
(248U)

The maximum valid value for the RAIL_TxPowerLevel_t when in RAIL_TX_POWER_MODE_SUBGIG mode.


Definition at line 750 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_LEVEL_2P4_LP_MIN#

#define RAIL_TX_POWER_LEVEL_2P4_LP_MIN
Value:
(1U)

The minimum valid value for the RAIL_TxPowerLevel_t when in RAIL_TX_POWER_MODE_2P4_LP mode.


Definition at line 755 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_LEVEL_2P4_HP_MIN#

#define RAIL_TX_POWER_LEVEL_2P4_HP_MIN
Value:
(0U)

The minimum valid value for the RAIL_TxPowerLevel_t when in RAIL_TX_POWER_MODE_2P4_HP mode.


Definition at line 760 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_LEVEL_SUBGIG_HP_MIN#

#define RAIL_TX_POWER_LEVEL_SUBGIG_HP_MIN
Value:
(0U)

The minimum valid value for the RAIL_TxPowerLevel_t when in RAIL_TX_POWER_MODE_SUBGIG mode.


Definition at line 765 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_LEVEL_INVALID#

#define RAIL_TX_POWER_LEVEL_INVALID
Value:
(255U)

Invalid RAIL_TxPowerLevel_t value returned when an error occurs with RAIL_GetTxPower.


Definition at line 770 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_LEVEL_MAX#

#define RAIL_TX_POWER_LEVEL_MAX
Value:
(254U)

Sentinel value that can be passed to RAIL_SetTxPower to set the highest power level available on the current PA, regardless of which one is selected.


Definition at line 776 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_LEVEL_LP_MAX#

#define RAIL_TX_POWER_LEVEL_LP_MAX
Value:
RAIL_TX_POWER_LEVEL_2P4_LP_MAX

Backwards compatibility define.


Definition at line 779 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_LEVEL_HP_MAX#

#define RAIL_TX_POWER_LEVEL_HP_MAX
Value:
RAIL_TX_POWER_LEVEL_2P4_HP_MAX

Backwards compatibility define.


Definition at line 781 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_LEVEL_SUBGIG_MAX#

#define RAIL_TX_POWER_LEVEL_SUBGIG_MAX
Value:
RAIL_TX_POWER_LEVEL_SUBGIG_HP_MAX

Backwards compatibility define.


Definition at line 783 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_LEVEL_LP_MIN#

#define RAIL_TX_POWER_LEVEL_LP_MIN
Value:
RAIL_TX_POWER_LEVEL_2P4_LP_MIN

Backwards compatibility define.


Definition at line 785 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_LEVEL_HP_MIN#

#define RAIL_TX_POWER_LEVEL_HP_MIN
Value:
RAIL_TX_POWER_LEVEL_2P4_HP_MIN

Backwards compatibility define.


Definition at line 787 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_LEVEL_SUBGIG_MIN#

#define RAIL_TX_POWER_LEVEL_SUBGIG_MIN
Value:
RAIL_TX_POWER_LEVEL_SUBGIG_HP_MIN

Backwards compatibility define.


Definition at line 789 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_MODE_2P4_HP#

#define RAIL_TX_POWER_MODE_2P4_HP
Value:
RAIL_TX_POWER_MODE_2P4GIG_HP

DeprecatedPlease use RAIL_TX_POWER_MODE_2P4GIG_HP instead.


Definition at line 811 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_MODE_2P4_LP#

#define RAIL_TX_POWER_MODE_2P4_LP
Value:
RAIL_TX_POWER_MODE_2P4GIG_LP

DeprecatedPlease use RAIL_TX_POWER_MODE_2P4GIG_LP instead.


Definition at line 813 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_NUM_PA#

#define RAIL_NUM_PA
Value:
(3U)

The number of PA's on this chip.

(Including Virtual PAs)


Definition at line 818 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TX_POWER_MODE_NAMES#

#define RAIL_TX_POWER_MODE_NAMES
Value:
{ \
"RAIL_TX_POWER_MODE_2P4GIG_HP", \
"RAIL_TX_POWER_MODE_2P4GIG_LP", \
"RAIL_TX_POWER_MODE_SUBGIG", \
"RAIL_TX_POWER_MODE_NONE" \
}

The names of the TX power modes.

A list of the names for the TX power modes on the EFR32 series 1 parts. This macro is useful for test applications and debugging output.


Definition at line 835 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_PACTUNE_IGNORE#

#define RAIL_PACTUNE_IGNORE
Value:
(255U)

Use this value with either TX or RX values in RAIL_SetPaCTune to use whatever value is already set and do no update.


Definition at line 936 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_RETIME_OPTION_HFXO#

#define RAIL_RETIME_OPTION_HFXO
Value:
(1U << RAIL_RETIME_OPTION_HFXO_SHIFT)

An option to configure HFXO retiming.


Definition at line 972 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_RETIME_OPTION_HFRCO#

#define RAIL_RETIME_OPTION_HFRCO
Value:
(1U << RAIL_RETIME_OPTION_HFRCO_SHIFT)

An option to configure HFRCO retiming.


Definition at line 978 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_RETIME_OPTION_DCDC#

#define RAIL_RETIME_OPTION_DCDC
Value:
(1U << RAIL_RETIME_OPTION_DCDC_SHIFT)

An option to configure DCDC retiming.


Definition at line 984 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_RETIME_OPTIONS_NONE#

#define RAIL_RETIME_OPTIONS_NONE
Value:
0x0U

A value representing no retiming options.


Definition at line 988 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_RETIME_OPTIONS_ALL#

#define RAIL_RETIME_OPTIONS_ALL
Value:
0xFFU

A value representing all retiming options.


Definition at line 991 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CHANNEL_HOPPING_BUFFER_SIZE_PER_CHANNEL#

#define RAIL_CHANNEL_HOPPING_BUFFER_SIZE_PER_CHANNEL
Value:
(53U)

The static amount of memory needed per channel for channel hopping, measured in 32 bit words, regardless of the size of radio configuration structures.


Definition at line 1039 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TIMER_SYNC_PRS_CHANNEL_DEFAULT#

#define RAIL_TIMER_SYNC_PRS_CHANNEL_DEFAULT
Value:
(7U)

Default PRS channel to use when configuring sleep.


Definition at line 1049 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TIMER_SYNC_RTCC_CHANNEL_DEFAULT#

#define RAIL_TIMER_SYNC_RTCC_CHANNEL_DEFAULT
Value:
(0U)

Default RTCC channel to use when configuring sleep.


Definition at line 1056 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TIMER_SYNC_DEFAULT#

#define RAIL_TIMER_SYNC_DEFAULT
Value:
{ \
RAIL_TIMER_SYNC_PRS_CHANNEL_DEFAULT, \
RAIL_TIMER_SYNC_RTCC_CHANNEL_DEFAULT, \
RAIL_SLEEP_CONFIG_TIMERSYNC_ENABLED, \
}

Default timer synchronization configuration.


Definition at line 1060 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_FIFO_ALIGNMENT_TYPE#

#define RAIL_FIFO_ALIGNMENT_TYPE
Value:
uint8_t

Fixed-width type indicating the needed alignment for RX and TX FIFOs.

Note that docs.silabs.com will incorrectly indicate that this is always a uint8_t, but it does vary across RAIL platforms.


Definition at line 1077 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_FIFO_ALIGNMENT#

#define RAIL_FIFO_ALIGNMENT
Value:
(sizeof(RAIL_FIFO_ALIGNMENT_TYPE))

Alignment that is needed for the RX and TX FIFOs.


Definition at line 1080 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_MINIMUM_TRANSITION_US#

#define RAIL_MINIMUM_TRANSITION_US
Value:
(100U)

The minimum value for a consistent RAIL transition.

Note


Definition at line 1096 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_MAXIMUM_TRANSITION_US#

#define RAIL_MAXIMUM_TRANSITION_US
Value:
(1000000U)

The maximum value for a consistent RAIL transition.

(_SILICON_LABS_32B_SERIES_1_CONFIG == 1)


Definition at line 1105 of file chip/efr32/efr32xg1x/rail_chip_specific.h

Enumeration Documentation#

RAIL_AntennaSel_t#

RAIL_AntennaSel_t

Antenna path Selection enumeration.

Enumerator
RAIL_ANTENNA_0

Enum for antenna path 0.

RAIL_ANTENNA_1

Enum for antenna path 1.

RAIL_ANTENNA_AUTO

Enum for antenna path auto.


Definition at line 252 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TxPowerMode_t#

RAIL_TxPowerMode_t

An enumeration of the EFR32 power modes.

The power modes on the EFR32 correspond to the different on-chip PAs that are available. For more information about the power and performance characteristics of a given amplifier, see the data sheet.

Enumerator
RAIL_TX_POWER_MODE_2P4GIG_HP

High-power amplifier, up to 20 dBm, raw values: 0-252.

RAIL_TX_POWER_MODE_2P4GIG_LP

Low-power amplifier, up to 0 dBm, raw values: 1-7.

RAIL_TX_POWER_MODE_SUBGIG

SubGig amplifier, up to 20 dBm, raw values: 0-248.

RAIL_TX_POWER_MODE_NONE

Invalid amplifier Selection.


Definition at line 799 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_PtiMode_t#

RAIL_PtiMode_t

A channel type enumeration.

Enumerator
RAIL_PTI_MODE_DISABLED

Turn PTI off entirely.

RAIL_PTI_MODE_SPI

SPI mode.

RAIL_PTI_MODE_UART

UART mode.

RAIL_PTI_MODE_UART_ONEWIRE

9-bit UART mode.


Definition at line 876 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_RetimeOptions_t#

RAIL_RetimeOptions_t

Retiming options bit shifts.

Enumerator
RAIL_RETIME_OPTION_HFXO_SHIFT

Shift position of RAIL_RETIME_OPTION_HFXO bit.

RAIL_RETIME_OPTION_HFRCO_SHIFT

Shift position of RAIL_RETIME_OPTION_HFRCO bit.

RAIL_RETIME_OPTION_DCDC_SHIFT

Shift position of RAIL_RETIME_OPTION_DCDC bit.


Definition at line 959 of file chip/efr32/efr32xg1x/rail_chip_specific.h

Typedef Documentation#

RAIL_StateBuffer_t#

RAIL_StateBuffer_t [1]

Provided for backwards compatibility.


Definition at line 139 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_IrCalValues_t#

typedef uint32_t RAIL_IrCalValues_t[1] [1]

RAIL_IrCalValues_t.

An IR calibration value structure.

This definition contains the set of persistent calibration values for EFR32. You can set these beforehand and apply them at startup to save the time required to compute them. Any of these values may be set to RAIL_IRCAL_INVALID_VALUE to force the code to compute that calibration value.


Definition at line 367 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CalValues_t#

RAIL_CalValues_t

A calibration value structure.

This structure contains the set of persistent calibration values for EFR32. You can set these beforehand and apply them at startup to save the time required to compute them. Any of these values may be set to RAIL_CAL_INVALID_VALUE to force the code to compute that calibration value.


Definition at line 590 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_FrequencyOffset_t#

RAIL_FrequencyOffset_t

Chip-specific type that represents the number of Frequency Offset units.

It is used with RAIL_GetRxFreqOffset() and RAIL_SetFreqOffset().

The units on this chip are radio synthesizer resolution steps (synthTicks). On EFR32 (at least for now), the frequency offset is limited to 15 bits (size of SYNTH_CALOFFSET). A value of RAIL_FREQUENCY_OFFSET_INVALID means that this value is invalid.


Definition at line 623 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_RadioConfig_t#

typedef const uint32_t* RAIL_RadioConfig_t

The radio configuration structure.

The radio configuration properly configures the radio for operation on a protocol. These configurations should not be created or edited by hand.


Definition at line 697 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TxPowerLevel_t#

typedef uint8_t RAIL_TxPowerLevel_t

Raw power levels used directly by the RAIL_Get/SetTxPower API where a higher numerical value corresponds to a higher output power.

These are referred to as 'raw (values/units)'. On EFR32, they can range from one of RAIL_TX_POWER_LEVEL_2P4_LP_MIN, RAIL_TX_POWER_LEVEL_2P4_HP_MIN, or RAIL_TX_POWER_LEVEL_SUBGIG_HP_MIN to one of RAIL_TX_POWER_LEVEL_2P4_LP_MAX, RAIL_TX_POWER_LEVEL_2P4_HP_MAX, and RAIL_TX_POWER_LEVEL_SUBGIG_HP_MAX, respectively, depending on the selected RAIL_TxPowerMode_t.


Definition at line 721 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_PaPowerSetting_t#

typedef uint32_t RAIL_PaPowerSetting_t

PA power setting used directly by the RAIL_GetPaPowerSetting() and RAIL_SetPaPowerSetting() APIs which is decoded to the actual hardware register value(s).


Definition at line 728 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_TransitionTime_t#

RAIL_TransitionTime_t

(_SILICON_LABS_32B_SERIES_1_CONFIG == 1)

Suitable type for the supported transition time range.


Definition at line 1115 of file chip/efr32/efr32xg1x/rail_chip_specific.h

Function Documentation#

RAIL_ApplyIrCalibration#

RAIL_Status_t RAIL_ApplyIrCalibration (RAIL_Handle_t railHandle, uint32_t imageRejection)

Apply a given image rejection calibration value.

Parameters
[in]railHandle

A RAIL instance handle.

[in]imageRejection

The image rejection value to apply.

Returns

  • A status code indicating success of the function call.

Take an image rejection calibration value and apply it. This value should be determined from a previous run of RAIL_CalibrateIr on the same physical device with the same radio configuration. The imageRejection value will also be stored to the RAIL_ChannelConfigEntry_t::attr, if possible.

If multiple protocols are used, this function will return RAIL_STATUS_INVALID_STATE if it is called and the given railHandle is not active. In that case, the caller must attempt to re-call this function later.

DeprecatedPlease use RAIL_ApplyIrCalibrationAlt instead.


Definition at line 414 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_ApplyIrCalibrationAlt#

RAIL_Status_t RAIL_ApplyIrCalibrationAlt (RAIL_Handle_t railHandle, RAIL_IrCalValues_t *imageRejection, RAIL_AntennaSel_t rfPath)

Apply a given image rejection calibration value.

Parameters
[in]railHandle

A RAIL instance handle.

[in]imageRejection

Pointer to the image rejection value to apply.

[in]rfPath

RF path to calibrate.

Returns

  • A status code indicating success of the function call.

Take an image rejection calibration value and apply it. This value should be determined from a previous run of RAIL_CalibrateIrAlt on the same physical device with the same radio configuration. The imageRejection value will also be stored to the RAIL_ChannelConfigEntry_t::attr, if possible. Note

  • : To make sure the imageRejection value is stored/configured correctly, RAIL_ConfigAntenna should be called before calling this API.

If multiple protocols are used, this function will return RAIL_STATUS_INVALID_STATE if it is called and the given railHandle is not active. In that case, the caller must attempt to re-call this function later.


Definition at line 436 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CalibrateIr#

RAIL_Status_t RAIL_CalibrateIr (RAIL_Handle_t railHandle, uint32_t *imageRejection)

Run the image rejection calibration.

Parameters
[in]railHandle

A RAIL instance handle.

[out]imageRejection

The result of the image rejection calibration.

Returns

  • A status code indicating success of the function call.

Run the image rejection calibration and apply the resulting value. If the imageRejection parameter is not NULL, store the value at that location. The imageRejection value will also be stored to the RAIL_ChannelConfigEntry_t::attr, if possible. This is a long-running calibration that adds significant code space when run and can be run with a separate firmware image on each device to save code space in the final image.

If multiple protocols are used, this function will make the given railHandle active, if not already, and perform calibration. If called during a protocol switch, it will return RAIL_STATUS_INVALID_STATE. In this case, RAIL_ApplyIrCalibration may be called to apply a previously determined IR calibration value, or the app must defer calibration until the protocol switch is complete. Silicon Labs recommends calling this function from the application main loop.

DeprecatedPlease use RAIL_CalibrateIrAlt instead.


Definition at line 465 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CalibrateIrAlt#

RAIL_Status_t RAIL_CalibrateIrAlt (RAIL_Handle_t railHandle, RAIL_IrCalValues_t *imageRejection, RAIL_AntennaSel_t rfPath)

Run the image rejection calibration.

Parameters
[in]railHandle

A RAIL instance handle.

[out]imageRejection

Pointer to the image rejection result.

[in]rfPath

RF path to calibrate.

Returns

  • A status code indicating success of the function call.

Run the image rejection calibration and apply the resulting value. If the imageRejection parameter is not NULL, store the value at that location. The imageRejection value will also be stored to the RAIL_ChannelConfigEntry_t::attr, if possible. This is a long-running calibration that adds significant code space when run and can be run with a separate firmware image on each device to save code space in the final image. Note

  • : To make sure the imageRejection value is stored/configured correctly, RAIL_ConfigAntenna should be called before calling this API.

If multiple protocols are used, this function will return RAIL_STATUS_INVALID_STATE if it is called and the given railHandle is not active. In that case, the caller must attempt to re-call this function later.


Definition at line 490 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_IEEE802154_CalibrateIr2p4Ghz#

RAIL_Status_t RAIL_IEEE802154_CalibrateIr2p4Ghz (RAIL_Handle_t railHandle, uint32_t *imageRejection)

Calibrate image rejection for IEEE 802.15.4 2.4 GHz.

Parameters
[in]railHandle

A RAIL instance handle.

[out]imageRejection

The result of the image rejection calibration.

Returns

  • A status code indicating success of the function call.

Some chips have protocol-specific image rejection calibrations programmed into their flash. This function will either get the value from flash and apply it, or run the image rejection algorithm to find the value.


Definition at line 505 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_IEEE802154_CalibrateIrSubGhz#

RAIL_Status_t RAIL_IEEE802154_CalibrateIrSubGhz (RAIL_Handle_t railHandle, uint32_t *imageRejection)

Calibrate image rejection for IEEE 802.15.4 915 MHz and 868 MHz.

Parameters
[in]railHandle

A RAIL instance handle.

[out]imageRejection

The result of the image rejection calibration.

Returns

  • A status code indicating success of the function call.

Some chips have protocol-specific image rejection calibrations programmed into their flash. This function will either get the value from flash and apply it, or run the image rejection algorithm to find the value.


Definition at line 519 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_BLE_CalibrateIr#

RAIL_Status_t RAIL_BLE_CalibrateIr (RAIL_Handle_t railHandle, uint32_t *imageRejection)

Calibrate image rejection for Bluetooth Low Energy.

Parameters
[in]railHandle

A RAIL instance handle.

[out]imageRejection

The result of the image rejection calibration.

Returns

  • A status code indicating success of the function call.

Some chips have protocol-specific image rejection calibrations programmed into their flash. This function will either get the value from flash and apply it, or run the image rejection algorithm to find the value.


Definition at line 533 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CalibrateTemp#

RAIL_Status_t RAIL_CalibrateTemp (RAIL_Handle_t railHandle)

Run the temperature calibration.

Parameters
[in]railHandle

A RAIL instance handle.

Returns

  • A status code indicating success of the function call.

Run the temperature calibration, which needs to recalibrate the synth if the temperature crosses 0C or the temperature delta since the last calibration exceeds 70C while in receive. RAIL will run the VCO calibration automatically upon entering receive or transmit states, so the application can omit this calibration if the stack re-enters receive or transmit with enough frequency to avoid reaching the temperature delta. If the application does not calibrate for temperature, it's possible to miss receive packets due to a drift in the carrier frequency.

If multiple protocols are used, this function will return RAIL_STATUS_INVALID_STATE if it is called and the given railHandle is not active. In that case, the calibration will be automatically performed next time the radio enters receive.


Definition at line 556 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_CalibrateHFXO#

RAIL_Status_t RAIL_CalibrateHFXO (RAIL_Handle_t railHandle, int8_t *crystalPPMError)

Performs HFXO compensation.

Parameters
[in]railHandle

A RAIL instance handle.

[out]crystalPPMError

Current deviation that has been corrected, measured in PPM. May be NULL.

Returns

  • A status code indicating the result of the function call.

Compute the PPM correction using the thermistor value available when RAIL_EVENT_THERMISTOR_DONE occurs, after RAIL_StartThermistorMeasurement() call. Then correct the RF frequency as well as Tx and Rx sampling.

This function calls the following RAIL functions in sequence saving having to call them individually:

Note

  • This function makes the radio idle.


Definition at line 579 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_ConfigRetimeOptions#

RAIL_Status_t RAIL_ConfigRetimeOptions (RAIL_Handle_t railHandle, RAIL_RetimeOptions_t mask, RAIL_RetimeOptions_t options)

Configure retiming options.

Parameters
[in]railHandle

A handle of RAIL instance.

[in]mask

A bitmask containing which options should be modified.

[in]options

A bitmask containing desired configuration settings. Bit positions for each option are found in the RAIL_RetimeOptions_t.

Returns

  • Status code indicating success of the function call.


Definition at line 1002 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_GetRetimeOptions#

RAIL_Status_t RAIL_GetRetimeOptions (RAIL_Handle_t railHandle, RAIL_RetimeOptions_t *pOptions)

Get the currently configured retiming option.

Parameters
[in]railHandle

A handle of RAIL instance.

[out]pOptions

A pointer to configured retiming options bitmask indicating which are enabled.

Returns

  • Status code indicating success of the function call.


Definition at line 1014 of file chip/efr32/efr32xg1x/rail_chip_specific.h

RAIL_ChangedDcdc#

RAIL_Status_t RAIL_ChangedDcdc (void)

Indicate that the DCDC peripheral bus clock enable has changed allowing RAIL to react accordingly.

Parameters
N/A

Note

  • This should be called after DCDC has been enabled or disabled.

Returns

  • Status code indicating success of the function call.


Definition at line 1025 of file chip/efr32/efr32xg1x/rail_chip_specific.h