打印

高人指点一下,AD7705只有15位精度

[复制链接]
3600|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tclg|  楼主 | 2007-4-2 19:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在用AD7705测量一个直流电压,结果只有15位精度,最后一位读出来
总是1,而且结果很稳定,这样做后期数字滤波都没用,我找了很久都找不到原因。以下是我的设置和读AD7705子程序:
  MOV A,#00000000B;20HZ的转换频率,CLOCK2.4576M
  LCALL Write7705
  MOV A,#11H   ;选择设置寄存器
  LCALL Write7705
  MOV A,#01000100B   ;自校准模式,增益为1,单极性输入,内部缓冲器用上,滤波器打开
  LCALL Write7705

R77051:   
   NOP
   NOP
   NOP
   CLR SCLK
   NOP
   NOP
   NOP
   NOP
   SETB SCLK
   NOP
   NOP
   NOP
   MOV C,DOUT
   RLC A
   DJNZ R7,R77051
   MOV R0,A      ;保存高字节
   MOV R7,#8
R77052:
   NOP
   NOP
   NOP
   CLR SCLK
   NOP
   NOP
   NOP
   NOP
   SETB SCLK
   NOP
   NOP
   NOP
   MOV C,DOUT
   RLC A
   DJNZ R7,R77052
   MOV R1,A    ;保存低字节
READ_V_OUT:
   NOP
   NOP
   RET          

相关帖子

沙发
computer00| | 2007-4-2 19:57 | 只看该作者

也许你多读了一位???

使用特权

评论回复
板凳
tclg|  楼主 | 2007-4-3 16:46 | 只看该作者

没有多读,从程序就可看出来

再说如果多读一位那整个结果就完全不对的,都没人回答是不是这个问题没人遇到过,还是本来AD7705就这样?

使用特权

评论回复
地板
xwj| | 2007-4-3 16:49 | 只看该作者

你的程序根本就不完整,怎么看出?

使用特权

评论回复
5
tclg|  楼主 | 2007-4-3 17:01 | 只看该作者

还有一个写AD7705的子程序

还有一个写AD7705的子程序:
Write7705: 
   CLR RW
   SETB P2.5
   CLR P2.4
   CLR P2.3   ;CS 
   NOP
   NOP 
   CLR SCLK     ;一个高脉冲进一位数据
   MOV R7,#8
W7705:
   CLR SCLK
   NOP
   NOP
   RLC  A
   MOV DIN,C
   NOP  
   NOP 
   SETB SCLK
   NOP
   NOP
   NOP
   DJNZ R7,W7705
   RET
就这么几行,我改变读写时候NOP的个数,改变内部设置,结果都一样

使用特权

评论回复
6
626986| | 2007-4-3 17:38 | 只看该作者

AD7705是15位有效精度

AD7705是15位有效精度

使用特权

评论回复
7
outerwang| | 2007-4-10 13:35 | 只看该作者

标称精度和有效精度

AD7705的精度是16位说的是标称精度。即使很好的ADC,实际有效精度也是标称精度减1。如果是次品,,,减2、3??-_-!!!

使用特权

评论回复
8
DEF| | 2007-4-10 17:59 | 只看该作者

电路问题

硬件电路问题
输入端有 + -
- 端要接中间参考电压不能直接落地
因为它是差动输入芯片

例如输入信号 0~5V - 端要接2.5V 否则只有一半有效输出

使用特权

评论回复
9
gcg9904| | 2007-4-10 19:05 | 只看该作者

我觉得也是精度问题~

精度问题,16位的AD分辨率对于5v的ref也只有0.07mv,这样小的电压,很难分辨,你的PCB随便出点小走线问题就over了
  另外,对于差分输入应该可以-端为地把,差分运放就可以这样工作...

使用特权

评论回复
10
DEF| | 2007-4-11 03:17 | 只看该作者

re

差动输入是有正负输入的
也就是说输入电压范围为-2.5~+2.5全部幅值为5V
以-端为参考输入点当+为0时输入的就是-2.5,当+为5时5-2.5输入的就是2.5
还有如果你工作在单电源状态下千万不要在+端输入低于GND的负电压否则会烧坏芯片

AD输入的精度是不可能做假的.现在不光有16位AD还有24位AD,它的分辨电压更低.

只要你安照我的接法去做肯定能得到16AD值(我用过这家伙差点就败在这个问题上)

使用特权

评论回复
11
tclg|  楼主 | 2007-4-12 21:01 | 只看该作者

谢谢大家的热心回复

仔细看了DATASHEET后问题解决了。不过最后一位读出来是跳动的,效果可能就这样了。总的来说这个芯片性价比还是不错的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

36

帖子

0

粉丝