搜索
bottom↓
回复: 51

用过MSP430内部12位ADC的请进,这个模块好像很不稳定。

[复制链接]

出0入0汤圆

发表于 2012-4-2 14:49:48 | 显示全部楼层 |阅读模式
使用MSP430F5438A的外围模块ADC12做温度采集,2.5V外部基准(由精密电阻分压得到)。采集的温度数据非常不稳定,最大相差10度。用了中值滤波算法之后稳定很多,但在同一个温度时也会在两个不同的值之间随机跳动。设置程序如下:
  unsigned char i;
  P6SEL|=BIT0;                                                                                                     // Enable A/D channel A0        ADC12CTL0=ADC12ON+ADC12SHT0_2;                                                                  //+ADC12REFON+ADC12REF2_5V;
  ADC12CTL1=ADC12SHP;//+ADC12SSEL_1;                                                             //+ADC12CSTARTADD3;                           
  ADC12MCTL0=ADC12SREF_2;                                                                         // Vr+=VeREF+ and Vr-=AVss
  //ADC12CTL2=ADC12SR;
  for(i=0;i<0x30;i++);                                                                                           // Delay for reference start-up
  ADC12CTL0|=ADC12ENC;                                                                                  // Enable conversions

出0入0汤圆

发表于 2012-4-2 14:52:56 来自手机 | 显示全部楼层
你应该看ad值变化范围

出0入0汤圆

发表于 2012-4-2 15:23:05 | 显示全部楼层
这个跟供电、布局布线都有关系

出0入0汤圆

 楼主| 发表于 2012-4-2 16:32:31 | 显示全部楼层
380121850 发表于 2012-4-2 14:52
你应该看ad值变化范围

AD的变化看起来不大,但是经过公式计算转换成传感器的温度的时候就差了0.4度,这个是不允许的。

出0入0汤圆

 楼主| 发表于 2012-4-2 16:34:23 | 显示全部楼层
ringan865 发表于 2012-4-2 15:23
这个跟供电、布局布线都有关系

用稳压电源供电,还加了滤波电容,布线有些地方是飞的导线,这个影响也这么大?

出0入0汤圆

发表于 2012-4-2 17:17:58 | 显示全部楼层
你用电阻分压还不如430内部的参考电压呢

出0入0汤圆

发表于 2012-4-2 17:36:05 | 显示全部楼层
同意楼上,电压分出来的参考电压稳定度一般都不能达到要求。可以先试试内部的,看看是否还是这样抖动。你的ADC大概有几位在跳,你换算成电压值,再看看你的PCB板达到要求没有。

出0入85汤圆

发表于 2012-4-2 18:00:58 | 显示全部楼层
上图分析

出0入0汤圆

发表于 2012-4-3 18:46:31 | 显示全部楼层
如果AD值变化不大,那证明你噪声影响不明显才是
会不会是你转换造成的精度丢失?

出0入0汤圆

发表于 2012-4-3 18:51:25 来自手机 | 显示全部楼层
其实为什么不直接用温度芯片呢,也不贵

出0入0汤圆

发表于 2012-4-4 12:50:54 | 显示全部楼层
算法里面改进试试

出0入0汤圆

发表于 2012-4-8 20:34:59 | 显示全部楼层
把输入端对地短接,测量板子的系统噪声是多少!
这是你能做到的最好精度了!别的先不要谈。

出0入0汤圆

发表于 2012-4-11 23:50:36 | 显示全部楼层
同意6楼,确实不如用内部参考2.5V

出0入0汤圆

发表于 2012-4-11 23:55:50 来自手机 | 显示全部楼层

出0入0汤圆

发表于 2012-4-12 22:24:15 | 显示全部楼层
参考电压都不是很稳定的,建议楼主测一下

出0入0汤圆

发表于 2012-4-12 22:25:42 | 显示全部楼层
594832359 发表于 2012-4-2 16:32
AD的变化看起来不大,但是经过公式计算转换成传感器的温度的时候就差了0.4度,这个是不允许的。 ...

定义个数组,看下AD值变化大不。

看你的回复,AD值变化不大,会不会是计算公式的问题?

出0入0汤圆

发表于 2012-4-13 09:16:18 | 显示全部楼层
不懂。。顶一下!!!!

出0入0汤圆

