ADS1146读取的值不稳定..
我现在用到ADS1146,0-100mv单端输入,AD的Ref为2.04V,AD1146用内部晶振,MCU为1Mhz,读取的值变化很大不稳定,请问是什么原因?谢谢!
Hi
参考电压使用的什么芯片? 推荐是REF5020这样的高精度低noise的电源源。
是否有讲输入接一个恒定的电压(甚至是0V), 测试输出的noise究竟有多大?
另外就是注意一下数模隔离。
参考芯片是:REF3020AIDBZ;输入用的是:OPA2333AIDR双运放,运放是差分输入;到ADS1146是单端输入。谢谢!
Hi
先调试ADC部分,给ADC一个稳定的恒压输入,看看输出的noies有几位? 然后在处理运放部分。
ADC的有效位可以参考datasheet: http://www.ti.com.cn/cn/lit/ds/symlink/ads1146.pdf 按照0~100mV输入,PGA设置为16, 至少可以做到13.7位以上输出。
另外这款芯片带有offset以及满刻度校正,你可以运用这个功能获得更高精度的输出。
谢谢Johnsin Tao的及时回复!
offset以及满刻度校正,这个功能还没有用到,有相关详细说明吗?100mv输入对应19999,输入需要精度到0.01mv,我现在在怀疑ADS1146不能达到要求,是否需要换ADS1246。谢谢!
Hi
Offset以及满刻度校正见datasheet : http://www.ti.com.cn/cn/lit/ds/symlink/ads1146.pdf 第25页。
按照0~100mV的输入,PGA选择16, 模拟输入的分辨率可以达到4uV, 有效位要做到14位可以实现12uV的精度,即接近满足精确到10uV(0.01mV).
按照datasheet提供的有效位参数,PGA=16,数据率小于640SPS时可以实现,但对电路设计,layout,noise控制要求都比较高,另外还要考虑ADC前端的运放。
采用24位的ADS1246确实要容易很多。
根据你的描述,如果要达到100mV,输入测试精度达0.01mV。ENOB至少需要15位。根据datasheet中14页的table2. 需要将ADC设计设定在640sps以下。
另外,这只是对ADC的要求,同时需要对前段放大电路也有很高的要求。要求总的噪声要低于5uV。
现在如果按输入测试精度达0.1mv的精度还是不够,对应的线性差,按0.1%的精度显示线性差一百多个字,现在设定的增益为:16,采样率为:160SPS;现在测试条件是从ADS1146输入端直接输入,未经过前级电路。
Hi
如果你的输出noise达到100左右,也就是说你的有效位只做九位多。
建议你确认如下:
1. 电路可以参考EVM板
2. 数模隔离要做好,数字信号模拟信号端点连接各自的GND Plane,数字模拟GND Plane用0欧姆电阻或者磁珠短接。
3. 注意电源的nosie.
等等。
谢谢回复,能提供下EVM板的电路吗?我未能找到。我再处理下模拟地和数字地。
Hi
见ADS1146 EVM板使用指南: http://www.ti.com.cn/cn/lit/ug/sbau149b/sbau149b.pdf 第十二六页。(选取自己需要的电路,EVM板带有评估色彩,例如参考电压等有多重选择)
谢谢回复,ADS1146的外围电路按照EVM板的原理图处理了下,现在测得ADS1146对应输入信号的实际AD值见附件,为什么在1mv输入时AD值这么少?致使10%一下线性非常差。谢谢!在线等!
这种是不是应该设定OFC0和FSC0寄存器呢?
OFC0和FSC0应该设多少合适呢?谢谢!
Hi
offset 和gain不是外设的,是通过命令校正得到的。
例如系统offset校正是执行SYSOCAL命令,此时会有一个0输入的差分信号到ADC输入,理想状态也是0数字输出,但是实际上不是,所以形成offset, 后续的转换值会叠加上这个offset.
(The system offset calibration is ADC SLEEP MODE initiated by sending the SYSOCAL command while applying a zero differential input (VIN = 0) to the selected analog inputs)
是的,我现在就是通过命令写的这两个寄存器,向写OFC[2:1]写8000h;向FSC[2:0]写400000h,我的期望是希望0输入时,AD不是0输出。谢谢!
不知道您又没有看我上传的附件,为什么在1mv输入时,AD才输出4,上2mv输出就线性化了?为什么0至1mv间输出值不对呢?
0至1mv输出的AD值为什么会这么小,一直找不到原因,期待回复。谢谢!
to:
Johnsin Tao
能帮我分析下这个问题吗? 为什么在0mv至1mv输入间的AD值不正常呢?这种情况是哪里引起的呢?谢谢!
Hi
我想应该是幅值太小造成的,因为这个时候,系统的offset,还有增益误差造成的差异相对于这个幅值而言,比例上就会非常大,会影响的转换的精度。
您前面都谈到可以达到12uv的分辨率,那怎么1mv输入都有这么大的误差?还会不会有其它方面的什么问题影响到这个?谢谢!
hi Johnsin,
我用的是ADS1255的芯片,精度只能做到13位左右。如你所说,我数字地,模拟地,以及ADC的数字地都是隔离的,最后用磁珠短接,精度还是提高不上去,请教一下。怎么能提高精度。
ADS1255有没有评估板?谢谢