打印

关于ADS1112的疑惑

[复制链接]
2101|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
haohao96|  楼主 | 2010-10-14 20:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的系统中采用差动输入模式,应当说ADS1112可以采集两路差动输入信号的,可按照其说明书上的介绍,我始终只能得到AN0与AN1两个输入端的差动信号的采集数据,并且是正确的采集数据,但我无论如何改变控制字,也不能使其采集到AN2与AN3的差动输入信号,采集的结果始终都是AN0与AN1两端的差动信号。请问是否有朋友遇到过这方面的问题没有呢?或者是你曾经使用过这种芯片,而没有遇到这样的问题,可以帮我解答一下吗?方便的话,敬请联系我。谢谢先!

相关帖子

沙发
haohao96|  楼主 | 2010-10-24 09:16 | 只看该作者
顶起来,希望有朋友能帮助我!

使用特权

评论回复
板凳
haohao96|  楼主 | 2013-7-27 10:31 | 只看该作者
本帖最后由 haohao96 于 2013-7-27 10:53 编辑

看到有不少的朋友询问此问题,现将我的解决办法贴出来,以便大家参考。采MCS-51的汇编语言来书写的,对于使用其他编程语言的朋友,可自行参考此思路进行修改,相信这个不是什么难事。
说明: 1. ADC_ADDRESS  对应于ADS1112在你的系统中的I2C地址,由你的系统来进行宏定义;
            2. 寄存器R6中存放的是对ADC1112的控制命令字.

          LCALL       START_BIT                  ;特别注意:该命令需要重复输出两遍,否则不能正确采集对应的的物理量     
          MOV          A,#ADC_ADDRESS     ;A/D转换器ADS1112的地址数据
          LCALL       IIC_WRITE_BYTE
          MOV          A,R6                            ;发送对ADC芯片的控制字
          CLR          ACC.7                           ;第一遍发送时,设置控制字最高位D7(ST/DRDY)为0,只改变通道与PGA的值     
          CALL         IIC_WRITE_BYTE
          LCALL       STOP_BIT

          LCALL       START_BIT                   ;接着发送启动转换命令,设置控制字最高位D7(ST/DRDY)为1
          MOV          A,#ADC_ADDRESS     ;A/D转换器ADS1112的地址数据
          LCALL        IIC_WRITE_BYTE
          MOV          A,R6                            ;第二遍发送时,直接发送对ADC芯片的控制字(最高位D7为1),启动AD转换控制字    
          LCALL       IIC_WRITE_BYTE
          LCALL       STOP_BIT
          ......

使用特权

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

本版积分规则

1

主题

10

帖子

0

粉丝