请教关于CS5550增益校准的问题
鄙人现在想用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 增益校准值 。 不知道我这样理解是否正确,如果不正确应该怎样理解 。 烦请知道的大神不吝赐教,鄙人在此先行谢过 我猜,不用搞这么清楚与复杂,直接校准,得到想要的数据就行了。(教学及搞理论的除外) wdmfhvk 发表于 2013-6-19 11:02 static/image/common/back.gif我猜,不用搞这么清楚与复杂,直接校准,得到想要的数据就行了。(教学及搞理论的除外) ...
谢谢,这个不搞清楚不行啊,如果不知道增益是怎么回事那写程序会有问题啊,还有比如通道2只有10X的增益能否测量0~100MV的信号呢,所以必须要搞清楚增益怎么计算或者原理是什么。 可以问问他们的技术支持。 当个AD用,自己读取AD值,然后自己进行零点和满载的校准就可以了。 wdmfhvk 发表于 2013-6-19 10:44 static/image/common/back.gif
可以问问他们的技术支持。
在网上找到他们的技术支持解决了问题,谢谢,其实增益和校准CS5550的说明书上说的很清楚,只是我没有仔细阅读 xuehu5808 发表于 2013-7-20 00:24 static/image/common/back.gif
在网上找到他们的技术支持解决了问题,谢谢,其实增益和校准CS5550的说明书上说的很清楚,只是我没有仔细 ...
请问下哪里有CS5550这款芯片的技术支持,现在头都弄大了~ 找到公司的网站,在网站上找到联系电话,打电话去问,她们会告诉你的 本帖最后由 xppx1987 于 2013-9-3 10:16 编辑
xuehu5808 发表于 2013-7-31 18:40 static/image/common/back.gif
找到公司的网站,在网站上找到联系电话,打电话去问,她们会告诉你的
您好!我在网上看到了一段关于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。
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;
页:
[1]