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

License#

Copyright 2024 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.

Modules#

RAIL_ChannelConfigEntryAttr

Macros#

#define

SLI_LIBRARY_BUILD.

#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_S3LPW_HANDLE RAIL_EFR32_HANDLE

Synonym of RAIL_EFR32_HANDLE for Series 3.

#define

Time it takes to take care of protocol switching.

#define

Indicates the number of 2.4 GHz RF Paths suppported.

#define

Indicates the number of Sub-GHz RF Paths supported.

#define
RAIL_RF_PATHS (RAIL_RF_PATHS_SUBGIG + RAIL_RF_PATHS_2P4GIG)

Indicates the number of RF Paths supported.

#define

Indicates this version of RAIL supports IR calibration on multiple RF paths Needed for backwards compatibility.

#define

The number of PA's on this chip (including Virtual PAs).

#define

Convenience macro to check if the power mode supports raw setting.

#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

The minimum value for a consistent RAIL transition.

#define

The maximum value for a consistent RAIL transition.

Enumerations#

enum
RAIL_RAC_STATE_SIX3X_OFF = 0
RAIL_RAC_STATE_SIX3X_RXWARM = 1
RAIL_RAC_STATE_SIX3X_RXSEARCH = 2
RAIL_RAC_STATE_SIX3X_RXFRAME = 3
RAIL_RAC_STATE_SIX3X_RXWRAPUP = 4
RAIL_RAC_STATE_SIX3X_TXWARM = 5
RAIL_RAC_STATE_SIX3X_TX = 6
RAIL_RAC_STATE_SIX3X_TXWRAPUP = 7
RAIL_RAC_STATE_SIX3X_SHUTDOWN = 8
RAIL_RAC_STATE_SIX3X_POR = 9
RAIL_RAC_STATE_SIX3X_NONE
}

Detailed Series 3 Radio state machine states.

Typedefs#

Internal Radio State type mapping for SIxx3xx chips.

Macro Definition Documentation#

__RAIL_CHIP_SPECIFIC_H_#

#define __RAIL_CHIP_SPECIFIC_H_

SLI_LIBRARY_BUILD.

Include guard


Definition at line 44 of file chip/efr32/sixg3xx/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 62 of file chip/efr32/sixg3xx/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 66 of file chip/efr32/sixg3xx/rail_chip_specific.h

RAIL_S3LPW_HANDLE#

#define RAIL_S3LPW_HANDLE
Value:
RAIL_EFR32_HANDLE

Synonym of RAIL_EFR32_HANDLE for Series 3.


Definition at line 80 of file chip/efr32/sixg3xx/rail_chip_specific.h

TRANSITION_TIME_US#

#define TRANSITION_TIME_US
Value:
510

Time it takes to take care of protocol switching.


Definition at line 194 of file chip/efr32/sixg3xx/rail_chip_specific.h

RAIL_RF_PATHS_2P4GIG#

#define RAIL_RF_PATHS_2P4GIG
Value:
0

Indicates the number of 2.4 GHz RF Paths suppported.


Definition at line 215 of file chip/efr32/sixg3xx/rail_chip_specific.h

RAIL_RF_PATHS_SUBGIG#

#define RAIL_RF_PATHS_SUBGIG
Value:
0

Indicates the number of Sub-GHz RF Paths supported.


Definition at line 222 of file chip/efr32/sixg3xx/rail_chip_specific.h

RAIL_RF_PATHS#

#define RAIL_RF_PATHS
Value:
(RAIL_RF_PATHS_SUBGIG + RAIL_RF_PATHS_2P4GIG)

Indicates the number of RF Paths supported.


Definition at line 228 of file chip/efr32/sixg3xx/rail_chip_specific.h

RADIO_CONFIG_ENABLE_IRCAL_MULTIPLE_RF_PATHS#

#define RADIO_CONFIG_ENABLE_IRCAL_MULTIPLE_RF_PATHS
Value:
0

Indicates this version of RAIL supports IR calibration on multiple RF paths Needed for backwards compatibility.


Definition at line 243 of file chip/efr32/sixg3xx/rail_chip_specific.h

RAIL_POWER_MODE_IS_ANY_DBM_POWERSETTING_MAPPING_TABLE#

#define RAIL_POWER_MODE_IS_ANY_DBM_POWERSETTING_MAPPING_TABLE
Value:
(((x) == RAIL_TX_POWER_MODE_2P4GIG_HP) \
|| ((x) == RAIL_TX_POWER_MODE_2P4GIG_LP))

The number of PA's on this chip (including Virtual PAs).

Convenience macro for any mapping table mode.


Definition at line 320 of file chip/efr32/sixg3xx/rail_chip_specific.h

RAIL_POWER_MODE_SUPPORTS_RAW_SETTING#

#define RAIL_POWER_MODE_SUPPORTS_RAW_SETTING
Value:
(x)

Convenience macro to check if the power mode supports raw setting.


Definition at line 325 of file chip/efr32/sixg3xx/rail_chip_specific.h

RAIL_CHANNEL_HOPPING_BUFFER_SIZE_PER_CHANNEL#

#define RAIL_CHANNEL_HOPPING_BUFFER_SIZE_PER_CHANNEL
Value:
(54U)

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 342 of file chip/efr32/sixg3xx/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 362 of file chip/efr32/sixg3xx/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 365 of file chip/efr32/sixg3xx/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 385 of file chip/efr32/sixg3xx/rail_chip_specific.h

RAIL_MAXIMUM_TRANSITION_US#

#define RAIL_MAXIMUM_TRANSITION_US
Value:
(1000000U)

The maximum value for a consistent RAIL transition.


Definition at line 391 of file chip/efr32/sixg3xx/rail_chip_specific.h

Enumeration Documentation#

RAIL_RadioStateSix3x_t#

RAIL_RadioStateSix3x_t

Detailed Series 3 Radio state machine states.

Enumerator
RAIL_RAC_STATE_SIX3X_OFF

Radio is off.

RAIL_RAC_STATE_SIX3X_RXWARM

Radio is enabling the receiver.

RAIL_RAC_STATE_SIX3X_RXSEARCH

Radio is listening for incoming frames.

RAIL_RAC_STATE_SIX3X_RXFRAME

Radio is receiving a frame.

RAIL_RAC_STATE_SIX3X_RXWRAPUP

Radio is wrapping up after receiving a frame.

RAIL_RAC_STATE_SIX3X_TXWARM

Radio is enabling transmitter.

RAIL_RAC_STATE_SIX3X_TX

Radio is transmitting data.

RAIL_RAC_STATE_SIX3X_TXWRAPUP

Radio is wrapping up after transmitting a frame.

RAIL_RAC_STATE_SIX3X_SHUTDOWN

Radio is powering down and going to OFF state.

RAIL_RAC_STATE_SIX3X_POR

Radio power-on-reset state.

RAIL_RAC_STATE_SIX3X_NONE

Invalid Radio state, must be the last entry.


Definition at line 397 of file chip/efr32/sixg3xx/rail_chip_specific.h

Typedef Documentation#

RAIL_RacRadioState_t#

typedef RAIL_RadioStateSix3x_t RAIL_RacRadioState_t

Internal Radio State type mapping for SIxx3xx chips.


Definition at line 447 of file chip/efr32/sixg3xx/rail_chip_specific.h