This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2650MODA:ADC 精度

Guru**** 2562120 points
Other Parts Discussed in Thread: CC2650MODA, CC2650

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/631922/cc2650moda-adc-accuracy

器件型号:CC2650MODA
Thread 中讨论的其他器件: CC2650

您好!

 

我对 CC2650MODA 上的 ADC 精度有疑问。 我正在使用 TI 项目 adcsinglechane_CC2650_LAUNCHXL 来测量我的定制硬件上的输入电压(使用 CC2650MODA)。  

我在-100mV (输入电压为1.6V)的故障下测量了电压。
是否有方法提高 ADC 的精度?

我已按以下方式配置 ADC:

typedef 枚举 CC2650_LAUNCHXL_ADCName{
CC2650_LAUNCHXL_ADC0 = 0、
CC2650_LAUNCHXL_ADC1、
CC2650_LAUNCHXL_ADC2、
CC2650_LAUNCHXL_ADC3、
CC2650_LAUNCHXL_ADC4、
CC2650_LAUNCHXL_ADC5、
CC2650_LAUNCHXL_ADC6、
CC2650_LAUNCHXL_ADC7、
CC2650_LAUNCHXL_ADCDCOUPL、
CC2650_LAUNCHXL_ADCVSS、
CC2650_LAUNCHXL_ADCVDDS、
CC2650_LAUNCHXL_ADCCOUNT
}CC2650_LAUNCHXL_ADCName;

...

const ADCBufCC26XX_AdcChannelLutEntry ADCBufCC26XX_adcChannelLutt[]={
{PIN_Unassigned、ADC_COMPB_IN_VDDS}、
{PIN_Unassigned、ADC_COMPB_IN_DCOUPL}、
{PIN_Unassigned、ADC_COMPB_IN_VSS}、
{PIN_UNLOADD、ADC_COMPB_IN_AUXIO7}、
{PIN_UNLOADD、ADC_COMPB_IN_AUXIO6}、
{PIN_UNLOADD、ADC_COMPB_IN_AUXIO5}、
{PIN_UNLOADD、ADC_COMPB_IN_AUXIO4}、
{PIN_UNLOADD、ADC_COMPB_IN_AUXIO3}、
{PIN_UNLOADD、ADC_COMPB_IN_AUXIO2}、
{PIN_UNLOADD、ADC_COMPB_IN_AUXIO1}、
{IOID_14、ADC_COMPB_IN_AUXIO0}、
};

const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[CC2650_LAUNCHXL_ADCCOUNT]={
{
.adcDIO = IOID_14、
.adcCompBInput = ADC_COMPB_IN_AUXIO0、
.refSource = ADCCC26XX_fixed_reference、
.samplingDuration = ADCCC26XX_SAMPLING_DURAY_682_US、
.inputScalingEnabled = true、
triggerSource = ADCCC26XX_TRIGGER_MANUAL
},
...

读出 ADC 值

ADC_PARAMS_INIT (params);
ADC = ADC_open (CC2650_LAUNCHXL_ADC0、params);

if (ADC == NULL){
system_abort ("初始化 ADC 通道1\n"\n 时出错);
}
否则{
system_printf ("ADC 通道1已初始化\n");
}

对于(I = 0;I < ADC_SAMPLE_COUNT;I++){
RES = ADC_convert (ADC、&adcValue1[i]);

if (res == ADC_STATUS_SUCCESS){
system_printf ("ADC 通道1转换结果(%d):0x%x\n"、i、
adcValue1[i]);
}
否则{
system_printf ("ADC 通道1转换失败(%d)\n"、i);
}

system_flush();
}

ADC_Close (ADC); 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Tobias、

    您在此使用的是 CC13xx/CC26xx 的 TI-RTOS 版本?

    Tom
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Tobias、

    您测量的电压的阻抗是多少? 由于您非常不愿意、因此您可能需要增加采样时间或以某种方式降低源阻抗。

    此致、
    Fredrik