微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > ADS1230的DRDY/DOUT输出跳变厉害

ADS1230的DRDY/DOUT输出跳变厉害

时间:10-02 整理:3721RD 点击:

TI专家,

    你们好。

    我是刚涉及数模转换器的软件工程师,使用了ADS1230作为AD转换芯片来写测重仪的程序(采用5v外部电压为传感器供电)。由于该传感器是TI07年的产品,从论坛中没有足够的资料能比对问题,我了解到该传感器为20位精度传感器(有效精度在17.3位以上),可以把模拟电路输入的毫伏级电压通过增益转换成数字输出(我采用64倍增益),在未接上电路模拟器时,ADS1230读到的数据始终为最大值524287(bit:01111111111111111111),但一旦接上模拟器,0毫伏输入的情况下,DOUT的数据变成20000(bit:1111101XXXXXXXXXXXXX)左右,但只有前7位保持稳定,后面13位一直反复跳变,逐渐加大电压输入,DOUT数字也在逐渐增加,当模拟器逐渐输入到40毫伏时,传感器读数变为44000(bit:1111010XXXXXXXXXXXXX)左右,同样只有7位稳定。

    现在有几个问题想请教:

   1.初值524287是否正确?

   2.40毫伏的变化范围从理论上应该是多少?44000-20000约为24000应该不对。

  3.仅有7位数字有效,观察每个电压值变化范围在2000左右,能否估计是何原因导致该问题产生?(由于我不是硬件工程师,先将我的程序发上来,请帮助确认程序本身是否有问题,然后帮助分析硬件可能会存在什么问题?)

程序如下,采用powerdown模式和offset模式都试过,结果都一样。

void OffsetAD(void)

{

    unsigned char i=0;

    for(i=0;i<26;i++)

    {

        ADS_CLK1=1;;;

        ADS_CLK1=0;;;

    }

}

 

void initads(void)

{

       ADS_SPEED = 1;

       ADS_PDWN1 = 0;

       ADS_CLK1=0;

       delay30u();

       delay30u();

       ADS_PDWN1 = 1;;;;;;;;;

}

 

long read_ADS1230(void)

{

    unsigned char i=0;

    long ADresult=0;

       char* hzcode;

// powerdown-mode:

       initads();

 

 //offset-mode:

/*

while(ADS_DOUT1)

{    

       OffsetAD();

}

*/

       while(ADS_DOUT1);

 

      for(i=0;i<20;i++)

     {

         ADS_CLK1=1;;

              ADS_CLK1=0;;

             ADresult=ADresult<<1;

              if(ADS_DOUT1)

              {

                     ADresult++;

              } 

       }

           ADS_CLK1=1;;

              ADS_CLK1=0;;

 

       ADresult&=0xfffff;

 

if(ADresult>524287)

    {

        ADresult=1048576-ADresult;

    }

 

       return ADresult;

}

Hi

   按照0111 1111 1111 1111 1111的输入输入,意味着此时模拟输入的电压将超过0.5Vref/64, 因为这个数字是满量程的输出。 所以初始524287正不正常要视乎你传感器位接入时ADS1230实际的输入电压时多少? 建议确认。

 

Hi

     接上模拟器,0毫伏输入的情况下,DOUT的数据变成20000(bit:1111101XXXXXXXXXXXXX)左右,但只有前7位保持稳定. 意味着只有ADS1230只有7位的有效位,这个是非常偏低的,正常应该是19~20位左右,见如下:

   

    建议你检查一下你的板子是否有很好的做到数模隔离,稳定的低noise电源(5V),高精度低noise的外部参考电压。

是否有供电部分的原理图,可以放上来先确认一下。

Hi

   主要的问题在于硬件设计上,程序问题不大,因为已经可以得到相应的数模转换,只是转换准度上做得不好。

   选择PGA=64, 5V参考电压,模拟输入范围是0~40mV, 理论的数字输出范围就是00000~0FFFFF.

  

 

  • 谢谢各位专家,由于硬件不是我做的,电路图暂时无法上传,等我们的硬件工程师回来后我上传上来,谢谢。

kevin,

    附件为ADS1230部分的电路,请帮助看看是否正确。

   测量了AINP,AIPN之间的电压,和输入的毫伏级电压完全吻合,也很稳定,REFP和REFN之间的电压也一直是5v,但CAP之间的电压值一直波动,我估计就是因为这个跳动引起了读数的不稳定,是否如此?要怎么解决这个问题?

这部分电路看不出什么问题,供电是怎样的?你说的cap之间的波动有没有波形看一下,另外输入是否也有波动呢?

供电是电路板上外接电源单独提供的5v电压,很稳定,没有任何波动。

CAP不好采集波形,但可以确认跳动没有什么规律,而且有0.01~0.1V的变化

 

实在没有进展,从程序到电路均没看出什么问题,各位专家有没有什么好的建议?

专家你好!这是我的硬件电路图,麻烦您帮我看一下哪里有问题,7、8脚输入的是差分电压,实际放大倍数只有两倍不到,采集到的数据和5、6的电压是吻合的。

和你遇到相同的问题,请问你的问题解决了吗?

现在都想骂人了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top