共2条
1/1 1 跳转至页
SD16 【求助】我的SD16采集怎么有问题?
问
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
而且采集值都偏大很多,而且飘动很厉害。理论值应该是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 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图四被打赏50分 | |
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 |