完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
初始化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的校准有特定的步骤吗?谢谢! |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
773 浏览 1 评论
762 浏览 0 评论
488 浏览 0 评论
1683 浏览 1 评论
MCU用3.3V通过三极管和mos控制12V通断导致不能即使开断
1295 浏览 5 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 07:15 , Processed in 0.507949 second(s), Total 70, Slave 54 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号