TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2640R2F ADC采样时间

使用的CC2640R2F 7×7封装,有用到两个ADC channel,一个检测电量(IOID_25),一个检卡(IOID_30)。

测试发现 IOID_25 的ADC采样一次用时 40us, IOID_30 的ADC采样需要10ms。 注:采样到的值都是正确的。

1. 将 IOID_25 和 IOID_30 都连接到同一个信号上(电量信号),现象不变,说明2个ADC channel采样时间的差异与外部输入信号无关

2. 这两个ADC channel的初始化、采样这部分代码都是一样的,如下:

static void app_adc_init( void )
{ADC_ParamsadcParams;ADC_init();ADC_Params_init(&adcParams);app_battery_adc_handle = ADC_open( ADC_BATTERY_DETECT, &adcParams );if( app_battery_adc_handle == NULL )while(1);ADC_Params_init(&adcParams);app_card_adc_handle = ADC_open( ADC_CV520_CARD_DETECT, &adcParams );if( app_card_adc_handle == NULL )while(1);
}

void app_evt_process_rfu_timer(void)
{HWREGB( GPIO_BASE + GPIO_O_DOUT3_0 + PIN_DBG_03 ) = 1;ADC_convert( app_card_adc_handle, &adc_test );
//ADC_convert( app_battery_adc_handle, &CurValue );HWREGB( GPIO_BASE + GPIO_O_DOUT3_0 + PIN_DBG_03 ) = 0;
}

为什么 IOID_30 的ADC采样时间会这么长 ?需要10ms,而 IOID_25 只需要 40us。

Viki Shi:

“这两个ADC channel的初始化、采样这部分代码都是一样的”,确认一下,两个通道的sample time都完全一致吗?

AndyChen:

回复 Viki Shi:

Hi Viki,

不确定你说的“sample time”是指什么,是指采样时间,还是只采样频率/周期,还是采样时钟源频率。。。如果是指采样时间,这正是我的问题所在:

“ IOID_25 的ADC采样一次用时 40us, IOID_30 的ADC采样需要10ms ” 

注:我这里所测的采样时间是ADC_convert()函数的执行时间。

Viki Shi:

回复 AndyChen:

我指的是采样频率/周期,两个通道设置得完全一致吗

AndyChen:

回复 Viki Shi:

我测试的时候都是定时器定时2秒采样一次。  采样时钟频率不知道是否有地方可以设置,  ADC.h中的ADC_Params也并没有相关的设置

typedef struct ADC_Params_ {void*custom;/*!< Custom argument used by driverimplementation */boolisProtected;/*!< By default ADC uses a semaphoreto guarantee thread safety. Settingthis parameter to 'false' will eliminatethe usage of a semaphore for threadsafety. The user is then responsiblefor ensuring that parallel invocationsof ADC_convert() are thread safe. */
} ADC_Params;

赞(0)
未经允许不得转载:TI中文支持网 » CC2640R2F ADC采样时间
分享到: 更多 (0)