External Thermistor

APIs to measure temperature using an external thermistor.

Data Structures

struct  RAIL_HFXOThermistorConfig_t
 Configure the port and pin of the thermistor.

Macros

#define RAIL_INVALID_THERMISTOR_VALUE   (0xFFFFFFFF)
 A sentinel value to indicate an invalid thermistor measurement value.

Functions

RAIL_Status_t RAIL_StartThermistorMeasurement (RAIL_Handle_t railHandle)
 Start a Thermistor measurement.
 
RAIL_Status_t RAIL_GetThermistorImpedance (RAIL_Handle_t railHandle, uint32_t *thermistorImpedance)
 Get the thermistor impedance measurement and returns RAIL_INVALID_THERMISTOR_VALUE if the thermistor is not properly configured or the thermistor measurement is not ready.
 
RAIL_Status_t RAIL_ConvertThermistorImpedance (RAIL_Handle_t railHandle, uint32_t thermistorImpedance, int16_t *thermistorTemperatureC)
 Convert the thermistor impedance into temperature, in Celsius.
 
RAIL_Status_t RAIL_ComputeHFXOPPMError (RAIL_Handle_t railHandle, int16_t crystalTemperatureC, int8_t *crystalPPMError)
 Compute the crystal PPM deviation from the thermistor temperature.
 
RAIL_Status_t RAIL_ConfigHFXOThermistor (RAIL_Handle_t railHandle, const RAIL_HFXOThermistorConfig_t *hfxoThermistorConfig)
 Configure the GPIO for thermistor usage.

Detailed Description

APIs to measure temperature using an external thermistor.

This feature allows reading the temperature via an external thermistor on chips that support it. This will require connecting the necessary components and configuring the pins as required.

Function Documentation

◆ RAIL_ComputeHFXOPPMError()

RAIL_Status_t RAIL_ComputeHFXOPPMError ( RAIL_Handle_t  railHandle,
int16_t  crystalTemperatureC,
int8_t *  crystalPPMError 
)

Compute the crystal PPM deviation from the thermistor temperature.

Parameters
[in]railHandleA RAIL instance handle.
[in]crystalTemperatureCCurrent crystal temperature.
[out]crystalPPMErrorPointer to current ppm error.
Returns
Status code indicating success of the function call.

This function is provided in the rail_util_thermistor plugin to get accurate values from our boards thermistor. For a custom board, this function could be modified and re-implemented for other needs. The variable railHandle is only used to indicate to the user from where the function was called, so it is okay to use either a real protocol handle, or one of the chip-specific ones, such as RAIL_EFR32_HANDLE.

Note
This plugin is mandatory on EFR32xG25 platform.

◆ RAIL_ConfigHFXOThermistor()

RAIL_Status_t RAIL_ConfigHFXOThermistor ( RAIL_Handle_t  railHandle,
const RAIL_HFXOThermistorConfig_t hfxoThermistorConfig 
)

Configure the GPIO for thermistor usage.

Parameters
railHandleA RAIL instance handle.
[in]hfxoThermistorConfigThe thermistor configuration pointing to the GPIO port and pin to access.
Returns
Status code indicating success of the function call.
Note
The port and pin that must be passed in RAIL_HFXOThermistorConfig_t are GPIO_THMSW_EN_PORT and GPIO_THMSW_EN_PIN respectively.

◆ RAIL_ConvertThermistorImpedance()

RAIL_Status_t RAIL_ConvertThermistorImpedance ( RAIL_Handle_t  railHandle,
uint32_t  thermistorImpedance,
int16_t *  thermistorTemperatureC 
)

Convert the thermistor impedance into temperature, in Celsius.

Parameters
[in]railHandleA RAIL instance handle.
[in]thermistorImpedanceCurrent thermistor impedance measurement in Ohms.
[out]thermistorTemperatureCPointer to current thermistor temperature in eighth of Celsius degree
Returns
Status code indicating success of the function call.

This function is provided in the rail_util_thermistor plugin to get accurate values from our boards thermistors. For a custom board, this function could be modified and re-implemented for other needs. The variable railHandle is only used to indicate to the user from where the function was called, so it is okay to use either a real protocol handle, or one of the chip-specific ones, such as RAIL_EFR32_HANDLE.

Note
This plugin is mandatory on EFR32xG25 platform.

◆ RAIL_GetThermistorImpedance()

RAIL_Status_t RAIL_GetThermistorImpedance ( RAIL_Handle_t  railHandle,
uint32_t *  thermistorImpedance 
)

Get the thermistor impedance measurement and returns RAIL_INVALID_THERMISTOR_VALUE if the thermistor is not properly configured or the thermistor measurement is not ready.

Parameters
[in]railHandleA RAIL instance handle.
[out]thermistorImpedanceCurrent thermistor impedance measurement in Ohms.
Returns
Status code indicating success of the function call.

◆ RAIL_StartThermistorMeasurement()

RAIL_Status_t RAIL_StartThermistorMeasurement ( RAIL_Handle_t  railHandle)

Start a Thermistor measurement.

To get the Thermistor impedance, call the function RAIL_GetThermistorImpedance. On the EFR32xG22, this function reconfigures GPIO_THMSW_EN_PIN located in GPIO_THMSW_EN_PORT. To locate this pin, refer to the data sheet or appropriate header files of the device. For proper operation, RAIL_Init must be called before using this function.

Note
This function is not designed for safe usage in multiprotocol applications.
Parameters
[in]railHandleA RAIL instance handle.
Returns
Status code indicating success of the function call.