片上ADC/DAC实现精度可调ADC的方案
这里给出一种利用MCU自带ADC和DAC,并结合运放、电容、电阻等元件搭建外围硬件电路,实现10~20位测量精度可调的ADC的方法。
1 高精度ADC设计原理
输入电压经过电阻分压产生电压U入,送入由运放和电阻组成的减法运算电路的同相端,分压的原因是输入电压最大值大于运放的最大输入电压。MCU的DAC输出经过同相比例运算电路放大之后产生与U入相近的电压U近,送入减法电路的反相端。同相比例运算电路的作用是扩大DAC的输出电压范围,使U入和U近的最大值近似相等。经过减法运算电路之后的电压差值U差经过箝位电路送入MCU的ADC,通过读ADC寄存器的值可得U差的值。箝位电路是防止ADC的输入电压超过量程,而导致烧毁MCU。
在测量时,由软件控制改变DAC寄存器的值,从而改变DAC输出电压值,使U差的电压值在量程范围(0~3 V)之内。此时通过读DAC和ADC的寄存器的值,可得DAC输出电压与送入ADC的电压U差的值。根据DAC的输出电压和同相比例运算电路公式可得U近电压值,根据减法电路公式、U差和U近的值可得输入电压值。
系统硬件框图如图1所示。
2 系统硬件设计
图2为实现17位ADC原理图。U101、R100、R101、R102、R103组成减法电路,U102、R108、R109、R116组成同相比例运算电路。VD100
组成箝位电路。VR是由基准电压源产生的3 V的基准电压。R117和R118组成分压电路,在R118上的电压为45 mV可抵消运放的零漂。ADO是MCU的ADC通道0的输入端。
图2所示的电路虽然只是实现17位ADC,但通过修改几个特定的电阻阻值就可实现调节测量输入电压范围和ADC测量分辨率。通过修改同相比例运算电路中R109与R116比例值,可实现调节输入电压的测量范围;通过修改减法电路中的R103与R100比例值,可实现调节ADC的分辨率。下面结合实现17位ADC硬件设计电路图,具体说明如何实现17位高精度ADC、调节测量输入电压范围和实现10~20位精度可调的ADC。
2.1 17位ADC的实琨过程
对于一个n位的ADC,其分辨率为可测量最大输入电压值与2n的比值。因此,此电路图可实现的ADC的位数可以通过输入电压的最大值和分辨率计算得出。
1)计算输入电压测量范围的方法 由图2可知,ADC的输入电压计算公式如下:
式中,VIN是输入电压,VDAOUT是当ADC的输入电压处于量程范围之内时DAC电压,VDAO是ADC输入电压。
由式(2)可知,当DAC的输出电压和ADC的输入电压刚好达到最大值3 V时,输入电压为59.1 V,此电压值为系统可测量的最大输入电压值。由此可见输入电压的测量范围是0~59.1 V。
2)ADC分辨率的计算方法 当DAC的输出为零时,即VDAOUT=0时,由式(2)可知输入电压VIN与VADO的电压的关系为:
VIN=VADO/10。MCU的ADC位数是1O位、最大输入电压是3 V。因此,ADC分辨率为0.292 mV。
3)实现17位ADC根据输入电压最大值与ADC分辨率的比值计算出此电路图实现的ADC的位数。由59.1/(0.292x10-3)=202 397=217.6,可以看出此电路实现了17位的ADC。
2.2 调节测量输入电压范围的方法
因为VADO和VDAOUT的最大值都是3 V,由式(2)可知,可测量的最大输入电压值是由R100、R103、R116、R109决定的。改变R100与R103的比值会影响ADC的测量精度,因此,调节测量输入电压范围主要是通过调节R116与R109的比值。由式(2)容易看出,当R116增加时,测量电压输入范围增加,R109增加时测量电压输入范围减小。
2.3 实现10~20位精度可调ADC的方法
由17位ADC的实现过程可知,此电路实现ADC的位数是由测量输入电压最大值和ADC的分辨率决定的。所以在改变ADC的位数时,要通过改变测量输入电压范围或者ADC分辨率。但是,系统测量输入电压范围是固定的。因此,可通过改变ADC分辨率实现ADC的位数改变。
1)调节ADC分辨率的方法当DAC的输出电压为零时,将式(2)化简为式(3):
由式(3)可知,当MCU的ADC变化一个电压刻度值时,VIN变化6R100/R103。ADC位数是10位、最大输入电压是3 V。因此,ADO分辨率为3 V/1 024=2.92 mV,ADC的分辨率为2.92x10-3x6R100/R103。由此可见,R100增加时,分辨率下降;R103增加时,分辨率提高。
2)实现10~20位精度可调ADC通过可测量的输入电压最大值与要实现的ADC的位数可计算出ADC的分辨率,再通过式(3)可求出R100与R103的比例关系。按照R100与R103的 比例关系修改其阻值,即可实现要得到的ADC的位数。例如将本系统修改为20位ADC,则ADC测量精度应该为59.1 V/220=0.056 mV。由式(3)可知0.056=6x0.292xR100/R103,所以修改R103与R100的比值为312.8,即可以实现20位的ADC。通过此方法可实现10~20位精度可调的ADC。
2.4 硬件设计说明
U100是由运放OPA177F组成的电压跟随器,具
- 12位串行A/D转换器MAX187的应用(10-06)
- 低功耗、3V工作电压、精度0.05% 的A/D变换器(10-09)
- 12位串行A/D转换器的原理及应用开发(10-09)
- 在射击探测器中增加口径确定功能的简单电路(11-13)
- 一种折叠共源共栅运算放大器的设计(11-20)
- 深入解析:模拟前端模/数转换器的三种类型 (11-26)