TI中文支持网
TI专业的中文技术问题搜集分享网站

ADS1256 1KHz定时采集问题

各位专家,使用ADS1256中的三个通道作定时采集,采样率30Ksps,单端输入,AINCOM接2.5V参考电压,其余输入端悬空。测试中,arm芯片开始能正常读到数据,但偶尔会三个通道的采样值相互串,第一个通道串得频些,数据正常(测试中,3个通道接了3个不同的电压)。但时间长了(40分钟)以后,三个通道采集的数据则都出现问题,得到的不再是接入的参考电压值了。请问专家,这是哪里出了问题?

  1. 附AD程序:

void AD1256Init()

{

//*************自校准****************

  1. while(DRDY);
  2. PCout(2)=0;
  3. SPI3_ReadWriteByte(adSELFCAL);
  4. while(DRDY);
  5. PCout(2)=1;
  6. //**********************************
  7. ADS1256WREG(REG_STATUS,0x04); // 高位在前、使用缓冲
  8. ADS1256WREG(REG_ADCON,PGA_2); // 放大倍数2
  9. ADS1256WREG(REG_DRATE,DATARATE_30K); // 数据30Ksps
  10. ADS1256WREG(REG_IO,0x0E);
  11. while(DRDY);
  12. PCout(2)=0;
  13. SPI3_ReadWriteByte(adSELFCAL);
  14. while(DRDY);
  15. PCout(2)=1;

}

signed int ReadADConvertData(unsigned char channel)

{

  1. unsigned int sum=0;
  2. while(DRDY);//当ADS1256_DRDY为低时才能写寄存器
  3. ADS1256WREG(REG_MUX,channel); //设置通道
  4. delay_us(2);
  5. PCout(2) = 0;
  6. SPI3_ReadWriteByte(adSYNC);
  7. delay_us(2);
  8. SPI3_ReadWriteByte(adWAKEUP);
  9. delay_us(2);
  10. SPI3_ReadWriteByte(adRDATA);
  11. delay_us(10);
  12. sum |= (SPI3_ReadWriteByte(0xff) << 16);
  13. sum |= (SPI3_ReadWriteByte(0xff) << 8);
  14. sum |= SPI3_ReadWriteByte(0xff);
  15. PCout(2) = 1;
  16. if (sum>0x7FFFFF) // if MSB=1,
  17. {
  18. sum -= 0x1000000; // do 2's complement
  19. }
  20. return sum;

}

void ADS_Results(float res[3])

{

  1. int Result,i;
  2. for(i = 0;i <= 2;i++)
  3. {
  4. Result = ReadADConvertData( (i << 4) | NEGTIVE_AINCOM);
  5. res[((i & 0x07)>0)?((i & 0x07) – 1):2] = Result*2.9802325940409414817025043609744e-7;
  6. }

}

另外,在AD之前运用opa4277作信号处理(滤波及加法电路),运放的供电正常,但发热很厉害,烫手。这是为什么?

user151383853:

我觉得你的测试, 最好不要采集悬空的通道.

运放发热厉害, 这一定有问题, 试试运放后串个小电阻再接采样

zhiqiang li1:

回复 user151383853:

测试时,没有采集悬空通道,对于采集的数据,时间长了就得不到正常数据,请问专家,有什么解决方案!或者说是什么问题呢?

Kailyn Chen:

回复 zhiqiang li1:

我想,一开始能正常采集数据,硬件软件应该都没问题。时间长了不准确,芯片是否有发烫现象? 

采集之间相互串扰,那么layout方面有将模拟信号和数字信号分开?各自参考模拟地和数字地?

zhiqiang li1:

回复 Kailyn Chen:

数字地和模拟地没有分开,芯片也没有发烫,每次出问题后,复位系统就又正常了。

赞(0)
未经允许不得转载:TI中文支持网 » ADS1256 1KHz定时采集问题
分享到: 更多 (0)