发表于 2012-4-16 20:24:56 | 显示全部楼层
像这种情况,首先保证参考电压稳定,然后传感器过来的信号是否是线性的,如果不是那就需要软件进行补偿了,很多模拟信号的传感器输出受环境影响

出0入0汤圆

发表于 2012-4-16 20:40:22 | 显示全部楼层
觉得还是用430内部的参考电压比较靠谱!

出0入0汤圆

 楼主| 发表于 2012-4-18 14:37:07 | 显示全部楼层
dadongleilei 发表于 2012-4-16 20:40
觉得还是用430内部的参考电压比较靠谱!

可是内部只能选择1.5V或者2.5V或者3.3V,不够灵活,不能随意定义参考电压大小。。

出0入0汤圆

发表于 2012-5-20 09:44:01 | 显示全部楼层
我用TI测试程序
   用内部参考2.5
      AD转换结果始终为0x0FFF
         谁知道其原因???

出0入0汤圆

 楼主| 发表于 2012-5-21 16:25:11 | 显示全部楼层
642142533 发表于 2012-5-20 09:44
我用TI测试程序
   用内部参考2.5
      AD转换结果始终为0x0FFF

很明显你的电压超过了2.5V,0xFFF就是对应2.5V

出0入0汤圆

发表于 2012-5-21 18:19:46 | 显示全部楼层
已经解决

出0入0汤圆

发表于 2012-7-29 20:55:12 | 显示全部楼层
430内部AD感觉还好

出0入0汤圆

发表于 2012-7-30 09:34:19 | 显示全部楼层
如果用adc12osc可能不稳定

出0入0汤圆

 楼主| 发表于 2012-8-2 22:44:51 | 显示全部楼层
642142533 发表于 2012-5-21 18:19
已经解决

恭喜你~

出0入0汤圆

 楼主| 发表于 2012-8-2 22:45:43 | 显示全部楼层
ABT 发表于 2012-7-29 20:55
430内部AD感觉还好

我再试试~

出0入0汤圆

 楼主| 发表于 2012-8-2 22:46:08 | 显示全部楼层
maybug56 发表于 2012-7-30 09:34
如果用adc12osc可能不稳定

OSC是什么呢?

出0入0汤圆

发表于 2013-8-16 17:45:51 | 显示全部楼层
642142533 发表于 2012-5-21 18:19
已经解决

你怎么解决的?

出0入0汤圆

发表于 2013-8-20 11:34:07 | 显示全部楼层
dongjiren2012 发表于 2013-8-16 17:45
你怎么解决的?

好像当时还有一个地方(不是ADC模块那里)需要配置
   好久了
      具体的忘了

出0入10汤圆

发表于 2013-8-20 13:47:57 | 显示全部楼层
MSP430 的 参考我使用的是内部基准,并且在外面增加了一个电容。
AD 是有一个采样保持时间的,还有一个转换速度的选项,都调整调整,采样保持不同,AD的结果不同,但是超过一个值后,AD结果就稳定了。速度似乎对AD结果也有影响。

出0入0汤圆

发表于 2013-8-20 14:17:02 | 显示全部楼层
430的AD模块还不错,不过采样率高了跳得多谢,外部电路无问题的话试试减低采样速度。

出0入0汤圆

发表于 2013-8-23 10:58:10 | 显示全部楼层
642142533 发表于 2013-8-20 11:34
好像当时还有一个地方(不是ADC模块那里)需要配置
   好久了
      具体的忘了 ...

嗯,我找到问题了,还有一个REF寄存器,设置一下就好了,但是那个资料上说没有这个寄存器,但是IAR的头文件里有他的定义,然后我就用了,结果就好了

出0入0汤圆

发表于 2013-8-23 17:17:48 | 显示全部楼层
我的5438a板子用锂电供电,片外基准,采集干电池电压时,1mv位不漂!!

出0入0汤圆

发表于 2013-8-26 09:06:07 | 显示全部楼层
dongjiren2012 发表于 2013-8-23 10:58
嗯,我找到问题了,还有一个REF寄存器,设置一下就好了,但是那个资料上说没有这个寄存器,但是IAR的头文 ...

哈哈
   害死人

出0入85汤圆

