Thermal Protection#

Modules#

RAIL_ChipTempConfig_t

RAIL_ChipTempMetrics_t

sl_rail_chip_temp_config_t

sl_rail_chip_temp_metrics_t

Functions#

RAIL_ConfigThermalProtection(RAIL_Handle_t genericRailHandle, const RAIL_ChipTempConfig_t *chipTempConfig)

Enable or disable the thermal protection if RAIL_SUPPORTS_THERMAL_PROTECTION is defined and update the temperature threshold and cool down hysteresis preventing or allowing transmissions.

RAIL_GetThermalProtection(RAIL_Handle_t genericRailHandle, RAIL_ChipTempConfig_t *chipTempConfig)

Get the current thermal configuration parameter and status.

RAIL_GetTemperature(RAIL_Handle_t railHandle, int16_t tempBuffer[((3U)+(1U))], bool reset)

Get the different temperature measurements in Kelvin done by sequencer or host.

sl_rail_config_thermal_protection(sl_rail_handle_t radio_handle, const sl_rail_chip_temp_config_t *p_chip_temp_config)

Enable or disable the thermal protection if SL_RAIL_SUPPORTS_THERMAL_PROTECTION is defined and update the temperature threshold and cool down hysteresis preventing or allowing transmissions.

sl_rail_get_thermal_protection(sl_rail_handle_t radio_handle, sl_rail_chip_temp_config_t *p_chip_temp_config)

Get the current thermal configuration parameter and status.

sl_rail_get_temperature(sl_rail_handle_t radio_handle, int16_t temp_buffer[((3U)+(1U))], bool reset)

Get the different temperature measurements in Kelvin done by sequencer or host.

Macros#

#define

Number of temperature values provided for HFXO metrics.

#define

Total number of temperature values provided by RAIL_GetTemperature().

#define

Maximum junction temperature in Kelvin.

#define

Default number of Kelvin degrees below threshold needed to allow transmissions.

#define

Number of temperature values provided for the chip thermal protection.

#define

Number of temperature values provided for HFXO metrics.

#define

Total number of temperature values provided by sl_rail_get_temperature().

#define

Maximum junction temperature in Kelvin.

#define

Default number of Kelvin degrees below threshold needed to allow transmissions.

#define

Number of temperature values provided for the chip thermal protection.

Function Documentation#

RAIL_ConfigThermalProtection#

RAIL_Status_t RAIL_ConfigThermalProtection (RAIL_Handle_t genericRailHandle, const RAIL_ChipTempConfig_t * chipTempConfig)

Enable or disable the thermal protection if RAIL_SUPPORTS_THERMAL_PROTECTION is defined and update the temperature threshold and cool down hysteresis preventing or allowing transmissions.

Parameters
TypeDirectionArgument NameDescription
RAIL_Handle_t[in]genericRailHandle

A radio-generic RAIL handle.

const RAIL_ChipTempConfig_t *[in]chipTempConfig

A pointer to a RAIL_ChipTempConfig_t that contains the configuration to be applied.

Returns

When the temperature threshold minus a precise number of degrees specified by the cool down hysteresis parameter is exceeded, any future transmits are blocked until the temperature decreases below that limit. Besides, if the temperature threshold is exceeded, any active transmit is aborted.

By default the threshold is set to RAIL_CHIP_TEMP_THRESHOLD_MAX and the cool down hysteresis is set to RAIL_CHIP_TEMP_COOLDOWN_DEFAULT.

Note

  • The thermal protection is automatically enabled when an EFF is present on the board. There is no use in calling this API in this case.

DeprecatedRAIL 2.x synonym of sl_rail_config_thermal_protection().


RAIL_GetThermalProtection#

RAIL_Status_t RAIL_GetThermalProtection (RAIL_Handle_t genericRailHandle, RAIL_ChipTempConfig_t * chipTempConfig)

Get the current thermal configuration parameter and status.

