专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51单片机
AD自带内部增益问题,帮忙看下
2020-02-03 10:08
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
8027
53
53
图中的红线部分是什么意思
我做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,(默认为输入,不用设置)
输入不同的模拟量测试的值相差不大(估计还是电路问题(三通道测试的时候接法跟上面一样),所以有以上测试)
哎~电路知识差了,等这东西做完,找时间补补
while(1)
{
for(i=0;i<3;i++)
{
Init_Ad7798(i);//通道1、通道2、通道3初始化
ReadData_7798();
j=2*i+1;
Serial_Receive(hData); //发送高字节数据(在ReadData_7798中读出)
Serial_Receive(lData); //发送低字节数据(在ReadData_7798中读出)
}
}这是主程序
复制代码
void Init_Ad7798(unsigned char ChannelNum)
{
WriteByte_7798(0xff);//reset ad7798
WriteByte_7798(0xff);
WriteByte_7798(0xff);
WriteByte_7798(0xff);
WriteByte_7798(0x10);//写入通讯寄存器设置下一个操作,写信给配置寄存器
WriteByte_7798(0x26);//增益为128
WriteByte_7798(0x30+ChannelNum);
//写入模式注册启动 内部零刻度校准
WriteByte_7798(0x08);//写入通讯寄存器设置下一个操作,写信给模式寄存器
WriteByte_7798(0x80);
WriteByte_7798(0x0a);
WaiteRDY();//等待及由RDY销去低显示最终的校准周期
//写入模式注册启动 内部满刻度校准
WriteByte_7798(0x08);//写入通讯寄存器设置下一个操作,写信给模式寄存器
WriteByte_7798(0xa0);
WriteByte_7798(0x0a);
WaiteRDY();//等待及由RDY销去低显示最终的校准周期
WriteByte_7798(0x08);//写入通讯寄存器设置下一个操作,写信给模式寄存器
WriteByte_7798(0x00);
WriteByte_7798(0x0a);
}这是初始化程序(每次通道改变的时候)
复制代码
加载中...
查看其它53个回答
一周热门
更多
>
相关问题
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
触摸芯片SC02B/SC04B在地砖灯的设计方案
1 个回答
相关文章
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
如何实现对单片机寄存器的访问
0个评论
基于51单片机的指纹密码锁
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
未命名.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,(默认为输入,不用设置)
输入不同的模拟量测试的值相差不大(估计还是电路问题(三通道测试的时候接法跟上面一样),所以有以上测试)
哎~电路知识差了,等这东西做完,找时间补补
- while(1)
- {
- for(i=0;i<3;i++)
- {
-
- Init_Ad7798(i);//通道1、通道2、通道3初始化
- ReadData_7798();
- j=2*i+1;
- Serial_Receive(hData); //发送高字节数据(在ReadData_7798中读出)
- Serial_Receive(lData); //发送低字节数据(在ReadData_7798中读出)
- }
- }这是主程序
复制代码- void Init_Ad7798(unsigned char ChannelNum)
- {
- WriteByte_7798(0xff);//reset ad7798
- WriteByte_7798(0xff);
- WriteByte_7798(0xff);
- WriteByte_7798(0xff);
- WriteByte_7798(0x10);//写入通讯寄存器设置下一个操作,写信给配置寄存器
- WriteByte_7798(0x26);//增益为128
- WriteByte_7798(0x30+ChannelNum);
- //写入模式注册启动 内部零刻度校准
- WriteByte_7798(0x08);//写入通讯寄存器设置下一个操作,写信给模式寄存器
- WriteByte_7798(0x80);
- WriteByte_7798(0x0a);
- WaiteRDY();//等待及由RDY销去低显示最终的校准周期
- //写入模式注册启动 内部满刻度校准
- WriteByte_7798(0x08);//写入通讯寄存器设置下一个操作,写信给模式寄存器
- WriteByte_7798(0xa0);
- WriteByte_7798(0x0a);
- WaiteRDY();//等待及由RDY销去低显示最终的校准周期
- WriteByte_7798(0x08);//写入通讯寄存器设置下一个操作,写信给模式寄存器
- WriteByte_7798(0x00);
- WriteByte_7798(0x0a);
- }这是初始化程序(每次通道改变的时候)
复制代码一周热门 更多>