急救:AD转换问题(ads1015)

[复制链接]
8545|26
 楼主| wumeiping 发表于 2012-2-27 10:24 | 显示全部楼层 |阅读模式
最近遇到一个问题:
我用了一个AD转换芯片(ads1015),是12位的转换芯片。
在把模拟信号转为数字信号,用ARM读的时候,读不准确。
比如:输入1V的时候,经过ads1015转换,读出来的数为4V,
扩大了四倍,这是什么原因造成的?
急救
jjjyufan 发表于 2012-2-27 10:26 | 显示全部楼层
基准电压不对吧
jjjyufan 发表于 2012-2-27 10:26 | 显示全部楼层
基准电压不对吧
 楼主| wumeiping 发表于 2012-2-27 10:31 | 显示全部楼层
这个没有基准电压,有增益,要选输入电压。我发个芯片的附件给你看看。
 楼主| wumeiping 发表于 2012-2-27 10:34 | 显示全部楼层
请看看这个芯片的spec。我选用的fs为4.096V。推出来的公式为输出电压=conversion/8.可结果应是比实际的大四倍。
不知道是什么原因造成的???!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
yhf311 发表于 2012-2-27 11:06 | 显示全部楼层
RT

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
dqyubsh 发表于 2012-2-27 11:22 | 显示全部楼层
你读出4V,估计是最大值,跟基准4.096V一样了。

你先设置并读它的寄存器,看这个过程有没有错误。再看看输入0V,输出是多少。
 楼主| wumeiping 发表于 2012-2-27 11:33 | 显示全部楼层
6# yhf311 j
按这个表格可以得到什么公式呢?
 楼主| wumeiping 发表于 2012-2-27 11:36 | 显示全部楼层
7# dqyubsh
我读出来是4V但是我输入就只有1V,这跟基准怎么比较呢?请帮忙解释一下。。。
寄存器的错误怎么判断呢?输入0V的时候,输出是0V。
他们的读数是线性的。
dqyubsh 发表于 2012-2-27 11:47 | 显示全部楼层
你能读到的最大值,就是基准值。

寄存器的意思是,让它输出固定的值,比如你设置0X35,它能不能读回正确的数,比如0X35或者0x15。这可以检验读写软件本身。

负电压试了吗,如果也正确,就问题不大了。可能是对公式的理解有错误,其中涉及到一个二进制补码转换。
yhf311 发表于 2012-2-27 11:49 | 显示全部楼层
输入1V时,读出AD转化码,然后根据表格对应关系,计算出输入。
 楼主| wumeiping 发表于 2012-2-27 12:26 | 显示全部楼层
10# dqyubsh
现在可以读到数。基准值也可以确定,比如:我设置的输入范围是2.048V的。
输入电压V    输出电压V
0                 0
0.5013       1.007
1.006          1.989
1.3084        2.047
1.508          2.047
从上面可以看出来。我的基准电压为2.048V。
但是为什么输入跟输出的电压值不相等呢?
估计就是你说的公式问题了。。。。。有没有解决办法呢?
另外:不测负电压。。。
 楼主| wumeiping 发表于 2012-2-27 12:29 | 显示全部楼层
11# yhf311
能否更明确一点:我的条件是测量输入电压为2.048V的,这个公式应该怎么样的呢?
我算的结果是输出电压=conversion/16.
dqyubsh 发表于 2012-2-27 13:10 | 显示全部楼层
你把6楼那个表格上边的英文看懂了再说。哪来的破公式,胡扯。
elec921 发表于 2012-2-27 13:12 | 显示全部楼层
先确定硬件是正常的
 楼主| wumeiping 发表于 2012-2-27 13:40 | 显示全部楼层
14# dqyubsh
6楼是针对差分输入,我的是单端输入。
我的公式没有问题,就不会在这里请教大伙了。。。。。
:L
当然我的公式是经过简化以及自己的主观思想的。
aaron96031 发表于 2012-2-27 14:52 | 显示全部楼层
详细看看数据手册,是不是有左右对齐之分 ?
kama_ya 发表于 2012-2-27 15:11 | 显示全部楼层
在天朝先检验产品真假,不行就申请个样品!
homerflying 发表于 2012-2-27 20:37 | 显示全部楼层
Vref看看呗,芯片还会有假的?
dqyubsh 发表于 2012-2-27 21:17 | 显示全部楼层
1,6楼那个表格,说的是ADC读出的数据,是二进制补码,不能直接做运算,要转换成十进制。
2,你列出的数据表,应该直接列出ADC读数,而不是输出电压。先说4V,后说最大2.047V,这个看不懂。
3,ADC转换公式,大概是这样:
工程电压值=ADC采样值 * 系数。这个系数是ADC的每一位对应的电压值,跟ADC位数成反比,跟满量程的电压(参考电压)成正比。对12位ADC,不考虑负电压,这个系数大概是 4.096V/2的11次幂,一定是个uV级别。你除以16,显然太小了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

47

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部