AD自带内部增益问题,帮忙看下

2020-02-03 10:08发布

图中的红线部分是什么意思
我做AD时  其它的功能都做出来了
但是在增益这 怎么做都有问题估计是这个输入红 {MOD}区域没搞明白吧
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
53条回答
haolei432370
2020-02-06 16:39
本帖最后由 haolei432370 于 2012-8-28 20:47 编辑

未命名.jpg (275.78 KB, 下载次数: 0)

下载附件

2012-8-28 20:46 上传




1.增益为1的时候  三个通道的测试很精确(应该能说明我切换通道没问题吧)
2.单增益为64的时候。单通道测试的时候也很精确
R3到地的电压是300mv(满足GND+300mv)
R2两端的电压差值为10mv
当不接来自信号发生器的信号时候(AIN+接R2与R1之间,AINI-接R2与R3之间)测电压也很精确
当按照上图接线的时候R3到地的300mv不稳定测试的值偏低(测试的值应该为A100(16进制),但是测试的值8932(16进制))
I/O 寄存器位复位值为0x00,(默认为输入,不用设置)
输入不同的模拟量测试的值相差不大(估计还是电路问题(三通道测试的时候接法跟上面一样),所以有以上测试)
哎~电路知识差了,等这东西做完,找时间补补
  1.         while(1)
  2.         {
  3.             for(i=0;i<3;i++)
  4.                 {
  5.                
  6.                 Init_Ad7798(i);//通道1、通道2、通道3初始化       
  7.             ReadData_7798();       

  8.                 j=2*i+1;
  9.                 Serial_Receive(hData); //发送高字节数据(在ReadData_7798中读出)
  10.                 Serial_Receive(lData); //发送低字节数据(在ReadData_7798中读出)
  11.                 }
  12.         }这是主程序
复制代码
  1. void Init_Ad7798(unsigned char ChannelNum)
  2. {               
  3.     WriteByte_7798(0xff);//reset ad7798
  4.     WriteByte_7798(0xff);
  5.     WriteByte_7798(0xff);
  6.     WriteByte_7798(0xff);

  7.     WriteByte_7798(0x10);//写入通讯寄存器设置下一个操作,写信给配置寄存器
  8.     WriteByte_7798(0x26);//增益为128
  9.     WriteByte_7798(0x30+ChannelNum);

  10.    //写入模式注册启动  内部零刻度校准
  11.     WriteByte_7798(0x08);//写入通讯寄存器设置下一个操作,写信给模式寄存器
  12.     WriteByte_7798(0x80);
  13.     WriteByte_7798(0x0a);
  14.     WaiteRDY();//等待及由RDY销去低显示最终的校准周期

  15.         //写入模式注册启动  内部满刻度校准
  16.     WriteByte_7798(0x08);//写入通讯寄存器设置下一个操作,写信给模式寄存器
  17.     WriteByte_7798(0xa0);
  18.     WriteByte_7798(0x0a);
  19.     WaiteRDY();//等待及由RDY销去低显示最终的校准周期

  20.     WriteByte_7798(0x08);//写入通讯寄存器设置下一个操作,写信给模式寄存器
  21.     WriteByte_7798(0x00);
  22.     WriteByte_7798(0x0a);
  23. }这是初始化程序(每次通道改变的时候)
复制代码

一周热门 更多>