微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > ADS1251数据转换

ADS1251数据转换

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

下面一段是我编写的ADS1251数据采集代码,不知道是否正确,请各位大神指点一二,,,,,

 

 

 

signed long ADS1251_Read(void)
{
  unsigned int  i;
  signed long voltage;
   unsigned long lADC=0;
  ADS1251_SCLK_0;

  //等待开始
  while(!(rP2_IN & ADS1251_DOUT));
 
  //24clk:624us
  while((rP2_IN & ADS1251_DOUT));     //DRDY  24CLK
 
  //6clk:156us 
  while(!(rP2_IN & ADS1251_DOUT));    //DRDY  6CLK
 
  
  Delay(150);//延时150uS 用的3.6864M钟振

  for(i = 0; i < 24; i++) //开始读取BIT0-BIT23数据
  {  
    ADS1251_SCLK_1; Delay(1);//延时1uS
  
    lADC <<= 1;
  if (rP2_IN&ADS1251_DOUT)  //ADS1251_DOUT;
    lADC++;  
   ADS1251_SCLK_0; Delay(1);
 
  }
 
   if((lADC & 0x800000))       //判断正负数
   {
      lADC=(lADC-0x000001)^0xffffff;
     fushu=1;
   }
  else
     {
     fushu=0; 
     }
  
   voltage =  lADC ;
   return voltage;
 
}

呵呵, 连什么 MCU 都没有说明呀.

软件调试, 还是要靠自己哦

读的流程是没有错的

ADS1251有的时候读的数据不稳定,所以我想多读取点数据去平均,ADS1251一次最多可以读取多少数据。。。。

读取的数据不稳定,大概的差距有多少,最大值跟最小值之间?

你的输入信号时什么? 输入信号跟ADC之间还加了运放么?

不太明白  “一次最多可以读取多少数据” 中的     一次    是什么意思?

理论上说,这个取决于你所需要的采样结果输出频率,因为ADS1251可以以20kHz的速率一直在采,你可以拿10个数据做平均,也可以拿1000个数据做平均,根据平均的算法不同,会有不同的数据输出速率和滤波效果,典型的方法如 中值滤波, 滑动滤波 等。。

我是一次读取4000个数据,然后在对这4000个数据取平均,我的ADS1251的 参考电平是5V

这是我使用的运放输入端的一个电路

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

网站地图

Top