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

CC2540的传输速度和ADC

大家好,我有两个问题想咨询一下。

1。.我用CC2540与手机传输数据,只能达到么1.8KB/S,再快就会丢包。

数据手册上讲一次连接可以传输4个包,可是我测试的时候一次连接只能传1个包,传两个包都会丢数据。这是为什么呢?

2。CC2540的ADC输出数值有偏移(我用的是14位精度),虽然转换曲线是直线,但是直线的斜率变了

我现在用的办法是找一个较大的值和一个较小的值,生成一个直线方程才能校准(见下方)。

可是,后来发现每个芯片的偏移量和斜率都不一样,难道每个芯片都要用程序去校准?

//ADC计算值应该为4407,实测为4212
//ADC计算值应该为3733,实测为3602
//据上两个点生成直线方程 (y=1.105x-247)

Yan:

Kery,

想提高传输速度,请参考:http://processors.wiki.ti.com/index.php/OverlappedProcessing

关于ADC,请看这个文档的第12章:http://www.ti.com/lit/ug/swru191f/swru191f.pdf

Kery Lee:

回复 Yan:

hello Yan,

你所说的两个文档,我之前都有看过。是因为我的测到的实际值与文档的理论值不一样才来此咨询的。

与否告知:

1,与手机的实时传输速度提高到3.5KB/S能否稳定工作不丢包?

2,ADC的偏差是否由硬件本身造成的?

Kery Lee:

回复 Kery Lee:

ADC的精度问题还是没有解决,我测试了两块板情况都一样,测试情况如下:(我现在用AVDD5作参考电压,14位分辨率,ADC1口采样)

一块板AVDD5的电压为3.268V,ADC1的电压为1.634V,理论转换值应该是4096,
可是连续5次测到的值为:3932,3931,3931,3931,3931。

另一块板AVDD5的电压为3.269V,ADC1的电压为1.633V,理论转换值应该是4092,
可是连续5次测到的值为:4017,4017,4016,4017,4016。

如果每个都不一样,软件也没办法校准啊,请问如何解决?我试过不跑协议,只写一个简单的ADC采样程序,测试情况都差不多。

zongru zhan:

回复 Kery Lee:

这种情况应该属于参考电压偏差大, 如果对ADC一致性要求较高, 可以考虑使用外部专门的参考源。

zongru zhan:

回复 Kery Lee:

这个是参考电源的偏差,建议使用外部精准参考电压源

Kery Lee:

回复 zongru zhan:

Dear zongru zhan,

其实VDD5就是外部参考电压啊,

鉴于你的建议,我也做了如下测试,

在ADC1接的电压=0.506V,在ADC7接的电压=0.653V

用内部参考电压,测得ADC1的ADC值为3392,ADC7的ADC值为3380。(这里我非常不明白,不准就不准,为什么电压大的值反而要小?)

然后用ADC7做参考电压,测得ADC1的值为5252。(这个也不准啊,正常值应该是0.506/0.653*8192=6347)

 

测试的时候,没跑协议,代码很简单,

#include<ioCC2541.h>

unsigned int count,val[10];

 int AdValue=0;

 void main()

 {  //设置系统时钟32MHz    

     CLKCONCMD &= ~0x40;    

     while(CLKCONSTA & 0x40);       

     CLKCONCMD &= ~0x47;    

 //ADC初始化   

       APCFG=0xff;

     ADCCON1 = 0x33;

     ADCCON3 = 0x31;

 //ADC采样5次    

   for(count=0;count<5;count++)    

   {        

         ADCCON3 = 0x31;          //内部基准  12位ENOB  通道1

        while(!(ADCCON1&0X80));

        AdValue = ADCL>>2 ;        

        AdValue |= ADCH <<6;       

        if(AdValue<0) AdValue=0;        

        val[count]=AdValue;    

     }    

     while(1);

 }

TI的工程师帮看下,这是不是芯片本来的缺陷?

 

 

zongru zhan:

回复 Kery Lee:

我说的外部参考源 是专门的参考电压输出片子 比如TL431

http://www.ti.com/product/tl431

Fred Wang:

回复 Kery Lee:

文档上有说明,最好使用内部参考电压1.25V来做标准。外部电路可以采用分压法测量。

赞(0)
未经允许不得转载:TI中文支持网 » CC2540的传输速度和ADC
分享到: 更多 (0)