#include <stdbool.h>
#include <stdint.h>
#include "../inc/hw_aon_pmctl.h"
#include "../inc/hw_ccfg.h"
#include "../inc/hw_fcfg1.h"
#include "../inc/hw_types.h"
#include "../inc/hw_memmap.h"
#include "../inc/hw_ddi.h"
#include "../inc/hw_ddi_0_osc.h"
#include "rom.h"
#include "ddi.h"
#include "debug.h"
Data Structures | |
struct | XoscLf_Params_t |
A structure that defines the polynomial coefficients for calculating the XOSC LF ppm offset as function of temperature. More... | |
struct | HposcDebugData_t |
Data structure for experimental HPOSC polynomials calculation. More... | |
Macros | |
#define | LOW_POWER_XOSC 1 |
#define | HIGH_POWER_XOSC 0 |
#define | OSC_SRC_CLK_HF 0x00000001 |
#define | OSC_SRC_CLK_LF 0x00000004 |
#define | OSC_RCOSC_HF 0x00000000 |
#define | OSC_XOSC_HF 0x00000001 |
#define | OSC_RCOSC_LF 0x00000002 |
#define | OSC_XOSC_LF 0x00000003 |
#define | SCLK_HF_RCOSC_HF 0 |
#define | SCLK_HF_XOSC_HF 1 |
#define | SCLK_LF_FROM_RCOSC_HF 0 |
#define | SCLK_LF_FROM_XOSC_HF 1 |
#define | SCLK_LF_FROM_RCOSC_LF 2 |
#define | SCLK_LF_FROM_XOSC_LF 3 |
Functions | |
static void | OSCXHfPowerModeSet (uint32_t ui32Mode) |
Set Power Mode for High Frequency XTAL Oscillator. More... | |
static void | OSCClockLossEventEnable (void) |
Enables OSC clock loss event detection. More... | |
static void | OSCClockLossEventDisable (void) |
Disables OSC clock loss event detection. More... | |
void | OSCClockSourceSet (uint32_t ui32SrcClk, uint32_t ui32Osc) |
Configure the oscillator input to the a source clock. More... | |
uint32_t | OSCClockSourceGet (uint32_t ui32SrcClk) |
Get the source clock settings. More... | |
static bool | OSCHfSourceReady (void) |
Check if the HF clock source is ready to be switched. More... | |
static void | OSCHfSourceSwitch (void) |
Switch the high frequency clock. More... | |
static bool | OSC_IsHPOSCEnabled (void) |
Identifies if HPOSC is enabled. More... | |
static bool | OSC_IsHPOSCEnabledWithHfDerivedLfClock (void) |
Identifies if HPOSC is enabled and that SCLK_LF is derived from XOSC_HF. More... | |
uint32_t | OSCHF_GetStartupTime (uint32_t timeUntilWakeupInMs) |
Returns maximum startup time (in microseconds) of XOSC_HF. More... | |
void | OSCHF_TurnOnXosc (void) |
Turns on XOSC_HF (but without switching to XOSC_HF). More... | |
bool | OSCHF_AttemptToSwitchToXosc (void) |
Switch to XOSC_HF if XOSC_HF is ready. More... | |
void | OSCHF_SwitchToRcOscTurnOffXosc (void) |
Switch to RCOSC_HF and turn off XOSC_HF. More... | |
uint32_t | OSCHF_DebugGetCrystalAmplitude (void) |
Get crystal amplitude (assuming crystal is running). More... | |
uint32_t | OSCHF_DebugGetExpectedAverageCrystalAmplitude (void) |
Get the expected average crystal amplitude. More... | |
uint32_t | OSCHF_DebugGetCrystalStartupTime (void) |
Measure the crystal startup time. More... | |
void | OSC_HPOSCInitializeFrequencyOffsetParameters (void) |
HPOSC initialization function. Must always be called before using HPOSC. More... | |
void | OSC_HPOSC_Debug_InitFreqOffsetParams (HposcDebugData_t *pDebugData) |
Debug function to calculate the HPOSC polynomials for experimental data sets. More... | |
void | OSC_HPOSCInitializeSingleInsertionFreqOffsParams (uint32_t measFieldAddress) |
Special HPOSC initialization function for single temperature compensation. More... | |
int32_t | OSC_HPOSCRelativeFrequencyOffsetGet (int32_t tempDegC) |
Calculate the temperature dependent relative frequency offset of HPOSC. More... | |
void | OSC_CapArrayAdjustWorkaround_Boot (void) |
Special XOSC_HF workaround adjustment for CC13x2 / CC26x2 XOSC_CAPARRAY_DELTA setting in CCFG (Customer configuration) More... | |
void | OSC_AdjustXoscHfCapArray (int32_t capArrDelta) |
Adjust the XOSC HF cap array relative to the factory setting. More... | |
int16_t | OSC_HPOSCRelativeFrequencyOffsetToRFCoreFormatConvert (int32_t HPOSC_RelFreqOffset) |
Converts the relative frequency offset of HPOSC to the RF Core parameter format. More... | |
void | OSC_HPOSCRtcCompensate (int32_t relFreqOffset) |
Compensate the RTC increment based on the relative frequency offset of HPOSC. More... | |
void | OSC_LFXOSCInitStaticOffset (void) |
Initialize device specific coefficient for XOSC LF RTC compensation. More... | |
int32_t | OSC_LFXOSCRelativeFrequencyOffsetGet (int32_t temperature) |
Calculates the ppm offset of XOSC LF for a given temperature. More... | |