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

MSP430F6720的SD24输出噪声很大

我用MSP430F6720在设计一个采集电压的装置,但是SD24采集出来的数字跳动幅度很大(有50多万),我觉得是电路设计有问题,网络太慢原理图传不上去,可以给我留个邮箱,我发到邮箱去,谢了

KW X:

亲;这种情况;与原理及PCB地线处理有关。建议原理及PCB都传一下。

Martin:

SD24需要配置内部的OSR,你配置成多少?

OSR的配置还与数据有效输出位数有关,你实际上读取了多少位数据?

xinpeng wang:

回复 KW X:

我的OSR是1024,时钟采用FLL的DCOCLKDIV输出,频率为1MHZ多点(FLL的DCOCLK频率大约在9MHZ=32768*299),信号输入采用OPA2335缓冲输入

xinpeng wang:

回复 Martin:

我读到的位数为31位(包括一个符号位),输入信号在1.2V(差分)是达到最大值,为1073741823,在-1.2V时为1073741823的补码,按说满幅时候应该是对的。

+0000552452————-+0000028167+0000497502————-+0000038753+0000547978————-+0000023694+0000547662————-+0000023377+0000572420————-+0000048137

上面是我用串口打印出的数据,左边是SD24_0的数据,两个输入端我接到一起了;右边是SD_1的数据,的两个输入端我全部接地

Martin:

回复 xinpeng wang:

0通道和1通道之间的差别怎么那么大?!两个通道内部的配置是一样的吗?

你的输入接地是在OPA2335之前还是之后呢?是不是运放的偏置引起的问题?

你有没有实际计算过这两个结果实际相差多少mV?

xinpeng wang:

回复 Martin:

我是在OPA2335前面接在一起的,应该不是偏置问题,我测量的OPA335的输出为0.6V,结果理论上应该是差几百微伏,我万用表是三位半的,测不到uV电压。

会不会是因为VASYS和VDSYS这两个管脚的问题,我把这两个管脚分别与AVCC与DVCC接在一起了,当时我接在一起时就犯嘀咕。

Martin:

回复 xinpeng wang:

建议断开OPA335跟SD24之间的连接,直接将SD24的输入短路并连接到地,看看这两个通道的结果分别是什么,并换算成实际电压看看是多少uV!

xinpeng wang:

回复 Martin:

断开OPA2335并输入短路接地后还是原来那么大,应该是600uV左右,都快上毫伏了,下面是打印出来的数据,以前那个通道1弄错了,和通道0的一样

+0000658598————-+0000658598+0000658890————-+0000658890+0000667396————-+0000667396+0000580294————-+0000645830

xinpeng wang:

回复 xinpeng wang:

对了,再说一下我AD的配置,采用双通道多次转换模式,完成后中断,时钟采用32768倍频299次后,在8分频,得到1.2MHZ的频率,供给SD24。下面是AD的配置程序:

extern void ADC_Initializer(){ SD24BCTL0 = SD24SSEL_1; // Select SMCLK as SD24_B clock source SD24BCCTL0=SD24DF_1+SD24SCS_4+SD24SNGL; SD24BOSR0=1023; //oversampling ratio 1024

SD24BCCTL1=SD24DF_1+SD24SCS_4+SD24SNGL; //channel1设置为单次转换 SD24BOSR1=1023; //oversampling ratio 1024 SD24BIE = SD24IE0+SD24IE1; // Enable channel 1 interrupt }

#pragma vector=SD24B_VECTOR__interrupt void SD24BISR(void){ static uint ADC_Read_Counter=0; static long Temp_Sum=0; long Temp=0; switch (SD24BIV) { int i; case SD24BIV_SD24OVIFG: // SD24MEM Overflow break; case SD24BIV_SD24TRGIFG: // SD24 Trigger IFG break; case SD24BIV_SD24IFG0: // SD24MEM0 IFG i=SD24BMEML0; Pipe_Voltage=(((long)SD24BMEMH0)<<16)+i; break; case SD24BIV_SD24IFG1: // SD24MEM1 IFG i=SD24BMEML0; Battery_Voltage=(((long)SD24BMEMH1<<16)+i); break; }}

xinpeng wang:

回复 Martin:

还有个现象,我将通道0输入切换到ManchesterDecoder(将调制器关闭),通道1保持正常输入,结果串口打印结果变成如下:

-1073807361————-+0000655359-1073807361————-+0000655359-1073807361————-+0000655359-1073807361————-+0000655359-1073807361————-+0000655359

好像通道1也受到影响了,但是若要是将通道1切换到ManchesterDecoder,通道0保持正常输入,则通道0不受通道1影响,如下:

+0000608546————–1073788638+0000521522————–1073810126+0000611120————–1073786064+0000518928————–1073812720+0000605984————–1073791200+0000612820————–1073784364

我这里的负值是原来结果取反加一后的结果

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F6720的SD24输出噪声很大
分享到: 更多 (0)