请教MSP430F149—ADC转换数据跳动问题
RTMSP430F149的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);
}
} 这款芯片有点垃圾,尽量使用外部参考电压、使用单通道采样看看。以前用F147的时候也出现数字跳动,单通道时会有2-3位数据变化,多通道切换时会有4位左右跳变,后来换成外部AD才解决。除了AD外,复位也有很大问题。 好吧,你所谓的垃圾。。。。。
AD转换最好采用中断的的方式,我做过用内部电压做参考测一节电池的,很稳定。
建议多参考TI的官方例程。 首先不要期望MSP430 ADC12转换的精度和稳定性,内部AD只适用于精度要求不高的情况下,比如供电电压。
至于跳动问题,如果精度满足要求的话,适当用软件处理一下,比如跳动在允许范围内可以忽略。
如果实在想用单片机内部AD准确测量,建议用带SD16的单片机,可以将精度扩大到18位或20位,但也会有跳动,需要软件处理一下。 首先谢谢楼上几位的回答
to 1楼:请教一下1楼的大侠有没有用过430的上的运算放大器,参考下有没有利用的价值。
to 2楼:他的内部电压输出似乎不是很稳定,用示波器看参考电压输出脚有几mV的跳动。
to 3楼:SD16模块还没有看过,哪天玩玩。 电源的噪声对MSP430的AD采样影响很大,先看看电源是不是干净。 MSP430的运放从来没用过,使用12位AD的时候我们一般会使用MCP320X(如MCP3204)的芯片。 我用的149线性度非常好,1..20ma都可以精确测量,不跳呀,检查你焊接是否有问题,电源是否有问题
页:
[1]