这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » SD16 【求助】我的SD16采集怎么有问题?

共2条 1/1 1 跳转至

SD16 【求助】我的SD16采集怎么有问题?

院士
2006-09-17 18:14:16     打赏
SD16 【求助】我的SD16采集怎么有问题?



关键词: 求助     我的     采集     怎么     有问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 ad采集4~20mA电流信号,观察SD16MEM0,不论输入多大,每采集几轮总会出现0x8011左右的数,也就是32768,(其余的值没事儿)。不论我采用什么采集方式都是这样。

而且采集值都偏大很多,而且飘动很厉害。理论值应该是0x1555~0x6AAA(对应4~20mA),而采集值达到了(0x8xxx~0xBxxx)而且飘动严重。怎么回事?



void init(void)
{
TACTL = TASSEL_1+ID_3+TACLR+MC_1;
CCTL0 = CCIE;
CCR0 = CONST_TA;
FLL_CTL0 |= XCAP14PF;
SD16CTL = SD16REFON;
SD16CCTL0 |= SD16SNGL+SD16GRP;
SD16CCTL1 |= SD16SNGL+SD16GRP;
SD16CCTL2 |= SD16SNGL+SD16IE;
}

在Time_A定时中断中开采集
SD16CCTL2 |= SD16SC; // Start conversion
并读取SD16MEMx值并经过滤波;
}

我的时钟Timer_A是32KHz 8分频,ACLK,up-mode

请问高手,这是怎么造成的?我怀疑是我的SD16的初始化有问题,可是问题在哪儿? 1: 通道好像没有设置阿?
还有,要SD16CONF1 |= 0x40; 2: 程序是按旧的user'sguide 设置的,在新的user' guide 中可能有些要调整,


ESPCTL &= ~BIT0;

SD16CTL = 0x800 + SD16SSEL_1 // Clock selection: SMCLK + (Amp: )
| SD16DIV_1 //divide by 4 to give 1MHz clock
| SD16VMIDON //Swtich on external reference for the wheatstone bridge
| SD16REFON // Use internal reference
;

SD16CONF1 |= 0x40; // Delay of ADC clock = 40ns



SD16INCTL0=INCH_0+GAIN_1; //SD16_1 route to I1+/- input, Gain = 1
SD16CCTL0 |= GRP+SNGL+DF; //2's compliment output, single shot
//group conversion mode

SD16INCTL1 = INCH_1+GAIN_1; //SD16_1 route to I2+/- input, Gain = 16
SD16CCTL1 |= GRP+SNGL+DF; //SD16IE+DF;
//2's compliment output, single shot
//group conversion mode


SD16INCTL2=INCH_2+GAIN_1;; //SD16_1 route to V+/- input, Gain = 1
SD16CCTL2|=SNGL+DF; //2's compliment output, single shot
//master of the group conversion 3: 有些注释错了 4: 为什么我的采样值都高很多(我输入4~20mA,对应显示40~200;实际上却显示400~17xx(17xx以后采样值SD16MEM0就变成65535,不能再增加了)。大概大10倍,而且飘得很厉害!)?没有输入的时候SD16MEMx都是32768,这对么?

看利尔达的SD16内部温度传感器的例子,计算温度的公式是:(ADvalue-32768)*909/65535

为什么要减去32768? 5: 那时数据格式的问题,
你看看他上面的设置,是unipolar还是Bipolar 6: 现在超限的问题已经解决了,是因为内部参考电压的问题。

但采集的漂动太大了!输入电压没问题,输出4位显示的后两位都在跳。

输入电流越大跳得越厉害!看SD16MEM0的采样值,在20mA输入时理论上是60000出头,可是实际得到的值在5XXXX~6XXXX间跳得厉害。不知是什么原因。(这么大的跳动,数字滤波也没用阿)

是不是和采样周期以及time_A周期之类的有关?

我现在ACLK 32K;MCLK:64*ACLK;SD16时钟源是MCLK。Timer_A时钟源ACLK,CCR0=32;在Timer_A中做AD采集。AD采集不用SD16的中断。 7: 一年前的帖子被大家翻出来-_-b

庆祝一下^_^ 8: 哪位大虾给小菜说两句SD是什么意思?sd16是什么 9: sigma-delta(阿拉伯字母的读音)
sd16 就是16位的sd ADC

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]