搜索
bottom↓
回复: 8

请教关于CS5550增益校准的问题

[复制链接]

出0入0汤圆

发表于 2013-6-19 10:44:47 | 显示全部楼层 |阅读模式
鄙人现在想用CS5550测量两路0~100MV的电压信号,看了CS5550的手册,有些问题不明白,CS5550有两路ADC,其中第一路的增益可选则10X,和50X,第二路固定为10X,增益校准寄存器的值为0.0到4之间的数,现在想问的问题是:CS5550的增益是不是这样计算:比如每个通道都选择10X的增益,在校准时当我输入满量程信号100MV时,这时DC增益校准寄存器的值应改为2.5/(信号满量程电压*10)=2.5,也就是说我是这样理解CS5550的增益为: CS5550的实际增益=每个通道选择的固定增益(比如10X)  X    增益校准值    。   不知道我这样理解是否正确,如果不正确应该怎样理解 。 烦请知道的大神不吝赐教,鄙人在此先行谢过

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

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

出0入0汤圆

发表于 2013-6-19 11:02:35 | 显示全部楼层
我猜,不用搞这么清楚与复杂,直接校准,得到想要的数据就行了。(教学及搞理论的除外)

出0入0汤圆

 楼主| 发表于 2013-6-19 11:10:15 | 显示全部楼层
wdmfhvk 发表于 2013-6-19 11:02
我猜,不用搞这么清楚与复杂,直接校准,得到想要的数据就行了。(教学及搞理论的除外) ...

谢谢,这个不搞清楚不行啊,如果不知道增益是怎么回事那写程序会有问题啊,还有比如通道2只有10X的增益能否测量0~100MV的信号呢,所以必须要搞清楚增益怎么计算或者原理是什么。

出0入0汤圆

发表于 2013-6-19 10:44:48 | 显示全部楼层
可以问问他们的技术支持。

出0入0汤圆

发表于 2013-6-19 15:45:42 | 显示全部楼层
当个AD用,自己读取AD值,然后自己进行零点和满载的校准就可以了。

出0入0汤圆

 楼主| 发表于 2013-7-20 00:24:54 | 显示全部楼层
wdmfhvk 发表于 2013-6-19 10:44
可以问问他们的技术支持。

在网上找到他们的技术支持解决了问题,谢谢,其实增益和校准CS5550的说明书上说的很清楚,只是我没有仔细阅读

出0入0汤圆

发表于 2013-7-31 16:36:12 | 显示全部楼层
xuehu5808 发表于 2013-7-20 00:24
在网上找到他们的技术支持解决了问题,谢谢,其实增益和校准CS5550的说明书上说的很清楚,只是我没有仔细 ...

请问下哪里有CS5550这款芯片的技术支持,现在头都弄大了~

出0入0汤圆

 楼主| 发表于 2013-7-31 18:40:35 | 显示全部楼层
找到公司的网站,在网站上找到联系电话,打电话去问,她们会告诉你的

出0入0汤圆

发表于 2013-9-3 09:45:28 | 显示全部楼层
本帖最后由 xppx1987 于 2013-9-3 10:16 编辑

[code][/code]
xuehu5808 发表于 2013-7-31 18:40
找到公司的网站,在网站上找到联系电话,打电话去问,她们会告诉你的


您好!我在网上看到了一段关于CS5550增益校准的程序,可是始终没有弄明白这段程序的意思,比如下面的程序是CS5550通道1的增益校准:1、这个fullscale1满量程是根据自己需要的输入范围而得来,还是根据参考电压/gain而来的?2、为什么下面使用了按键操作取了多个点进行校准,而不是直接根据DC增益校准寄存器的值应改为2.5/(信号满量程电压*10),发送校增益准令?:dpPos=0时,delta=fullScale1*(0x800>>dpPos*3)/(float)0x4000=fullScale1*1/2^3;dpPos=1时,delta=fullScale1*(0x800>>dpPos*3)/(float)0x4000=fullScale1*1/2^6;dpPos=2时,delta=fullScale1*(0x800>>dpPos*3)/(float)0x4000=fullScale1*1/2^9;dpPos=3时,delta=fullScale1*(0x800>>dpPos*3)/(float)0x4000=fullScale1*1/2^12。
[code]
char key;
float delta;
static char idata dpPos=0;
// -------- AIN1 Gain modify ---------
                                    case GAIN1://AIN1增益
                                                showNum(fullScale1, 1);//显示通道1满量程值
                                                delta=fullScale1*(0x800>>dpPos*3)/(float)0x4000;//先算术运算后移位运算
                                                while(1)
                                                 {
                                                          key=getKey();//读取键值
                                                          switch(key)
                                                         {
                                                            case Menu:
                                                                           showPoint(dpPos);
                                                                           while(1)
                                                                            {      
                                                                                     key=getKey();//读取键值
                                                                                     if(key==OK)
                                                                                    {
                                                                                        delta=fullScale1*(0x800>>dpPos*3)/(float)0x4000;//?
                                                                                         showCommand(opNum);
                                                                                         showNum(fullScale1,1);//显示通道1满量程值
                                                                                         break;
                                                                                     }
                                                                                     switch(key)           
                                                                                      {
                                                                                                  case Down:
                                                                                                   if(dpPos<3) //dpPos=0、1、2、3
                                                                                                  {
                                                                                                                         ++dpPos;
                                                                                                                 showPoint(dpPos);
                                                                                                 }
                                                                                                 break;
                                                                                            case Up:
                                                                                                   if(dpPos>0) //dpPos=0、1、2、3
                                                                                                  {
                                                                                                                --dpPos;
                                                                                                                showPoint(dpPos);
                                                                                                }
                                                                                                break;
                                                                                    }
                                                                         }
                                                                         break;
                                                           case Up:
                                                                        fullScale1 += delta;
                                                                        showNum(fullScale1, 1);
                                                                        break;
                                                            case Down:
                                                                        fullScale1 -= delta;
                                                                        showNum(fullScale1, 1);
                                                                        break;
                                                            case OK:
                                                                        ledOff();
                                                                        modify(0xCA, 0x04); // ain1 gain 发送增益校准命令
                                                                        ledOn();
                                                                        goto toOut;
                                                                        break;
                                                            }
                                                }
                                                break;
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-23 12:39

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

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