实验表明,AD569和ADC1210的短期稳定性很高。将AD569输出作为主通道,ADC1210输出作为辅助通道,两者通过比例电阻和运算放大器进行求和,滤波后输出电压的分辨率可达10 uV,相当于20位的D/A转换器,且满度输出达到10V,非常适合仪器仪表的设计需要。
电路原理
电路如图1所示,外部基准LM369提供10V基准电压,AD569输出作为主通道转换的电压,与作为辅助通道的ADC1210输出电压在IC2的输入端叠加,叠加比例为1000:1。因为AD569是16位的D/A,其分辨率为10×1/(216-1)=0.15mV,而12位ADC1210的分辨率为10×1/(212-1)=2.4mV。电路中,理论上用ADC1210的转换电压的1/1000(2.4/1000=0.0024mV)去补偿AD569的0.15mV的最小分辨率。如此可知,理论上完全可以实现10 uV(0.01mV)的最小分辨率的设计指标。
电路设计注意的问题
电源与外部基准
虽然,D/A转换器的精度主要决定于分辨率,但是其前提条件是电源及参考电源必须稳定,否则达不到应有的精度、本设计方案中采用的AD569和ADC1210均采用外部10V基准,因此对该基准的稳定性有较高的要求,设计中采用的LM369是一种带有温度补偿功能的高性能10V基准器件,其温度系数为2 uV/℃ ,稳定度是6×10-6/年。所以LM369构成的基准电路完全胜任本设计指标对D/A基准的严格要求。
电源电路的要求当然是越稳定、纹波越小越好。本设计中采用预稳压方式为D/A转换器供电,电路如图2所示。
图2中预稳压由ZF402实现,ZF402可产生高稳定度的正负电压,年稳定度优于30×10-6。
ADC1210应用
ADC12l0是一个12位D/A转换器芯片,24脚双列直插式封装,输入端与TTL兼容,该芯片主要特性为:分辨率为12位;具有双寄存器结构,可对输入数据进行双重缓冲;与微处理器兼容,接口方便;建立时间为1 us,转换速度快;线性度好,温漂小;外接±10V的基准电压,工作电源+5~+15V;功耗低,约20mW;电流输出型D/A转换器。
ADC1210内部12位输入寄存器由一个8位寄存器和一个4位寄存器组成,4位寄存器的输入允许端LE受/CS、/WRI控制,8位寄存器的输入允许端LE除受//CS、/WRI控制外,还受BYTE1、/BYTE2控制,当/CS、/WR1同为低电平时,若BYTE1、/BYTE2为高电平时,两个寄存器的LE端均有效,输入的12位数据可进入12位输入寄存器若BYTE1、/BYTE2为低电平时,则只有4位寄存器选通,使低4位输入数据进入输入寄存器。文中ADC1210与80C51的P0口8位数据总线相连,即DB11~DB4接数据总线D7~D0,DB3~DB0接D3~D0,显然,12位输入数据应分为两次写入。由于4位寄存器的LE端只取决于/CS、/WRI,所以两次写入都会写入4位寄存器。为了使4位寄存器的有效输入数据不致于被第二次写操作破坏,应将此数据在第二次写操作时写入,所以,两次写入应先对8位寄存器写入,此时应使BYTE1、/BYTE2为高电平:8位数据输入后,使BYTE1、/BYTE2端为低电平,进行第二次写入,此时只输入4位数据到4位寄存器中BYTE1、/BYTE2的选通由89C51的P2.2口线来控制。当12位输入数据进入12位输入寄存器后,再选通12位DAC寄存器将输入数据送至12位D/A转换器进行D/A转换。
AD569的应用
AD569是一个16位D/A转换器芯片,28脚双列直插式封装,输入端与TTL兼容,该芯片主要特性为:分辨率为16位;非线性误差为0.01%;微处理器兼容,接口方便;建立时间为3us,转换速度快;线性度好,温漂小;外接±10V的基准电压,工作电源+5~+15V。
同ADC1210一样,AD569也与80C51的P0口8位数据总线相连,即DB0~DB7与DB8~D15复用89C51的数据总线D7~D0,显然,16位输入数据应分为两次写入。低8位与高8位的写入控制由89C51的P2.1和P2.0口线来控制。当16位输入数据输入寄存器后,再选通16位DAC寄存器将输入数据送至16位D/A转换器进行数模转换。
实践表明,AD569使用±15V电源,引入的电源噪声将严重影响输出电压的稳定度,因此,建议在这两组电源与地之间分别并入一个4.7 uF的钽电容来解决这个问题。
比例加法器的设计与调零电路的设置
首先,本文电路设计的关键部分之一是比例电阻的选择.设计中采用的比例系数确定为1000:1,因此,电阻选择RX73精密线绕电阻10MΩ和10kΩ阻值的。为了进一步保障分辨率的准确性,这些电阻在使用前一定要做如下处理和检验:
(1)用精密测试设备,准确测试电阻阻值。
(2)将多只选择好的电阻连续加电后放置40℃的恒温箱72小时,进行温度老化处理。
(3)在可调温度的恒温装置中测定电阻的温度系数,从中选择温度影响趋势一致,且温度系数一致的两种阻值的电阻,作为比例电阻。
通过以上的处理,可以基本减小由于比例电阻性能变化对比例系数的影响。其次,运放选择了F07A,它的开环增益大于106;输偏量电流小于0.1nA,温漂0.2 uV/℃,时漂0.2 uV/月,失调电压可调至±10 uV之内,这些参数对输出的影响均可忽略不计。
最后,由于AD569与ADC1210组合输出,其中ADC1210能够补偿的范围应在0.1~0.01mV,因此要求ADC1210必须可进行正负两个方向的补偿,所以,设计中将ADC1210转换中值点即2048个数位处设置为零位,由于此时ADC1210的输出接近5V,比例调节后也为0.005V,因此为了使合成后的输出电压对应零位,要求AD569输出0.005V的电压且与ADC1210的输出反向,从而抵消ADC1210零点没置的电压输出。但实际中,不可能完全将零位电压补偿为零,因此必须设置外部调零电路,电路如图3所示。
D/A转换程序
本设计为了方便进行D/A性能测试,设置了一个7位的可增减式键盘和7位数码显示,即每位数码管下对应一组增减键。数码管的作用是显示设定的转换电压值,对应0~10V显示。
键盘和显示部分由显示控制芯片HD7279A组成,HD7279A是8位LED数码管及64键键盘智能控制芯片,由于该器件是串行通讯方式,所以简化了与AT89C51之间的连线。
转换程序由C语言编写,主要包括主程序、AD569与ADC1210初始化序、键盘设置和显示程序、D/A转换调整子程序。
由于AD569自身线性误差的局限,因此在0~10V的宽输出范围内不可能满足设计要求,因此在软件设计中必须进行修正处理,使AD569与ADC1210一起进行转换,通过预设的修正参数来补偿D/A转换的输出,修正的基本原则分析如下:由于AD569的线性指标仪为0.1%,因此,我们在使用中,可保留AD569转换值的有效位,经测试,使用本文中的10V基准,AD569转换输出电压准确到分位。表1是AD569测试考核数据。
预置值(V) 转换值(V)
1.0000 0.9974
6.0000 5.9976
预置值(V) 转换值(V)
3.0000 2.9977
8.0000 7.9975
预置值(V) 转换值(V)
2.0000 1.9971
7.0000 6.9973
预置值(V) 转换值(V)
4.0000 3.9971
9.0000 8.9979
预置值(V) 转换值(V)
5.0000 4.9974
10.0000 9.9978
由表中数据可知,转换后的电压可准确到分位,因此可以通过给569设定值乘一个比例系数将转换电压准确到千分位(如表中1.0000对应的0.9974调整为0.999XX)。这样在修正时,只要修正万分位以后的值即可,这项工作可由ADC1210来完成,也就是利用1210转换电压的前两位数字去修正,由于1210的分辨率为2.4mv,因此在使用10V基准时,其前两位是绝对准确的。由于1210转换值通过1000:1的比例电路与569的转换值相加,因此1210转换值的前两位正好为0.000XX~0.001XX,设计中1210的初始设定在5.000V位置,则对应修正范围为:-0.0005X V~0.0005X V。因此,修正后的转换电压准确度可保障在十万分位。但是,由于AD569转换的电压在万分位以后是没有太好的规律可循的,因此应采用分段修正,本文设计中对AD569转换电压分100段进行了修正。
测试数据与结果分析
对采用上述方案研制出的D/A转换板进行了测试。测试设备采用FLUKE 734B固态电压标准(1V与10V输出,不确定度小于1.5×10-6),通过FLUKE720分压器(不确定度小于1×10-6)与D/A 的输出电压在FLUKE845指零仪(分辨率0.01 uV)上对比,表2是该D/A转换器的买际测量数据。
实测数据表明:输出范围为0~+10V,FS=10V;分辨率为10 uV;线性(修正后)为<0.001%(满度);准确性为<0.001% 。
该转换电路的设计,提高了电压的转换精度和分辨率,对仪器仪表的研制具有非常重要的意义。