基于单片机数模转换电路的设计与分析

2022-06-15 09:06王超符晓玲
电子设计工程 2022年11期
关键词:寄存器微分增益

王超,符晓玲

(昌吉学院物理系,新疆昌吉 831100)

数模转换器(D/A)用来将数字量转换为模拟量,在无线通信系统、微机系统等领域具有非常重要的意义。衡量D/A 转换器静态特性的指标有很多,比如:分辨率、失调误差、增益误差、微分非线性和积分非线性等[1-3],这些指标对应用D/A 转换器实现数据测量并准确分析具有重要的意义,该设计利用Proteus 软件分析D/A 转换器的工作过程,使用实物电路测量数据对D/A转换器的静态特性指标进行了详细分析。

1 数模转换电路的设计

数模转换电路由AT89C51、带有串行SPI 接口的10 位D/A 转换器TLC5615 和基准电压输入电路组成。TLC5615 转换器引脚DIN、----CS 和SCLK 分别与单片机P1.0、P1.1 和P1.2 相连,使用可变电位计RV1,可使TLC5615 的输出电压OUT 在0~5 V 内调节,REFIN 为基准电压输入端,范围为2 V~(VDD-2 V),一般取2.048 V,虚拟直流电压表用来观察DAC 转换的结果,使用SPI 调试器可以观察数据在总线上输入/输出的传输情况。电路设计如图1 所示。

图1 数模转换电路

2 软件程序设计

软件程序由主程序和子程序组成,主程序实现启动数模转换、调用写入子程序功能,子程序主要实现转换数据的处理,当TLC5615 的片选信号----CS 为低电平时,串行输入的数据才能移入16 位移位寄存器,在每个SCLK 时钟的上升沿将DIN 的一位数据移入16 位移位寄存器中,----CS 的上升沿将16 位移位寄存器的10 位有效数字锁存到10 位DAC 寄存器中,启动DAC 电路进行转换处理。程序的编写要严格按照器件的工作时序进行,软件流程图如图2 所示。

图2 软件流程图

3 运行过程分析

分别在TLC5615 芯片引脚SCLK、----CS、DIN、OUT和REFIN 端放置电压探针,绘制混合瞬态分析图表并在图表中添加模拟量和数字量曲线,当----CS 引脚为低电平时,串行输入数据才能移入16 位移位寄存器,16 位移位寄存器分为高4 位虚拟位、低2 位填充位和10 位有效数据位,在每个SCLK 时钟的上升沿将DIN 的一位数据移入16 位移位寄存器,TLC5615工作时,只需要向16 位移位寄存器先后输入10 位有效位和低2 位的任意填充位即可[4-5],在----CS 的上升沿将16 位移位寄存器中的10 位有效数字锁存于DAC寄存器中,实现D/A 转换,调节可变电位计RV1的电阻值为其量程的82%,电阻R1为1.001 86 kΩ时,U1(REFIN)输入端电压为2.048 V,主程序中设置待转换的数字量为“3FF”,由公式VOUT=2VREFIN×N/1 024(VREFIN为基准电压值,N为输入的二进制数所对应的数值)可计算出转换后的电压值为4.092 V,由虚拟直流电压表测量的结果为4.091 99 V,即仿真结果与计算结果基本一致。

打开SPI 调试器窗口,可以观察到在数据输入端DIN 上传输的数据为“FFC=1111 1111 1100”,由于TLC5615 的最后两位数据“00”为填充位,真正送给TLC5615DAC 转换的数字量为“3FF=0011 1111 1111=1023”。

4 静态特性参数测试分析

4.1 分辨率

分辨率(Resolving Power)是指单片机输入给D/A转换器的单位数字量的变化,所能够引起的模拟量输出的变化[6]。通常将其定义为输出满刻度值(FS)与2n-1的比值(n为D/A 转换器的二进制位数),习惯上用输入数字量的位数来表示,常用符号1 LSB 表示,它反映了D/A 转换器对于输出模拟量的分辨能力。

TLC5615为10位的D/A 转换,它的满量程输出值为4.092 V,故其分辨率的大小为1 LSB=4.092/1 023=0.004 V=4 mV,如图3 所示。

4.2 失调误差

失调误差(Offset Error)是指当输入的数字量全为“0”时,数模转换实际输出的模拟量电压值与理想电压值之间的偏差[7]。它是在所有的代码转换时都存在对于输出电压的一个偏差值,对D/A 转换器来说,它将使DAC 的特性曲线整体向上或者向下移动。它是以最低有效位LSB 为单位计量的,其表达式为:

其中,VOUT和VLSB分别表示当输入为全“0”时,实际输出的电压值和理想输出1 LSB 的电压值,依据测量表1 的数据,当输入的数字量为“0000 0000 00(00)”时,TLC5615 的输出电压值为3.96 mV,而理想特性曲线的输出应为0 V,实际曲线在理想曲线的上方,其特性曲线如图4 所示。

