微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > ADS1256速率问题.

ADS1256速率问题.

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

请教各位老师们.请教问题:硬件电路如图:

我在采集数据时,ADS速率设在10SPS以下都能正确的采集数据,如果速率设在15SPS以上,采集的数据就会偏低,是什么原因?

谢谢!

///////////初始化///////////////////

void ADS1256_Init(void)
{
ADS1256WREG(ADS1256_STATUS,0x00); // 高位在前、不使用缓冲
ADS1256WREG(ADS1256_MUX,0x32); // 初始化端口A3为‘+’,A2‘-’
ADS1256WREG(ADS1256_ADCON,0x06); // 放大倍数64
ADS1256WREG(ADS1256_DRATE,ADS1256_DRATE_10SPS); // 数据10sps
ADS1256WREG(ADS1256_IO,0x00); // IO状态输入

SPI_SendByte(ADS1256_CMD_SELFCAL); //偏移和增益自动校准
while(ADS_DRDY);
SPI_SendByte(ADS1256_CMD_SYSOCAL); //系统失调校准
while(ADS_DRDY);
SPI_SendByte(ADS1256_CMD_SYSGCAL); //系统增益校准
while(ADS_DRDY);
SPI_SendByte(ADS1256_CMD_RDATAC); //连续读取数据

}

void ADS_sum()
{
unsigned long results=0;
results = ADS1256ReadData();//读取AD值,返回24位数据。
sendChar((unsigned char)(results >> 16) & 0x0000ff); //发送最高位
sendChar((unsigned char)(results >> 8) & 0x0000ff); //发送中间位
sendChar((unsigned char)results & 0x0000ff); //发送低位
}

可能不是软件问题, 比如采样时间不足, 信号源阻抗过大等等也会发生这样的情况

信号源内阻过大可以排除,因我信号源内阻只有300欧,而且我已经直接在信号端接上一个电源试过了,是一样的结果;采样时间不够怎么解释呢?我设10SPS都正常,设为15SPS就不对了,15SPS对ADS1256来说,很低了啊。

你好,你是用DSP28335的SPI通信来写的吗?能把全部程序贴出来一下吗?或者给我发一下,我也在写这个希望参考一下,谢谢,我的邮箱975954022@qq.com

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

网站地图

Top