数模转换是我们在嵌入式系统中用的非常频繁的一个功能,市面上大部分MCU内部都集成了ADC,内置ADC的精度也从以前的10bit变成现在常见的12bit(NXP),还可以看到不少内置16bit精度的MCU(Freescale)。ADC精度攀升的同时,怎么样能够更好的驾驭这匹烈马也同时困扰着各位年轻工程师。
数模转换是我们在嵌入式系统中用的非常频繁的一个功能,市面上大部分MCU内部都集成了ADC,内置ADC的精度也从以前的10bit变成现在常见的12bit(NXP),还可以看到不少内置16bit精度的MCU(Freescale)。ADC精度攀升的同时,怎么样能够更好的驾驭这匹烈马也同时困扰着各位年轻工程师。
隔离数字信号与模拟信号 这一点应该是各位工程师最先想到,由于模拟信号抗干扰能力比较差,系统有频率比较高的数字信号时,最好能够在硬件上对模拟信号进行隔离。笔者在这方面了解不是很深,实际使用中,在模拟电源跟地前面串了个小磁珠,在要求不是太过苛刻的环境下也够用了,如下图所示:
使用基准电压校准Vref 很多MCU都有独立的模拟参考电源引脚Vref,常见的硬件设计中都会直接接到LDO的输出端。但实际系统工作中,LDO受负载改变的影响,其输出电压可能存在比较大的波动。因此,推荐使用一个通道实时采集基准电压(常用2.5V、1.24V或者更低等),对Vref电压进行补偿校正。
软件上的配置 不少MCU内置的ADC都有自动硬件校准功能,从POR启动或者低功耗模式唤醒后,都需要进行校准,校准过程只需要为ADC模块提供固定的时钟,硬件自动完成剩余操作,用户只需要查询完成标志位即可。
ADC引脚需要配置成无上下拉的模拟输入引脚,这一点很重要,多余的上下拉都将影响ADC正常采样。
滤 波 硬件上常见的处理方法为,在采样点上面并联一个电容,这样可以改善采样点的波形,减少高频分量在该点的干扰;同理,软件上面可以采用中值法、平均法等进行滤波,尽量避免采样点上面极值干扰。
但是,上述方法是通过牺牲ADC的采样速率来获得采样精度的,在对采样速率有要求的场合下显然不适用。
采样电阻的选取 理想情况下,ADC引脚作为输入引脚,可以近似为一个阻抗为MΩ级的电阻。很多情况下,为减小整体系统的功耗,很多工程师都会选择一个比较大的采样电阻,以尽量减少电源在采样电阻上面的漏电流。
这个时候,工程师很可能遇到这么一个问题:在ADC采样频率比较高的情况下,只使能单通道,采集回来的数据是正确的;当同时开启多个通道进行转换时,采样结果存在非常大的误差。
实际上,多通道ADC模块内部结构一般如下图所示:
多个转换通道共用一个采样电容,在通道切换过程中,采样电容有一个充放电的过程。当系统工作时,使用示波器观察采样引脚波形,可以看到频率与采样周期相同的脉冲形状尖峰。如果采样前端阻抗比较大,很有可能到达MCU采样瞬间,采样电容上的电压未能到达采样通道引脚的实际电压,导致误差的产生。
问题解决方法是考虑减小采样前端电路的阻抗。
暂无评论,赶紧抢沙发吧