Parameters
TypeDirectionArgument NameDescription
RAIL_Handle_t[in]genericRailHandle

A radio-generic RAIL handle.

RAIL_ChipTempConfig_t *[out]chipTempConfig

A non-NULL pointer to a RAIL_ChipTempConfig_t that will be updated with the current configuration.

Returns

  • Status code indicating the result of the function call.

DeprecatedRAIL 2.x synonym of sl_rail_get_thermal_protection().


RAIL_GetTemperature#

RAIL_Status_t RAIL_GetTemperature (RAIL_Handle_t railHandle, int16_t tempBuffer, bool reset)

Get the different temperature measurements in Kelvin done by sequencer or host.

Parameters
TypeDirectionArgument NameDescription
RAIL_Handle_t[in]railHandle

A RAIL instance handle.

int16_t[out]tempBuffer

The address of the array that will contain temperatures. This array must have at least RAIL_TEMP_MEASURE_COUNT entries.

bool[in]reset

true to reset the temperature statistics, false otherwise.

Returns

  • Status code indicating success of the function call.

Temperatures, in Kelvin, are stored in tempBuffer such as:

  • tempBuffer[0] is the chip temperature

  • tempBuffer[1] is the minimal chip temperature

  • tempBuffer[2] is the maximal chip temperature

Values that are not populated yet or incorrect are set to 0.

If RAIL_SUPPORTS_HFXO_COMPENSATION tempBuffer[3] is the HFXO temperature

DeprecatedRAIL 2.x synonym of sl_rail_get_temperature().


sl_rail_config_thermal_protection#

sl_rail_status_t sl_rail_config_thermal_protection (sl_rail_handle_t radio_handle, const sl_rail_chip_temp_config_t * p_chip_temp_config)

Enable or disable the thermal protection if SL_RAIL_SUPPORTS_THERMAL_PROTECTION is defined and update the temperature threshold and cool down hysteresis preventing or allowing transmissions.

Parameters
TypeDirectionArgument NameDescription
sl_rail_handle_t[in]radio_handle

A radio-generic RAIL handle.

const sl_rail_chip_temp_config_t *[in]p_chip_temp_config

A pointer to a sl_rail_chip_temp_config_t that contains the configuration to be applied.

Returns

When the temperature threshold minus a precise number of degrees specified by the cool down hysteresis parameter is exceeded, any future transmits are blocked until the temperature decreases below that limit. Besides, if the temperature threshold is exceeded, any active transmit is aborted.

By default the threshold is set to SL_RAIL_CHIP_TEMP_THRESHOLD_MAX and the cool down hysteresis is set to SL_RAIL_CHIP_TEMP_COOLDOWN_DEFAULT.

Note

  • The thermal protection is automatically enabled when an EFF is present on the board. There is no use in calling this API in this case.


sl_rail_get_thermal_protection#

sl_rail_status_t sl_rail_get_thermal_protection (sl_rail_handle_t radio_handle, sl_rail_chip_temp_config_t * p_chip_temp_config)

Get the current thermal configuration parameter and status.

Parameters
TypeDirectionArgument NameDescription
sl_rail_handle_t[in]radio_handle

A radio-generic RAIL handle.

sl_rail_chip_temp_config_t *[out]p_chip_temp_config

A non-NULL pointer to a sl_rail_chip_temp_config_t that will be updated with the current configuration.

Returns

  • Status code indicating the result of the function call.


sl_rail_get_temperature#

sl_rail_status_t sl_rail_get_temperature (sl_rail_handle_t radio_handle, int16_t temp_buffer, bool reset)

Get the different temperature measurements in Kelvin done by sequencer or host.

Parameters
TypeDirectionArgument NameDescription
sl_rail_handle_t[in]radio_handle

A radio-generic RAIL handle.

int16_t[out]temp_buffer

The array to be populated with temperatures (pointer). This array must have at least SL_RAIL_TEMP_MEASURE_COUNT entries.

