搜索
bottom↓
回复: 29

各位帮忙分析啊 C8051F350 AD 线性太差了

[复制链接]

出0入0汤圆

发表于 2012-7-8 08:53:44 | 显示全部楼层 |阅读模式
用c8051f350做 直流100mv电压采集,线性非常差啊 误差高达满量程的1%。是什么地方出了问题呢? 还是这个芯片本身就很差劲?
各位帮忙分析啊?

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2012-7-8 09:06:31 | 显示全部楼层
自己顶顶顶顶顶顶顶顶

出0入50汤圆

发表于 2012-7-8 09:13:18 | 显示全部楼层
350的线性不用怀疑,但是我怀疑你的电路和用法。

出0入85汤圆

发表于 2012-7-8 10:02:07 | 显示全部楼层
上电路看看,你是使用的内部PGA吧,做偏移和增益校准没?

出0入0汤圆

 楼主| 发表于 2012-7-8 12:41:15 | 显示全部楼层
PGA 16 做了内部校准

出0入0汤圆

 楼主| 发表于 2012-7-8 12:45:48 | 显示全部楼层
void ADC_Init_copy()          //
{
        REF0CN    = 0x03;        //ʹÄÜÄÚ²¿»ù×¼£»
        ADC0CN    = 0x04;        //ADC¿ØÖƼĴæÆ÷£ºµ¥¼«ÐÔ  32 ±¶ÔöÒ棻05
        ADC0CF    = 0x00;        //ADCÅäÖüĴæÆ÷£ºÊä³ö½á¹ûÑ¡Ôñ  00£¬since£»
    ADC0MD    = 0x80;        //ADC·½Ê½¼Ä´æÆ÷£ºÊ¹ÄÜADC        £¬ÔÚ¿ÕÏз½Ê½£»       
        ADC0CLK   = 0x00;        //ʱÖÓ¿ØÖÆ£º00=2.4576m

    ADC0DECH  = 0x07;          //0x077F£¬³éÈ¡±È£º1919+1£»
    ADC0DECL  = 0x7f;
          
        ADC0BUF   = 0x00;         //»º³åÆ÷Ñ¡Ôñ£º
        ADC0MUX   = 0x08;        //ADC0²ÉÑùͨµÀ08£¨AIN+=AIN0.1£»AIN-=AGND£©
        ADC0STA   = 0x00;         //ÇåADC0int״̬¼Ä´æÆ÷

        //È«ÄÚ²¿Ð£×¼
        ADC0MD = 0x81; // È«ÄÚ²¿Ð£×¼£¨Æ«ÒÆ¡¢Ð±ÂÊ£©
        while (AD0CALC != 1){         };


        AD0INT = 0;                         // Clear ADC0 conversion complete flag
        EIE1   |= 0x08;                     // Enable ADC0 Interrupts
        ADC0MD  = 0x83;                     // Enable the ADC0 (IDLE Mode)
}

出0入0汤圆

 楼主| 发表于 2012-7-8 12:46:29 | 显示全部楼层
// ADC0ÖжϠ  
//-----------------------------------------------------------------------------   
//   
void ADC0_ISR(void)     interrupt 10   
{
        static uchar sampINDEX;
        uchar p_sn;

        while(!AD0INT);                     // Wait till conversion complete
        AD0INT = 0;                         // Clear ADC0 conversion complete flag

        //Copy the output value of the ADC
        rawValue.Byte[Byte3] = 0x00;
        rawValue.Byte[Byte2] = (unsigned char)ADC0H;
        rawValue.Byte[Byte1] = (unsigned char)ADC0M;
        rawValue.Byte[Byte0] = (unsigned char)ADC0L;
        CHvalue_back=ADC0MUX;

        p_sn=INTY;
        if(++sampINDEX>4)
        {
                ADC0MD=0x80;                //ADC·½Ê½¼Ä´æÆ÷£ºÊ¹ÄÜADC        £¬ÔÚ¿ÕÏз½Ê½
                if(ADC0MUX==CH0)
                {
                        if(p_sn>7)
                        {
                                ADC0CN    = 0x04;        //ADC¿ØÖƼĴæÆ÷£ºµ¥¼«ÐÔ  32 ±¶ÔöÒ棻05
                                ADC0MUX=CH1;
                        }
                        else
                        {
                                ADC0CN    = 0x00;        //ADC¿ØÖƼĴæÆ÷£ºµ¥¼«ÐÔ  32 ±¶ÔöÒ棻05
                                ADC0MUX=CH2_t;
                        }               
                }
                else
                {
                        ADC0CN    = 0x04;        //ADC¿ØÖƼĴæÆ÷£ºµ¥¼«ÐÔ  32 ±¶ÔöÒ棻05
                        ADC0MUX=CH0;
                }

                ADC0STA   = 0x00;         //ÇåADC0int״̬¼Ä´æÆ÷
                EIE1   |= 0x08;                     // Enable ADC0 Interrupts
                ADC0MD  = 0x83;                     // Enable the ADC0 (IDLE Mode)
                sampINDEX=0;
        }

        if(ADsampCounter<200)++ADsampCounter;
//        EA=1;
}

出0入0汤圆

 楼主| 发表于 2012-7-8 12:47:25 | 显示全部楼层
稳定性  和 重复性没有问题。
就是线性差啊

郁闷!!!

出0入0汤圆

 楼主| 发表于 2012-7-8 12:52:21 | 显示全部楼层
3楼  和 4 楼 的 朋友在吗   

出130入129汤圆