发表于 2013-8-26 09:41:59 | 显示全部楼层
b57203493 发表于 2013-8-23 17:17
我的5438a板子用锂电供电,片外基准,采集干电池电压时,1mv位不漂!!

测量范围多大?电压分辨率能到多少?是否使用软件滤波?

出0入0汤圆

发表于 2013-8-26 09:45:09 | 显示全部楼层
marshallemon 发表于 2013-8-26 09:41
测量范围多大?电压分辨率能到多少?是否使用软件滤波?

0-2.8 测量值0.5-2.5  没有任何软件滤波

出0入85汤圆

发表于 2013-8-26 10:04:05 | 显示全部楼层
b57203493 发表于 2013-8-26 09:45
0-2.8 测量值0.5-2.5  没有任何软件滤波

你这样来说如果做到0~2.8V的范围,1mV不跳数的话,这样这个12bit的AD有11.5bit的无噪声分辨率了,请问你使用的是哪个型号的MCU?能否上传下电路图?

出0入0汤圆

发表于 2013-8-26 10:27:05 | 显示全部楼层
marshallemon 发表于 2013-8-26 10:04
你这样来说如果做到0~2.8V的范围,1mV不跳数的话,这样这个12bit的AD有11.5bit的无噪声分辨率了,请问你 ...

5438a      
电路没什么特别 ,直接io

出0入112汤圆

发表于 2014-5-22 13:04:21 | 显示全部楼层
linbin250 发表于 2013-8-20 13:47
MSP430 的 参考我使用的是内部基准,并且在外面增加了一个电容。
AD 是有一个采样保持时间的,还有一个转换 ...

是不是采样保持时间越长越结果越稳定?

出0入10汤圆

发表于 2014-5-22 17:06:21 | 显示全部楼层
xunke 发表于 2014-5-22 13:04
是不是采样保持时间越长越结果越稳定?

保持时间越长,滞后性就越大。看你的模拟量变化情况。要是缓慢变化的,就采样时间长点。要是快速变化的,就采样时间短点。

出0入112汤圆

发表于 2014-5-22 23:36:40 | 显示全部楼层
本帖最后由 xunke 于 2014-5-23 09:20 编辑
linbin250 发表于 2014-5-22 17:06
保持时间越长,滞后性就越大。看你的模拟量变化情况。要是缓慢变化的,就采样时间长点。要是快速变化的, ...


用MSP430G2553对锂电池电压进行AD


unsigned int ADC10(unsigned char CH)
{  
   ADC10AE0 = BIT0<<CH;                                        //允许模拟输入
   ADC10CTL0 = ADC10SHT_3 + ADC10SR + ADC10ON;
   ADC10CTL1 = (CH<<12) + ADC10SSEL_1  + CONSEQ_0;
   ADC10CTL0 |= ENC + ADC10SC;
   while( (ADC10CTL0&ADC10IFG) != ADC10IFG );
   ADC10CTL0 &= ~ADC10IFG;
   ADC10AE0 = 0;               //关ADC,可省电
   ADC10CTL0 &= 0;  
   ADC10CTL0 &= 0;
   return(ADC10MEM);
}

用MSP430仿真器仿真,每2秒AD一次,结果不太稳定,出现的结果大概如:673  675  690  672  673  674……644  645  644……不同电脑测得的结果也不同,不知是什么回事?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入10汤圆

发表于 2014-5-23 12:19:34 | 显示全部楼层
xunke 发表于 2014-5-22 23:36
用MSP430G2553对锂电池电压进行AD

标准电压时用内部的2.5V么?
把这个2.5V从芯片的管脚引出,引出后在外面增加一个0.1uF的电容,电容的地接到模拟地。
把模拟地和数字地之间用一个磁珠或者电感隔离开,试验一下。
芯片的模拟地旁边多增加一个0.01uF的电容,试验一下。
把下面电阻的地断开后,直接飞线到这个增加的电容的地,试验一下。
把电池电压经过磁珠或者电感后再连接过来,试验一下。

出0入112汤圆

发表于 2014-5-23 13:29:59 | 显示全部楼层
本帖最后由 xunke 于 2014-5-23 13:31 编辑
linbin250 发表于 2014-5-23 12:19
标准电压时用内部的2.5V么?
把这个2.5V从芯片的管脚引出,引出后在外面增加一个0.1uF的电容,电容的地接 ...


