微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 可编程双路12位D/A转换器TLC5618在工业仪表中的应用

可编程双路12位D/A转换器TLC5618在工业仪表中的应用

时间:09-02 来源:互联网 点击:
随着工业自动化程度的不断提高,在工业中使用的仪表日趋智能化、多功能化、小型化,其硬件电路设计大多采用单片机微处理器为核心,再配以外围电路构成。由于部分仪表需要把现场的模拟信号转换成单片机能够处理的数字信号输入,再把单片机经数据处理后得到的数字信号转换成模拟信号输出,因此,这些仪表的硬件电路设计需要同时具有模数(A/D)转换和数模(D/A)转换两种功能。

在同时需要D/A和A/D转换功能的仪表中,可以用一片A/D转换器和一片D/A转换器来分别实现A/D和D/A转换功能,但由于A/D和D/A转换器芯片的价格都较高,仪表的成本也将较高。笔者在某工业仪表设计中采用可编程双通道D/A转换器TLC5618的一个通道实现D/A转换的同时,用它的另一个通道通过软件编程以逐次比较方式来实现A/D功能。实际应用效果较好,该应用方法具有以下特点:①节省一片A/D
转换器,降低了仪表成本。②TLC5618体积小(8引脚的小型D封装),便于小型化设计,减少了印刷线路板面积。③TLC5618采用3线串行数据输入方式,占用CPU的I/O口线少,硬件搭接简单,外围器件少,软件编程方便。④对于标准信号1~5V信号TLC5618的分辨率至少可达到1.3mV,完全可满足工业过程控制精度要求。⑤通过软件编程以逐次比较方式来实现A/D转换建立时间约为400μs。

TLC5618应用实例

下面具体介绍采用一片可编程双通道D/A转换器TLC5618的一个通道实现D/A转换的同时,用它的另一个通道通过软件编程以逐次比较方式来实现A/D转换功能的实际应用方法。其硬件设计如图1所示

TLC5618是带有缓冲基准输入(高阻抗)的双路12位电压输出数字模拟转换器(DAC),8引脚的小型D封装,需+5V 单电源工作,其输出电压范围为基准电压的两倍,因此,电路设计采用了1.2V基准电压(如LM385)。

通过CMOS兼容的3线串行总线单片机可以对TLC5618实现数字控制,器件接收用于编程的16位输入字产生模拟输出。16位输入字的高4位为编程控制位,通过对编程控制位的设定,可以有三种不同的输出方式,低12 位为被转换的数字量。数据从串行数据输入端DIN按从高位到低位的顺序依次输入,单片机串行通讯可工作在操作模式0下,串行口作同步移位寄存器用或采用其它I/O口模拟串行口方式实现数字控制。这里值得注意的是单片机工作在操作模式0下时,串行口发送或接收的是8位数据,且低位在前,与TLC5618的数据接收时序相反。因此单片机应先将数据进行高低位交换后再进行数据发送。



图1 采用一片TLC5618实现A/D转换和D/A转换的应用电路

1.D/A功能的实现  

该功能只占用TLC5618的OUTB输出通道,若指定建立时间为3μs,则前4位编程控制位应为00xx。前4位编程控制位和被转换的12位数字量组成高8位+低8位=16位的输入字,从串行数据输入端DIN按从高位到低位的顺序依次输入,转换结果电压从TLC5618 的OUTB输出。本电路通过V-I转换电路(见图1)实现电压到电流的转换。这里不再祥述。

2.A/D功能的实现  

在本电路中没有单独使用A/D转换器,A/D转换功能是通过双路D/A转换器TLC5618的另一个输出通道OUTA,通过一级放大电路和比较电路,并通过软件编程采用逐次比较法来实现的。即在双通道D/A转换器TLC5618的串行数据输入端DIN逐次输入按位依次指定的12位数字量(如x800h),并将每次输入数字量的D/A转换结果同实际输入的模拟电压进行比较,根据比较结果来决定每次指定的位应为"0"或"1",当最后一位确定后,这个按位被指定的数字量就是最终A/D转换结果。具体原理如下:

每次A/D转换过程中,前4位编程位一直为10xx。前4位编程位和后面12位转换数字量构成高8位+低8位=16位的输入字。

每次A/D转换前先指定12位输入数字量(不包括4位编程位)的最高位为 "1"输入TLC5618进行D/A转换,D/A转换的结果从OUTA输出后,经过一级放大电路,通过比较电路与实际输入的模拟电压比较。若转换结果电压大于输入的模拟电压,则三极管T1基极为高电平,T1导通,P0.2被下拉为低电平;否则转换结果电压小于输入的模拟电压,则三极管T1基极为低电平,T1截止,P0.2被上拉为高电平。单片机通过检测P0.2的状态,如果P0.2为高电平,则保留本位的"1";否则P0.2为低电平,则将本位的"1"变为"0"。这样12位数字量中的一位就被确定下来,然后再指定下一位为"1",再经过D/A转换、放大、比较,并检测P0.2的状态,该位又被确定下来。依次类推,直到12位数字量全被确定下来,这个12位的数字量的D/A转换结果将最接近输入的模拟电压,它实际就是A/D转换的结果。注意单片机在检测I/O比较结果状态时,应加入约为10μs的时间延时。

另外,本电路仅具有一个模拟量输入信号,如需有多个模拟量输入信号,可不必加模拟开关,只需增加比较电路即可,多个模拟量输入信号均可与D/A转换器经一级放大电路的输出信号比较,并通过相应的A/D转换子程序实现A/D转换。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top