威廉希尔官方网站 设计william hill官网
直播中

欲望都市

9年用户 842经验值
擅长:可编程逻辑
私信 关注
[问答]

初始化AD7190的时候想进行内部零电位和内部满量程校准,但是都不成功怎么解决?

初始化AD7190的时候想进行内部零电位和内部满量程校准,但是都不成功。
基本配置程序如下
initAD7190 () {u8 发送Data[4] /0,0,0} 无效;
resetAD7190(); //复位AD7190 //设置配置寄存器
sendData[0] = 0x00; //斩波失能,外部基准在ref1+和ref1-之间
sendData[1] = 0x00; //初始选择通道0,在AIN1和AIN2之间,
sendData[2] = 0x60; //500nA电流源关闭, 使能外部基准电压检测,使能输入缓冲器。双极性模式,增益128
writeAd7190Register(0x10,sendData);//写AD7190配置寄存器 //通道0进行内部零电平校准
sendData[0] = 0x80; //内部零电平校准 MD2 MD1 MD0=0b100是零电平校准模式
sendData[1] = 0x04; //sinc4滤波器,禁止奇偶校准,REJ60=1,更好的50Hz抑制
发送数据[2] = 0x10; //,输出速率=50Hz
writeAd7190Register(0x08,sendData); //写AD7190模式寄存器
while(RDY); //等待校准完成 处于空闲模式
//通道0进行内部满量程校准
sendData[0] = 0xA0; //内部满量程校准 MD2 MD1 MD0=0b101是满量程校准模式
sendData[1] = 0x04; //sinc4滤波器,禁止奇偶校准,REJ60=1,更好的50Hz抑制
发送数据[2] = 0x10; //输出速率=50Hz
writeAd7190Register(0x08,sendData); //写AD7190模式寄存器
delay(10000); 在这边延时好像并没有起到作用
while(RDY); //等待校准完成 处于空闲模式
/* 读出零电平校准值查看 */
在这里读出的值还是初始值,说明校准不成功。。。。。
readad7190reg( 0x70);
zeroScalVaule=(u32)spiRevArry[1]<<16;
zeroScalVaule|=(u16)spiRevArry[2]<<8;
零螺旋藻螺旋[3];
/* 读出满量程校准值查看 */
在这里读出的值还是初始值,说明校准不成功。。。。。
readad7190reg( 0x78);
fullScalVaule=(u32)spiRevArry[1]<<16;
fullScalVaule|=(u16)spiRevArry[2]<<8;
(a) 完全螺旋[3];
//切换到通道1 这里将通道切换到通道1 ,对通道1进行校准
sendData[0] = 0x00; //斩波失能,外部基准在ref1+和ref1-之间
sendData[1] = 0x01; //初始选择选择通道1,在AIN3和AIN4之间,
sendData[2] = 0x60; //500nA电流源关闭, 使能外部基准电压检测,使能输入缓冲器。双极性模式,增益128
writeAd7190Register(0x10,sendData);//写AD7190配置寄存器
//通道1进行内部零电平校准
sendData[0] = 0x80; //内部零电平校准
sendData[1] = 0x04; //sinc4滤波器,禁止奇偶校准,REJ60=1,更好的50Hz抑制,输出速率=300Hz
发送数据[2] = 0x10;
writeAd7190Register(0x08,sendData); //写AD7190模式寄存器
while(RDY); //等待校准完成 处于空闲模式
//通道0进行内部满量程校准
sendData[0] = 0xA0; //内部满量程校准
sendData[1] = 0x04; //sinc4滤波器,禁止奇偶校准,REJ60=1,更好的50Hz抑制,输出速率=300Hz
发送数据[2] = 0x10;
writeAd7190Register(0x08,sendData); //写AD7190模式寄存器
while(RDY); //等待校准完成 处于空闲模式 /* 读出零电平校准值查看 */ 在这里读出的值还是初始值,说明校准不成功。。。。。
readad7190reg( 0x70);
zeroScalVaule=(u32)spiRevArry[1]<<16;
zeroScalVaule|=(u16)spiRevArry[2]<<8;
零螺旋藻螺旋[3];
/* 读出满量程校准值查看 */
在这里读出的值还是初始值,说明校准不成功。。。。。
readad7190reg( 0x78);
fullScalVaule=(u32)spiRevArry[1]<<16;
fullScalVaule|=(u16)spiRevArry[2]<<8;
全部ScalVaulespiRevAry[3];}
上面是AD7190的初始化程序,通信是正常的,程序上也没发现什么问题!是不是AD7190的校准有特定的步骤吗?谢谢!

更多回帖

发帖
×
20
完善资料,
赚取积分