图一为输入端输入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的大哥们给我一点建议,包括软硬件方面,现在赶项目,卡死在这,求解救!
Carter Liu:
这个值是软件滤波后的值还是每次采样后直接计算输出的值?分压电阻是多少精度的
Carter Liu:
另外你串联的50欧电阻是什么道理?它作为信号源的阻抗会影响信号采集的精确度。
dan wang1:
回复 Carter Liu:
没有经过软件滤波的,是直接采集到的值
dan wang1:
回复 Carter Liu:
哈哈,第一印象就是5V太大的话会搞坏AD,就加了这个,等下去把它去掉!
dan wang1:
回复 Carter Liu:
1%精度够不够
Carter Liu:
回复 dan wang1:
这个精度还算可以了,你可以直接输出没有转换前的数据,二进制输出,看看后几位在跳,若是能稳定到12位以上,说明已经不错了。然后你可以做个平均值滤波
Carter Liu:
回复 dan wang1:
你10:1的分压,输入5V咋能搞坏AD呢,不会的哈,AD可以接受Analog input voltage to GND –0.3 to VDD + 0.3 V
dan wang1:
回复 Carter Liu:
有点不明白你说的转换前的二进制输出,还有一点就是PCB布线是否要注意哪里,以及硬件电路和软件是否哪里还需要改善,再就是要达到最好的效果,达到稳定到14位,采样电阻需要哪一种呢?推荐一下,谢谢了!
Carter Liu:
回复 dan wang1:
我的意思是你把采集到的数据在做运算换算为电压之前以二进制的数据用串口或者显示器等终端显示出来,这样可以看内码有多少位在跳动,多少位是稳定的。
采样电阻用精度1%或者以上的吧。PCB布线布局注意:
1 . 0.1uF退耦电容要紧紧靠近电源引脚,最好再加一个10uF滤波电容,保证电源稳定可靠;
2. 地线尽量宽,与电源线紧邻耦合最好;
3. 若要求较高稳定性,可以在信号线上加TVS管抑制瞬态电压;
4. 模数分开这个自然是要注意,地线很重要
dan wang1:
回复 Carter Liu:
好的,非常谢谢,TI的大哥们能否给我一个PCB的模板,这样我更好理解方便布线,谢谢了。也看了你们给的一个模板,感觉有点不是很懂!最好是把PCB和原理图都给我,我好对照参考