表1 失调误差数据表

4.3 增益误差

D/A 转换器的增益用来表示输入与输出关系的斜率,而增益误差(Gain Error)是指DAC 在失调误差完全得到补偿后,当输入的数字量从“1111 1111 10(00)”变换到“1111 1111 11(00)”时,输出的理想传输特性曲线与实际传输特性曲线之间的偏差,故又将其称为满量程值误差[8]。其计算公式为:

增益误差计算前需要先减去失调误差的差值,即将测得的每个数据都减去0.003 96 V,使实际的特性曲线整体向下平移,然后找到数模转换实际运行时的最后一个点的转换结果与理想转换结果的差值即可。依据表2 的数据,TLC5615 的最后一个数字量转换结果为4.10 V,补偿完失调误差为4.10-0.003 96=4.096 04 V,而理想特性曲线的输出应为4.092 V,两者的差值为4.096 04-4.092=+0.004 04 V,在理想曲线的上方绘制的增益误差特性曲线如图5 所示。

图5 增益误差

表2 增益误差数据表

4.4 微分非线性

微分非线性(Differential Nonlinearity,DNL)是指数模转换器的实际转换特性和理想特性的所有台阶宽度之间的最大差值[9-10],即两个相邻输入数字量对的DAC 模拟输出增量的变化值,描述了线性误差的分布特性,它表达了输出增量的不均匀程度。其表达式为:

微分非线性是在将失调误差和增益误差完全补偿之后的任一相邻输出差值与1 LSB 之间的偏差。增益误差的补偿可以通过各点对应的输出电压值乘以其实际输出曲线的增益补偿系数得到补偿,补偿系数的计算是用实际最大输出值作为分母,理论最大输出值作为分子,即补偿系数为4.092/4.096 04=0.999 013 7。TLC5615 测得的第一个值为7.98 mV,计算值为4 mV,由式(3)得(7.98-3.96)×0.999 013 7/4-1=-0.004 LSB,测量数据表如表3 所示,微分非线性特性曲线如图6 所示。符合TCL5615 数据手册中描述的DNL的典型值为±0.1 LSB,最大值为±0.5 LSB。

图6 微分非线性曲线

表3 微分非线性数据表

4.5 积分非线性

积分非线性(Integral Nonlinearity,INL)是指数模转换器实际的传输特性曲线在完全补偿失调误差和增益误差之后,与理想转换特性曲线之间的最大偏差[11-12],描述了实际转换特性曲线的整体线性度[13-14]。积分非线性描述了DNL 累积的结果,积分非线性有两种测量方法,一种是端点法,通过原点和最后一个转换点推导出传递函数来计算偏差。另一种方法为最适宜法,即对失调和增益补偿后与线性的理想特性曲线比较来计算偏差[15-16]。该文采用最适宜法来计算积分非线性,D/A 转换器的INL 实际上表示了输出数值偏离线性最大的距离。其表达式为:

根据表4,计算出每个转折点上实际输出电压和理想输出电压的差值,并计算出其差值与1 LSB 的相对比值即为INL 的值。在第一个转折点时的实际输出电压值为4.016 04 V,由式(4)可得INL=(4.016 04-4)/4=0.016 04/4=0.004 LSB,绘制积分非线性特性曲线,如图7 所示,由图可知INL 的最大值和最小值分别为+0.684 LSB 和-0.424 LSB,符合TCL5615 数据手册中描述的INL 的最大值为±1 LSB。

表4 积分非线性数据表

通过积分和微分非线性的定义可知,积分非线性还可以通过微分非线性来计算,它是DNL 的累计效果,其关系表达式为:

以DNL 的前两个数据为例,DNL 分别为+0.004LSB 和-0.156 LSB,则通过计算可知INL=(+0.004)+(-0.156)=-0.152 LSB,与测量所得的积分非线性的结果相符。

5 结束语

使用Proteus 仿真软件可将数模转换过程直观地展现出来,使用实物电路测量数据来分析数模转换器的静态特性参数可帮助学生更好地理解转换器的性能参数,提高其解决问题的能力。

猜你喜欢
寄存器微分增益
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
一类带有Slit-strips型积分边值条件的分数阶微分方程及微分包含解的存在性
基于增益调度与光滑切换的倾转旋翼机最优控制
Lite寄存器模型的设计与实现
基于单片机的程控增益放大器设计
二进制翻译中动静结合的寄存器分配优化方法
基于Multisim10和AD603的程控增益放大器仿真研究
移位寄存器及算术运算应用
基于跟踪微分器的高超声速飞行器减步控制
程控增益射频宽带放大器