本帖最后由 LOVEEVER 于 2022-11-22 13:37 编辑
#申请原创# @21小跑堂
目前正在学习ADC相关的编程方法,发现ADC总是不准确,后来经过排查发现总结了一下,导致ADC精度偏差大的因素,针对不同的因素可以采取必要的措施:
1、电源噪声,尤其是开关电源(SMPS)的高频噪声对ADC影响比较大:
①线性稳压器具有较好的输出。强烈建议在整流输出端连接滤波电容。
②如果使用开关型电源,建议使用一个线性稳压器为模拟部分供电。
③建议在电源线和地线之间连接具有良好高频特性的电容,即在靠近电源一端应放置一个0.1μF和一个1~10μF的电容。
④每一对VDD和VSS管脚都需要使用单独的去藕电容。
⑤ VDDA管脚必须连接到2个外部的去藕电容器(10nF瓷介电容+1μF的钽电容或瓷介电容)
⑥对于100脚和144脚封装的产品,可以在VREF+上连接一个外部的ADC的参考输入电压,从而改善对输入低电压的精度。
重点:不同封装的电源和参考去耦电路
2、电源输出不稳,随负载变化,这个电源的本身稳定性也非常重要
①ADC模块使用VREF+或VDDA作为模拟参考,数字数值的输出是这个参考电压与模拟输入信号的比值, VREF+必须在各种负载情况下保
持稳定。
② 可以使用诸如LM236作为VREF+的参考电压,这是一个2.5V的电压参考二极管(后期对LM236进行一个讲解说明,阐明一下工作原理)
3、将最大的信号幅度与ADC动态范围匹配
①选择参考电压(仅适合于具有VREF+引脚的产品)
②使用一个外部的前级放大器
4、 I/O引脚间的串扰(临近数字信号的翻转), 模拟信号线的周围布置地线产生屏蔽,能有效地减小串扰干扰噪声
5、模拟信号源阻抗的影响,信号源的容抗与PCB分布电容的影响
6、注入电流的影响
7、当然最后就是单片机本身的ADC模块的误差影响
① 积分线性误差(ILE)和微分线性误差(DLE)依赖于ADC模块的设计,校准它们是困难的,进行多次转换再做平均可以减小它们的影响。目前设备本身的误差能通过各种算法进行补偿减小。
②偏移和增益误差可以简单地使用ADC模块的自校准功能补偿。
目前我总结的影响ADC精度的因素就这些,通过影响的因素进行避免就可以设计好高精度的ADC电路,究其根本还是硬件电路的影响,所以硬件部分大家一定要多注重!当然各位还有其他的更好的方法可以留言,大家一起学习进步! |