EFR32
EFR32-specific CalibrationsThe EFR32 supports the Image Rejection (IR) calibration and a temperature-dependent calibration.
Data Structures |
|
struct | RAIL_CalValues_t |
A calibration value structure.
|
Macros |
|
#define | RAIL_CAL_TEMP_VCO (0x00000001U) |
EFR32-specific temperature calibration bit.
|
|
#define | RAIL_CAL_ONETIME_IRCAL (0x00010000U) |
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 | RAIL_CAL_PERF (0) |
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 | RAIL_CAL_INVALID_VALUE (0xFFFFFFFFU) |
An invalid calibration value.
|
|
#define | RAIL_CALVALUES_UNINIT |
A define to set all
RAIL_CalValues_t
values to uninitialized.
|
Functions |
|
RAIL_Status_t | RAIL_ApplyIrCalibration ( RAIL_Handle_t railHandle, uint32_t imageRejection) |
Applies a given image rejection calibration value.
|
|
RAIL_Status_t | RAIL_CalibrateIr ( RAIL_Handle_t railHandle, uint32_t *imageRejection) |
Runs the image rejection calibration.
|
|
RAIL_Status_t | RAIL_IEEE802154_CalibrateIr2p4Ghz ( RAIL_Handle_t railHandle, uint32_t *imageRejection) |
Calibrates image rejection for IEEE 802.15.4 2.4 GHz.
|
|
RAIL_Status_t | RAIL_IEEE802154_CalibrateIrSubGhz ( RAIL_Handle_t railHandle, uint32_t *imageRejection) |
Calibrates image rejection for IEEE 802.15.4 915 MHz and 868 MHz.
|
|
RAIL_Status_t | RAIL_BLE_CalibrateIr ( RAIL_Handle_t railHandle, uint32_t *imageRejection) |
Calibrates image rejection for Bluetooth Low Energy.
|
|
RAIL_Status_t | RAIL_CalibrateTemp ( RAIL_Handle_t railHandle) |
Runs the temperature calibration.
|
Detailed Description
EFR32-specific Calibrations
The EFR32 supports the Image Rejection (IR) calibration and a temperature-dependent calibration.
The IR calibration can be computed once and stored off or computed each time at startup. Because it is PHY-specific and provides sensitivity improvements, it is highly recommended. The IR calibration should only be run when the radio is IDLE.
The temperature-dependent calibrations are used 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 state, so that the application can omit this calibration if the stack re-enters receive 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.
Macro Definition Documentation
#define RAIL_CALVALUES_UNINIT |
rail_chip_specific.h:235
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
361
of file
rail_chip_specific.h
.
Function Documentation
RAIL_Status_t RAIL_ApplyIrCalibration | ( | RAIL_Handle_t |
railHandle,
|
uint32_t |
imageRejection
|
||
) |
Applies 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.
RAIL_Status_t RAIL_BLE_CalibrateIr | ( | RAIL_Handle_t |
railHandle,
|
uint32_t * |
imageRejection
|
||
) |
Calibrates 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.
RAIL_Status_t RAIL_CalibrateIr | ( | RAIL_Handle_t |
railHandle,
|
uint32_t * |
imageRejection
|
||
) |
Runs 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 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.
RAIL_Status_t RAIL_CalibrateTemp | ( | RAIL_Handle_t |
railHandle
|
) |
Runs 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 state, so that the application can omit this calibration if the stack re-enters receive 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.
RAIL_Status_t RAIL_IEEE802154_CalibrateIr2p4Ghz | ( | RAIL_Handle_t |
railHandle,
|
uint32_t * |
imageRejection
|
||
) |
Calibrates 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.
RAIL_Status_t RAIL_IEEE802154_CalibrateIrSubGhz | ( | RAIL_Handle_t |
railHandle,
|
uint32_t * |
imageRejection
|
||
) |
Calibrates 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.