deweyled 发表于 2011-4-9 20:06:22

请教MSP430F149—ADC转换数据跳动问题

RT

MSP430F149的ADC为12位,当参考电压为2.5V时分辨率为0.6mV。

实际测量时,电压数据读数在mV级跳动。

已经采用多次采样求平均值算法滤波。数据仍然跳动,请教坛里的大侠们有什么办法改善。

附上模糊的图片一张,手机拍摄。

http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_629615FI33F4.jpg
(原文件名:图像020.jpg)

主函数程序

ulong j;
uchar data[]={"0.00000V"};

#define Nt 100

int main( void )
{
WDTCTL = WDTPW + WDTHOLD;
uchar i;
Clock_int();
Port_Int();
TFT_Int();
ADC_Int();
Clear_Screen(White);
Print_CN(20,108,4,24,Voltage,Black,White);
while(1)
{
    j=0;
    for(i=0;i<Nt;i++)
    {
      j=j+Get_ADC_Data();
      Delay(5);
    }
    j=j*2500/4095;
    data=(j/100000)+'0';
    data=(j%100000/10000)+'0';
    data=(j%10000/1000)+'0';
    data=(j%1000/100)+'0';
    data=(j%100/10)+'0';
    data=(j%10)+'0';
    j=0;
    Print_String(160,120,data,Black,White);
}
}

517456 发表于 2011-4-9 20:43:00

这款芯片有点垃圾,尽量使用外部参考电压、使用单通道采样看看。以前用F147的时候也出现数字跳动,单通道时会有2-3位数据变化,多通道切换时会有4位左右跳变,后来换成外部AD才解决。除了AD外,复位也有很大问题。

cc1989summer 发表于 2011-4-9 21:25:39

好吧,你所谓的垃圾。。。。。
AD转换最好采用中断的的方式,我做过用内部电压做参考测一节电池的,很稳定。
建议多参考TI的官方例程。

liuzq1981 发表于 2011-4-10 13:47:37

首先不要期望MSP430 ADC12转换的精度和稳定性,内部AD只适用于精度要求不高的情况下,比如供电电压。

至于跳动问题,如果精度满足要求的话,适当用软件处理一下,比如跳动在允许范围内可以忽略。

如果实在想用单片机内部AD准确测量,建议用带SD16的单片机,可以将精度扩大到18位或20位,但也会有跳动,需要软件处理一下。

deweyled 发表于 2011-4-11 14:34:24

首先谢谢楼上几位的回答

to 1楼:请教一下1楼的大侠有没有用过430的上的运算放大器,参考下有没有利用的价值。

to 2楼:他的内部电压输出似乎不是很稳定,用示波器看参考电压输出脚有几mV的跳动。

to 3楼:SD16模块还没有看过,哪天玩玩。

lningbd 发表于 2011-4-11 20:19:25

电源的噪声对MSP430的AD采样影响很大,先看看电源是不是干净。

517456 发表于 2011-4-12 10:38:52

MSP430的运放从来没用过,使用12位AD的时候我们一般会使用MCP320X(如MCP3204)的芯片。

electricit 发表于 2011-4-12 17:19:30

我用的149线性度非常好,1..20ma都可以精确测量,不跳呀,检查你焊接是否有问题,电源是否有问题
页: [1]
查看完整版本: 请教MSP430F149—ADC转换数据跳动问题