8个帖子/ 0个新
最后发表
csq
离线
最后看到:一年6个月前
加入:2018-08-05 08:56
SUOTA adc采样速率没有数据表说的那么高

for (int i = 0;我+ +){< 100;
adc_init (GP_ADC_SE GP_ADC_SIGN 0);
adc_enable_channel (3);
adc_sample4[我]= adc_get_sample ();
adc_disable ();

adc_init (GP_ADC_SE GP_ADC_SIGN 0);
adc_enable_channel (0);
adc_sample1[我]= adc_get_sample ();
adc_disable ();

adc_init (GP_ADC_SE GP_ADC_SIGN 0);
adc_enable_channel (2);
adc_sample3[我]= adc_get_sample ();
adc_disable ();

adc_init (GP_ADC_SE GP_ADC_SIGN 0);
adc_enable_channel (1);
adc_sample2[我]= adc_get_sample ();
adc_disable ();

我用adc采样,然而在经过100个循环后,总共400次,时间已经经过级女士了
特性
•10位动态ADC具有65 ns转换时间

关键词:
设备:
FvD_Dialog
离线
最后看到:1个月2个星期前
工作人员
加入:2013-12-05 41
亲爱的csq,

亲爱的csq,

对不起,我用英语回答。

我们正在研究你的代码,并将努力优化它。

亲切的问候

FvD_Dialog

csq
离线
最后看到:一年6个月前
加入:2018-08-05 08:56
那么我如何使用ADC

那么我如何在高速率下使用ADC呢?

CYibin
离线
最后看到:7个月1周前
工作人员
加入:2017-12-14 02:48
你好,

你好,

这种计算方式不严谨。

你的代码里,采样时间应该只占了很少的一部分,代码损耗(为循环,函数调用),ADC初始化等占用的时间,比采样时间高多了。

请问你项目需要实现什么功能?需要多快的采样速度?

csq
离线
最后看到:一年6个月前
加入:2018-08-05 08:56
利用adc采集对高频调制信号的接收,大概1 mhz

利用adc采集对高频调制信号的接收,大概1 mhz,我主要在库里面没找到别的连续adc采样的相关库函数,或者最快能采多少

CYibin
离线
最后看到:7个月1周前
工作人员
加入:2017-12-14 02:48
嗨csq,

嗨csq,

理论可达3.3 Msample / s。

ADC初始化(20美元)并运行之后,转化时间是接近1人,处理转化的数据需要4人,故理论最大采样速度是16/5 = 3.3 msamples / s

实际上在把转化完成的数据存储到ram的过程中,还会有一些其它代码运行时间的损耗,故很难达到该理论值。

你是想ADC采样速率能达到1 mhz还是说想对1 mhz的波形进行采样吗?

csq
离线
最后看到:一年6个月前
加入:2018-08-05 08:56
对1 mhz的波形进行采样

对1 mhz的波形进行采样,底层的函数
adc_get_sample {

int cnt = ADC_TIMEOUT;
SetBits16 (GP_ADC_CTRL_REG GP_ADC_START 1);
while (cnt——&& (GetWord16(GP_ADC_CTRL_REG) & GP_ADC_START) != 0x0000);
SetWord16 (GP_ADC_CLEAR_INT_REG 0 x0000);/ /清除中断
返回GetWord16 (GP_ADC_RESULT_REG);

这个貌似没有连续读取模式

CYibin
离线
最后看到:7个月1周前
工作人员
加入:2017-12-14 02:48
你好,

你好,

3.3 mhz是理论能达到的采样速率,实际上,由于ram的限制,芯片主频的限制(16兆赫),还有额外的,处理代码的开销,可能并不适用”对1 mhz的波形进行采样“这种应用场景