用运放做RC滤波器输出的缓冲大有益处。它不仅提高了滤波电路带载能力,而且使线性度得到了提高。通过实验可知,这一级运放的的缓冲作用是保证整个D/A精度和线性度的重要环节。尽管RC滤波器无负载,处在非常理想的条件下工作,但Vo并不完全与占空比成正比。经测试,Vo与理想值有一些误差,如图3所示。
图中的曲线1表示理想值,曲线2表示实测值。由图中可见,曲线2的根部不太理想。这是因为所使用的电容不是纯电容,其中含有一定的电感。在占空比极小时,由于脉冲非常窄,它产生的高次谐波的频率很高,电感对高次谐波的感抗较大,因此在脉冲沿的位置上,尽管电压变化很大,但实际给电容充电却很小。这样就在窄脉冲时产生非线性。当采用无感电容时,这种非线性有较大改善,但仍不能完全吻合。由于无感电容容量太小,价格也较高,所以在大时间常数滤波电路中没有实际意义。在实际使用中解决这一问题的方法是舍弃根部非线性部分,只用线性部分,在工业仪表中,标准的信号一般为1—5V或4—20mA。而曲线2的非线性部分在0.4V以下,所以当采用1—5V输出信号时,精度为0.03%完全满足12位D/A要求。
除精度满足要求外,温度特性也必须满足要求。影响温度特性的原因主要是5V精密电源和运算放大器的温度特性。为不使价格太高,选用2DW232精密稳压二极管,运放的电阻与滤波电阻要匹配且温度系数≤25ppm。运算放大器选择温漂≤10uV/℃的均可,一般廉价低温漂运放都可满足这个指标。采用上述措施后D/A的总温度漂为33ppm/℃。
[三].实测数据
由于这个线路是在0.2级精密仪表中使用的,因此要求线性度和温度特性必须满足要求,另外,这个数据是测量V/I转换后4-20mA电源值与给定电流值之间的误差。这个误差还包含了V/I转换的误差。因此实际的D/A自身的误差比总误差要小。
Igd(mA) Io(mA) Δ=Io-Igd
4.000 3.999 -0.001
8.000 7.998 -0.002
11.000 11.002 +0.002
16.000 16.006 +0.006
20.000 20.008 +0.008
线性=Δmax/20=0.0004
20℃ 60.℃
4.000mA 3.993mA Δ=-0.007mA
20.000mA 19.974mA Δ=-0.026mA
温度漂移=Δmax/20×40=33ppm/℃
由以上数据可知,满量程的线性度为0.04%,满量程的温度漂移为0.033%/10℃,系统响应时间约为2.2s,输出信号与标准值相差0.1%时所用的时间为11s。
[四].结束语
上面所介绍的D/A电路结构简单,原理易懂,在8098及8031单片机上都可以应用,笔者采用8098单片机的四路高速输入输出同时控制四路精密D/A输出。后面加一级V/I转换电路,构成标准的4—20mA电流输出,电路经一年多的现场实际应用,效果很好,适于目前0.2级仪表的全部要求。