针对ADC采样不准的解决方案:首先要理解ADC是一个高精度模拟IP,需要软硬件的配合,才能达到性能最优化,用好ADC需要好的开发设计习惯。
第一种方案是找到噪声源,回避这个噪声源,比如在噪声源稳定,或者消失的时候,进行采样。就像电机驱动一样,ADC不会在PWM切换时 采样信号,因为PWM切换瞬间,噪声是最大的。
第二种方案是无法回避这个噪声源,那么我们的产品是有内部累加器的,比如进行16次采样,读取累加器高12位,就是16次采样的平均值,芯片内部都已经集成这个累积,求平均的硬件算法。
第三种方案是输入端加一个电容,进行去耦以及降低噪声影响,再使用ADC进行采样。
第四种方法是细节描述,比如在采样的几个cycle时,最好MCU的IO停止翻转驱动,因为这样会影响电源噪声。 最重要的是:外部Vref的这个GPIO 在ADC采样时,必须停止翻转 ,因为共享一个PAD,GPIO的翻转会把噪声引入ADC的Vref。
第五种方法是细节描述,比如采样的的几个cycle时,我们可以配置采样时间,加大sample的时间,这样可以更精确的采样信号。
注意不同电压与采样率的问题:2.4v以上,最大采样率是1Msps,2.4v以下,最大采样降低为500KSps, 低于2.2v,最大采样率降低为200Ksps
注意不同参考源与采样率的问题:使用内部Vref时,最大采样率为200KSPS,达不到1MSPS
另外说一下理论性的知识,当外部采样端口的等效输入电阻太大时,需要降低采样率。
公式就不贴了,ADC application note有完整的解释:
R_AIN(KOhm) F_ADC(KHz)
10 5600
30 2100
50 1300
80 820
100 660
120 550
150 450
尽量减小ADC输入端口〖AIN〗_X 的寄生电容C_PARACITIC;
除了考虑R_AIN值外,如果信号源V_AIN的内阻较大时,也需要加入考虑
|