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

请问ADS1256采集不准的原因是什么?

1256的初始化中进行了如下配置:

STATUS寄存器配置为0x06 开启自动校准,开启缓冲
ADCON寄存器配置为0x00 不进行放大
DRATE配置为10sps
IO寄存器配置为0x00,不使用IO口相关功能

然后在主函数中先配置MUX寄存器:AIN0为﹢ AINCOM为-;之后发送SELFCAL指令进行自校准;然后等待drdy拉低,依次发送SYNC、WAKEUP指令,然后发送读取3字节数据的指令 读出转换结果。

我读取的是2.5V基准芯片的电压,该芯片提供的电压也作为1256的REF。按道理我采集的结果应该是3FFFFF附近的一个值才对。但是实际采集结果总是404000这个数 换算过来大概是2.509766V,基准芯片输出用表看过了是2.5004V 而且非常很稳定。

另外使用AIN1为+采集我需要的待测信号时,通过调节信号大小,采集结果的变化趋势是对的,但是偏差越来越大,当输入信号达到最大4.118V时,1256的输出只有3.889V左右。差了200多毫伏

因为SPI的线是在电路板上的 不太好用示波器看到,不过使用读取寄存器时,我更改STATUS、MUX、DRATE后,都可以获得正确的结果,所以SPI部分应该没什么问题

请问我这个情况可能是哪里使用不当造成的呢?单片机是STM32F103系列的,已经下载过好几个32驱动1256的程序了,实在是没看出来还有哪里有区别……

另外那个selfcal指令 是不是等于selfocal+selfgcal指令?还有sysocal和sysgcal 这几个校准没太搞清楚区别,我是参考网上例程,只用了selfcal进行校准

Kailyn Chen:

您好, 您参考下这个帖子中的初始化配置,看是否能帮您解决您的问题?
如果不可以的话,再反馈:
e2e.ti.com/…/3165050

user6256747:

回复 Kailyn Chen:

您好,前段时间我又买了个1256的模块,同样的程序,模块采集的结果是下图串口助手显示的,基本符合预期结果,我又焊了一块板,采集的结果是下图word中的。用电源提供的电压0.599V,我的不仅经常采集到错误的数据,而且姑且认为采集正确的588mV,输出结果一模一样,这个应该不符合常理吧,精度再高也不可能这么稳定的频繁出现同样的数。(这期间有一个板还遇到了drdy一直处于高电平导致无法写入寄存器的问题,即使不配置spi部分,万用表测量那个引脚也是常高的状态)

硬件方面,1256的参考源很稳定,电源部分也做了滤波,不过并没有隔离模拟地和数字地,请问这种问题的出现可能和没做隔离有关吗?

另外关于接地部分,手册里的这一句应该怎么理解呢?它要求和微处理器隔离,可是1256的数字地不和单片机接在同一块地上 不会出问题嘛?手册第28页:It is recommended to use a single ground plane for both the analog and digital supplies. This ground plane should be shared with the bypass capacitors and analog conditioning circuits. However, avoid using this ground plane for noisy digital components such as microprocessors.

赞(0)
未经允许不得转载:TI中文支持网 » 请问ADS1256采集不准的原因是什么?
分享到: 更多 (0)