Thermal Protection#

Modules#

RAIL_ChipTempConfig_t

RAIL_ChipTempMetrics_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.

Macros#

#define
RAIL_HFXO_TEMP_MEASURE_COUNT (1U)

Number of temperature values provided for HFXO metrics.

#define
RAIL_TEMP_MEASURE_COUNT undefined

Total number of temperature values provided by RAIL_GetTemperature().

#define
RAIL_CHIP_TEMP_THRESHOLD_MAX (398U)

Maximum junction temperature in Kelvin.

#define
RAIL_CHIP_TEMP_COOLDOWN_DEFAULT (7U)

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

#define
RAIL_CHIP_TEMP_MEASURE_COUNT (3U)

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

  • Status code indicating the result of the function call. Returns RAIL_STATUS_INVALID_PARAMETER if enable field from RAIL_ChipTempConfig_t is set to false when an EFF is present on the board.

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.


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 by updated with the current configuration.

Returns

  • Status code indicating the result of the function call.


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[in]tempBuffer

Reset the temperature statistics.

bool[out]reset

The address of the array that will contain temperatures. tempBuffer array must be at least RAIL_TEMP_MEASURE_COUNT int16_t.

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

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

If RAIL_SUPPORTS_HFXO_COMPENSATION tempBuffer[3] is the HFXO temperature

Returns

  • Status code indicating success of the function call.