ADS1118测量4-20mA 和0-5V信号数据有点跳动,也有点误差,求帮忙解决一下, 谢谢!
图一为输入端输入20mA数据时所得到的值
图2 硬件电路
图3为硬件电路ADS1118
现在的情况是这样的,我用恒和校验仪在把20mA的数据从通道一输入,正端接通道1,负端接AGND,输出来的值就是图一显示的,有差不多1mv的误差,输入端给的信号越强,偏差越大,我的配置是
void ADS1118config(void)
{
ADS_InitStructure.stru.OS = SINGLE_CONVER;
ADS_InitStructure.stru.MUX = AINPN_0_GND;
ADS_InitStructure.stru.PGA = PGA_4096;
ADS_InitStructure.stru.MODE = SINGLE_SHOT;
ADS_InitStructure.stru.DR = DR_128_SPS;
ADS_InitStructure.stru.TS_MODE = ADC_MODE;
ADS_InitStructure.stru.PULLUP = PULL_UP_DIS;
ADS_InitStructure.stru.NOP = DATA_VALID;
ADS_InitStructure.stru.CNV_RDY_FL = DATA_NREADY;
}
求TI的大哥们给我一点建议,包括软硬件方面,现在赶项目,卡死在这,求解救!
这个值是软件滤波后的值还是每次采样后直接计算输出的值?分压电阻是多少精度的
另外你串联的50欧电阻是什么道理?它作为信号源的阻抗会影响信号采集的精确度。
没有经过软件滤波的,是直接采集到的值
哈哈,第一印象就是5V太大的话会搞坏AD,就加了这个,等下去把它去掉!
1%精度够不够
这个精度还算可以了,你可以直接输出没有转换前的数据,二进制输出,看看后几位在跳,若是能稳定到12位以上,说明已经不错了。然后你可以做个平均值滤波
你10:1的分压,输入5V咋能搞坏AD呢,不会的哈,AD可以接受Analog input voltage to GND –0.3 to VDD + 0.3 V
有点不明白你说的转换前的二进制输出,还有一点就是PCB布线是否要注意哪里,以及硬件电路和软件是否哪里还需要改善,再就是要达到最好的效果,达到稳定到14位,采样电阻需要哪一种呢?推荐一下,谢谢了!
我的意思是你把采集到的数据在做运算换算为电压之前以二进制的数据用串口或者显示器等终端显示出来,这样可以看内码有多少位在跳动,多少位是稳定的。
采样电阻用精度1%或者以上的吧。PCB布线布局注意:
1 . 0.1uF退耦电容要紧紧靠近电源引脚,最好再加一个10uF滤波电容,保证电源稳定可靠;
2. 地线尽量宽,与电源线紧邻耦合最好;
3. 若要求较高稳定性,可以在信号线上加TVS管抑制瞬态电压;
4. 模数分开这个自然是要注意,地线很重要
好的,非常谢谢,TI的大哥们能否给我一个PCB的模板,这样我更好理解方便布线,谢谢了。也看了你们给的一个模板,感觉有点不是很懂!最好是把PCB和原理图都给我,我好对照参考
你可以看看ADS1232的评估板用户手册http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=sbau120&fileType=pdf,这里给出了原理图和PCB的影印版,你可以作为参考。我这里有PCB的Gerber文件,跟影印是一样的,参考价值不大,没有.pcb之类的参考文件,不好意思啊
好的,谢谢,问了你们这么多问题,太感谢了,不嫌弃的话再问一个,就是我软件的配置还要不要改哪里呢?除了滤波,给点建议吧
可以设置一个数组,采样的数据先进这个数组,过滤掉数组中的最大值和最小值,再做均值
ads1118单通道输入端不用串电阻并电容吗。。。