发表于 2012-7-8 12:58:46 | 显示全部楼层
本帖最后由 68336016 于 2012-7-8 13:02 编辑

我没用过F350,但是用过F060,
线性不太好,一个芯片内的ADC1,ADC2线性也会差别挺大的。

通过几个寄存器的参数修正下,最后结果还可以

测量20多V电压(2.5V参考源,前端电阻分压),得到结果跟4位半万用表对比也就误差几个mV

出0入0汤圆

发表于 2012-7-8 13:20:24 | 显示全部楼层
楼主既然这芯片的线性都超1%了,就换一款芯片吧,或者外挂ADC吧

出0入0汤圆

 楼主| 发表于 2012-7-8 14:27:50 | 显示全部楼层
电路很简单  就是测试ADC 专门化的。

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2012-7-8 14:29:13 | 显示全部楼层
我是用AN0.0测试100mv ,其他通道没有接信号,结果 线性很差

出0入0汤圆

 楼主| 发表于 2012-7-8 14:32:31 | 显示全部楼层
本帖最后由 amking 于 2012-7-8 14:43 编辑

郁闷 还是解决不了啊  在线等了   
有用过350的 指点啊
谢谢

出0入85汤圆

发表于 2012-7-8 15:58:13 | 显示全部楼层
本帖最后由 marshallemon 于 2012-7-8 15:59 编辑

看你的电路你是使用的内部的基准对吗?F350的内部基准的并非准确的,另外我感觉内部PGA的线性度还是比较差的,我在用时感觉好像这个片子的生产厂家把线性做了定点的校正,但这个校准把这个片子搞的整个范围内不连续了,
我记得我当时用的应该是PGa=32,我需要采集的信号从0~78mV

出0入0汤圆

 楼主| 发表于 2012-7-8 17:07:10 | 显示全部楼层
15楼  的 谢谢你
问一下,你用PGA=32,是外部基准吗? 线性度 怎么样?
另外:内部校准 有必要用吗? 难得是用了PGA 导致线性差的?
迷茫啊

出0入0汤圆

 楼主| 发表于 2012-7-8 17:12:21 | 显示全部楼层
3楼 的看看电路有问题吗?
请指教

出0入85汤圆

发表于 2012-7-8 17:35:06 | 显示全部楼层
本帖最后由 marshallemon 于 2012-7-8 17:37 编辑
amking 发表于 2012-7-8 17:07
15楼  的 谢谢你
问一下,你用PGA=32,是外部基准吗? 线性度 怎么样?
另外:内部校准 有必要用吗? 难得 ...


使用内部基准,内部基准不准,会影响线性,但只是一个系数的问题,基准不会造成非线性,使用外部OP的线性会比使用内部PGA要好,另外我感觉西格玛得他型的AD线性都 不太 好,需要校准的,不知道你的100mV是怎么提供的,使用内部pga,会造成输入阻抗的降低,这个也是会影响线性的,把输入缓冲打开再试试看线性会不会改善
   如果有条件我建议还是做系统的校准,自校准的过程是在PGA=1的情况下做的,我看ADS124X系列是这样做的自校准,但F350说的好像不是如此,我对此有点怀疑

出0入0汤圆

 楼主| 发表于 2012-7-8 17:43:57 | 显示全部楼层
输入缓冲也使用过 没有什么明显改善。
marshallemon:你用350 测量 78mv 最后能达到什么精度,具体怎么使用的?

出0入50汤圆

发表于 2012-7-8 20:20:15 | 显示全部楼层
350的AD输入阻抗比较小,你测量小信号一定要注意。
电路里输入信号的那个10M上拉电阻干嘛用的?看不懂啊

出0入0汤圆

 楼主| 发表于 2012-7-8 20:53:01 | 显示全部楼层
10M是上拉电阻啊
ilikemcu:你用350 做到什么精度?怎么设置 的 参数

出0入0汤圆

 楼主| 发表于 2012-7-8 20:53:39 | 显示全部楼层
我把10M拿掉也是一样的差

出0入0汤圆

 楼主| 发表于 2012-7-8 20:54:46 | 显示全部楼层
  350 也许选错了  各位有什么经历

出0入50汤圆

发表于 2012-7-8 21:03:44 | 显示全部楼层
我是05年的春季用过一次350,因为我们用的是差分应用,精度实际测试线性至少在万分之一以上,而且我们是PGA=128.

出0入0汤圆

 楼主| 发表于 2012-7-9 20:42:49 | 显示全部楼层
努力了不一定会成功,但是不努力一定不会成功!

出0入0汤圆

 楼主| 发表于 2012-7-9 20:43:21 | 显示全部楼层
自己顶努力了不一定会成功,但是不努力一定不会成功!

出0入0汤圆

 楼主| 发表于 2012-7-10 07:49:43 | 显示全部楼层
怎么设置都一样
最后用多点校正,精度还凑合用

出0入300汤圆

发表于 2012-7-11 06:32:03 | 显示全部楼层
这个我试过,线性度绝对优于0.001%,不知楼主希望到多少才满意,这么便宜的一个芯片.
前端非常重要,我用3只op27组成
调制频率要精准
不要使用pga
基准要用外置的,我用的lm399
ADC工作时,什么串口,推挽的IO,等设备一律先关闭,以免影响精度
这样做的电压表随便可以4位半

出0入0汤圆

 楼主| 发表于 2012-7-11 07:01:12 | 显示全部楼层
28楼 你用差分 还是单端输入?
使用内部校准了吗?
我希望做到0.01%啊

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-7-23 20:25

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

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