很细心的指导!
电路很简单只有一个ADC、PWM程序。
AD是用VCC作基准电压的,VCC是7133稳压的 还加了22u+47u+0.1u的钽电容
不知AD引脚前面要不要加一个电压跟随器?

出0入10汤圆

发表于 2014-5-23 13:44:11 | 显示全部楼层
xunke 发表于 2014-5-23 13:29
很细心的指导!
电路很简单只有一个ADC、PWM程序。
AD是用VCC作基准电压的,VCC是7133稳压的 还加了22u+4 ...

刚才看了一下 7133, 资料显示,它的输出电压是MOS管进行控制的。所以,我建议,只要用MOS管方式输出的电压,都不要用作基准电压,因为有高频杂波在输出的电压里。
直接用内部的2.5V基准电压,或者用电阻+稳压管,或者找 一个专用电压基准芯片应该会比7133好。

不知AD引脚前面要不要加一个电压跟随器?
我认为不用,因为AD几乎不消耗电流。

把 PWM关掉,再看一下 AD 结果。测试一下,是不是 PWM 输出有干扰。

出0入112汤圆

发表于 2014-5-23 17:13:43 | 显示全部楼层
本帖最后由 xunke 于 2014-5-23 17:23 编辑
linbin250 发表于 2014-5-23 13:44
刚才看了一下 7133, 资料显示,它的输出电压是MOS管进行控制的。所以,我建议,只要用MOS管方式输出的电 ...


使用内部2.5V基准电压 默认2.5V不输出的(REFOUT=0),如果用内部2.5V基准电压是不是要设REFOUT=1,并在A4引脚加上0.1u的电容吗?这两方式有很大区别吗?

从结构上看内部2.5V基准电压和引脚已经有“开关”了,外接电容对内部2.5V基准还有影响吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入10汤圆

发表于 2014-5-24 21:21:23 | 显示全部楼层
xunke 发表于 2014-5-23 17:13
使用内部2.5V基准电压 默认2.5V不输出的(REFOUT=0),如果用内部2.5V基准电压是不是要设REFOUT=1,并在A ...

不知道是不是我理解错了,如图的红色线,当2.5V为 ON的时候,红色线将保持2.5V的基准电压。这样当 SREF=01 的时候,VR+ 才能使2.5V。
但同时,VREF+ 也是2.5V,而 VREF+ 是芯片的一个管脚,也就是说。这个2.5V将出现在这个管脚上。
既然出现在这个管脚上,那么我悬空万一要是出现干扰就不好了,不如增加一个电容算了。不增加应该也可以,我没有测试。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入112汤圆

发表于 2014-5-25 11:47:50 | 显示全部楼层
本帖最后由 xunke 于 2014-5-25 11:51 编辑
linbin250 发表于 2014-5-24 21:21
不知道是不是我理解错了,如图的红色线,当2.5V为 ON的时候,红色线将保持2.5V的基准电压。这样当 SREF=0 ...


谢谢!
并且REFOUT=1时,VREF+才会输出2.5V的,否则不输出。
后来我试了,关了PWM和定时器后,AD基本稳定,还有一个问题:好像头几次的AD结果和后面的结果出入较大。

出0入10汤圆

发表于 2014-5-26 12:16:23 | 显示全部楼层
xunke 发表于 2014-5-25 11:47
谢谢!
并且REFOUT=1时,VREF+才会输出2.5V的,否则不输出。
后来我试了,关了PWM和定时器后,AD基本稳定 ...


关于REFOUT,我没有注意看:)
关于,当关了PWM和定时器后,AD基本稳定,我感觉应该是你的线路间有干扰造成的。尝试改线路,增加隔离等等。
第一个和最后一个有偏差,这个就不清楚了。

出0入0汤圆

发表于 2014-6-9 21:17:32 | 显示全部楼层
加分压电阻是不靠谱的, 不如内部基准, 你先算算你可以允许的12位AD值得跳动范围, 再来看是否合适. MSP430F149的AD跳动3个以内就是正常的, 如果你需要更高的精度, 那你就要考虑加更高精度的AD芯片了

出0入0汤圆

发表于 2014-11-25 22:35:25 | 显示全部楼层
用430内部的参考电压比较靠谱!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 14:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表