bool[in]reset

true to reset the temperature statistics, false otherwise.

Returns

  • Status code indicating success of the function call.

Temperatures, in Kelvin, are stored in temp_buffer[] such as:

  • temp_buffer[0] is the chip temperature

  • temp_buffer[1] is the minimal chip temperature

  • temp_buffer[2] is the maximal chip temperature

Values that are not populated yet or incorrect are set to 0.

If SL_RAIL_SUPPORTS_HFXO_COMPENSATION temp_buffer[3] is the HFXO temperature


Macro Definition Documentation#

RAIL_HFXO_TEMP_MEASURE_COUNT#

#define RAIL_HFXO_TEMP_MEASURE_COUNT
Value:
(1U)

Number of temperature values provided for HFXO metrics.

DeprecatedRAIL 2.x synonym of SL_RAIL_HFXO_TEMP_MEASURE_COUNT.


RAIL_TEMP_MEASURE_COUNT#

#define RAIL_TEMP_MEASURE_COUNT
Value:
(RAIL_CHIP_TEMP_MEASURE_COUNT \
+ RAIL_HFXO_TEMP_MEASURE_COUNT)

Total number of temperature values provided by RAIL_GetTemperature().

DeprecatedRAIL 2.x synonym of SL_RAIL_TEMP_MEASURE_COUNT.


RAIL_CHIP_TEMP_THRESHOLD_MAX#

#define RAIL_CHIP_TEMP_THRESHOLD_MAX
Value:
(398U)

Maximum junction temperature in Kelvin.

A margin is subtracted before using it when RAIL_SUPPORTS_THERMAL_PROTECTION is enabled.

DeprecatedRAIL 2.x synonym of SL_RAIL_CHIP_TEMP_THRESHOLD_MAX.


RAIL_CHIP_TEMP_COOLDOWN_DEFAULT#

#define RAIL_CHIP_TEMP_COOLDOWN_DEFAULT
Value:
(7U)

Default number of Kelvin degrees below threshold needed to allow transmissions.

DeprecatedRAIL 2.x synonym of SL_RAIL_CHIP_TEMP_COOLDOWN_DEFAULT.


RAIL_CHIP_TEMP_MEASURE_COUNT#

#define RAIL_CHIP_TEMP_MEASURE_COUNT
Value:
(3U)

Number of temperature values provided for the chip thermal protection.

DeprecatedRAIL 2.x synonym of SL_RAIL_CHIP_TEMP_MEASURE_COUNT.


SL_RAIL_HFXO_TEMP_MEASURE_COUNT#

#define SL_RAIL_HFXO_TEMP_MEASURE_COUNT
Value:
(1U)

Number of temperature values provided for HFXO metrics.


SL_RAIL_TEMP_MEASURE_COUNT#

#define SL_RAIL_TEMP_MEASURE_COUNT
Value:
(SL_RAIL_CHIP_TEMP_MEASURE_COUNT \
+ SL_RAIL_HFXO_TEMP_MEASURE_COUNT)

Total number of temperature values provided by sl_rail_get_temperature().


SL_RAIL_CHIP_TEMP_THRESHOLD_MAX#

#define SL_RAIL_CHIP_TEMP_THRESHOLD_MAX
Value:
(398U)

Maximum junction temperature in Kelvin.

A margin is subtracted before using it when SL_RAIL_SUPPORTS_THERMAL_PROTECTION is enabled.


SL_RAIL_CHIP_TEMP_COOLDOWN_DEFAULT#

#define SL_RAIL_CHIP_TEMP_COOLDOWN_DEFAULT
Value:
(7U)

Default number of Kelvin degrees below threshold needed to allow transmissions.


SL_RAIL_CHIP_TEMP_MEASURE_COUNT#

#define SL_RAIL_CHIP_TEMP_MEASURE_COUNT
Value:
(3U)

Number of temperature values provided for the chip thermal protection.