SWRZ062F September 2015 – December 2022 CC1310
Periodic ADC Trigger at 200 kHz Rate Can Be Ignored When XOSC_HF Is Turned On or Off
A and B
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 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 (24 MHz).
SCLK_HF switches from RCOSC_HF to XOSC_HF at different times compared to the ADC clock. The fact that the clock is stopped, together with the difference in frequency between XOSC_HF and RCOSC_HF, may cause the ADC sampling and conversion to finish too late to catch the next trigger.
Use asynchronous sampling
The sampling period after the issue occurs can be reduced by 1.5% (1 clock cycle at 24 MHz)
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.
Increase the sampling period by 1/24 µs or more.