SWRZ131B September 2022 – June 2024 CC1354R10
ADC samples can be delayed by two or 14 clock cycles (24 MHz) when XOSC_HF is turned on or off, resulting in sample jitter.
Revision C
There is no dedicated clock source selection for the ADC clock. The clock is derived from either XOSC_HF or RCOSC_HF but defaults to an XOSC_HF-derived clock whenever this is turned on.
When the ADC clock source is switched from RCOSC_HF to XOSC_HF-derived clock, the clock will stop for 2 cycles (24MHz).
When the ADC clock source is switched from the XOSC_HF-derived clock to the RCOSC_HF-derived clock, the clock will stop for an additional 12 clock cycles, as the RCOSC_HF-derived clock is not ready when the switch is done.
SCLK_HF switches from RCOSC_HF to XOSC_HF at different times, compared to the ADC clock. This leads to a sample jitter.
Use asynchronous sampling
To use the ADC in asynchronous mode from the Sensor Controller:
Call adcEnableAsync()
to enable the ADC, instead of adcEnableSync()
Example:
adcEnableAsync(ADC_REF_FIXED, ADC_TRIGGER_AUX_TIMER0);
To use the ADC in asynchronous mode from the System CPU, by using the ADCBuf driver:
ADCBuf_Params params;
ADCBufCC26X2_ParamsExtension paramsExtension;
ADCBuf_Params_init(¶ms);
ADCBufCC26X2_ParamsExtension_init(¶msExtension);
paramsExtension.samplingMode = ADCBufCC26X2_SAMPING_MODE_ASYNCHRONOUS;
params.custom = ¶msExtension;
To use the ADC in asynchronous mode from the System CPU, by using DriverLib API:
Call AUXADCEnableAsync()
to enable the ADC, instead of AUXADCEnableSync()
Example:
AUXADCEnableAsync(AUXADC_REF_FIXED, AUXADC_TRIGGER_GPT0A);
Please note the difference between the asynchronous and synchronous ADC modes:
Ensure that XOSC_HF is not turned on or off while the ADC is used.