首页 | 期刊简介 | 编辑部 | 广告部 | 发行部 | 在线投稿 | 联系我们 | 产品信息索取
2024年11月21日星期四
2011年第01期
 
2010年第12期
 
2010年第11期
2010年第11期
 
2010年第10期
2010年第10期
 
2010年第09期
2010年第09期
 
2010年第09期
2010年第08期
 
2010年第07期
2010年第07期
 
2010年第06期
2010年第06期
 
2010年第05期
2010年第05期
 
2010年第04期
2010年第04期
 
2010年第03期
2010年第03期
 
2010年第02期
2010年第02期
 
2010年第01期
2010年第01期
 
2009年第12期
2009年第12期
 
2009年第11期
2009年第11期
 
2009年第10期
2009年第10期
 
2009年第9期
2009年第9期
 
2009年第8期
2009年第8期
 
2009年第7期
2009年第7期
 
2009年第6期
2009年第6期
 
2009年第5期
2009年第5期
 
2009年第4期
2009年第4期
 
2009年第3期
2009年第3期
 
2009年第2期
2009年第2期
 
2009年第1期
2009年第1期
 
2008年第12期
2008年第12期
 
2008年第11期
2008年第11期
 
2008年第10期
2008年第10期
 
2008年第9期
2008年第9期
 
2008年第8期
2008年第8期
 
2008年第7期
2008年第7期
 
2008年第6期
2008年第6期
 
2008年第5期
2008年第5期
 
2008年第4期
2008年第4期
 
2008年第3期
2008年第3期
 
2008年第2期
2008年第2期
 
2008年第1期
2008年第1期
TLV5614数模转换器的原理及其与单片机的接口应用
The Principle and Application of TLV5614 Digital-Analog Converter
■ 武汉理工大学信息工程学院 陈伟 王桂琼



摘 要:本文介绍了TI公司生产的4通道12位D/A转换器TLV5614的功能特点和工作原理,结合开发实例,给出了TLV5614 与MCS-51系列单片机的应用接口电路和软件程序,最后对结果进行了分析并指出了其应用前景。

关键词:TLV5614;D/A转换器;SPI接口


概述


TLV5614是TI公司生产的四路12位电压输出型数模转换器(DAC),具有灵活的四线串行接口,可以与TMS320、SPI、QSPI和Microwire串行口实现无缝联接。TLV5614的编程控制由16位串行字组成,即2位DAC地址、2个独立的DAC控制位和12位的DAC输入值。器件采用双电源供电:一组为串行接口使用的数字电源,即DVDD和DGND;另一组为输出缓冲器使用的模拟电源,即AVDD和AGND。两组电源相互独立且可为2.7V至5.5V之间的任何值。双电源应用的好处是DAC使用5V电源工作,而DAC的数字部分使用2.7V~5.5V电源,所以可以和多种接口连接工作。

DAC内部电阻串的输出电压由一个2倍增益的满幅度输出缓冲器缓冲,这种缓冲器的特点是以AB类输出来增加稳定性和减少建立时间。满幅度输出和掉电模式使其能够理想地应用于单电源、电池供电的场合。DAC的建立时间是可编程的,这样允许设计者优化其速度与功耗。建立时间由16位串行输入控制字的SPD控制位来选择。

REFINAB和REFINCD端集成了一个高阻抗的缓冲器,减少了对驱动该端基准源的低输出阻抗的要求。REFINAB和REFINCD允许DAC A、B与DAC C、D有不同的基准电压。

TLV5614的功能方框图和引脚图见图1及图2,表1为其引脚说明。

图1 内部功能方框图(略)
图2 引脚排列(略)
表1 引脚说明(略)


工作原理


TLV5614是一种基于电阻串结构的12位DAC,器件由串行接口、速度和掉电控制逻辑、基准输入缓冲器、电阻串以及满幅度输出缓冲器组成。其输出电压由下式给出:

满度值取决于外部基准。其中REF是基准电压,CODE是在0x000至0xFFF范围内的输入数字值。上电复位时,最初把内部锁存器复位到预定状态(所有位均为0)。

TLV5614的16位数据字由两部分组成:控制位(D15…D12)和新DAC值(D11…D0)。如表2所示:

表2(略) 表3(略)

其中,SPD:速度控制位 1 ->快速方式; 0 ->慢速方式。
PWR:功率控制位 1 ->掉电方式;
0 ->正常工作。
在掉电方式下,TLV5614中所有放大器都被禁止。TLV5614的DAC(A、B、C、D)通道选择由输入字A1和A0控制。A1,A0与所选择的DAC通道的关系如表3所示:
在传送数据时,首先,通过把片选端设置为低电平使器件工作。然后,FS的下降沿开始,在SCLK的下降沿使数据一位接一位的移入内部寄存器(从高位开始)。在传送了16位数据后或者FS的上升沿到达后,移位寄存器的内容送至DAC锁存器,它把电压输出刷新到新的电平值。其工作时序如图3。


应用


TLV5614具有灵活的串行接口方式,所以它与C51系列单片机的接口很方便,如图4所示。

在实际的应用中,我们取参考电压REF为2.5V,DAC的供电为5V,由于TLV5614是满幅度输出,所以由式1可得,它的DAC输出电压范围将在0~5V之间。很显然,它的输出电压分辨率为1.22mV。在实际应用中,我们需要输出的精确电压值可能在0~12V之间,或是更高,这时,只需对DAC输出电压进行直流放大,放大倍数就是我们所需最高电压与5V的比值。相比TLV5614的1.22mV分辨率,对12V电压,最终输出电压的分辨率为2.93mV,它也能够满足大多数应用场合对电压变化精度的要求。

TLV5614的程序控制也很方便,只要按照它的工作时序进行操作,就能实现它的功能。由于我们使玫氖茿T89C55单片机,因此,其控制字只能分成两个字节来写入。其中高位字节的高四位是通道选择和控制位;高位字节的低四位和低位字节一起组成12位的DA转换代码。这样分两次依次移入TLV5614的命令寄存器,然后,FS的上升沿到达,相应的DAC通道输出新的电压值。

以下是部分程序清单:
//头文件定义
sbit LDAC5614=p1^0;
sbit DIN5614=p1^1;
sbit SCLK5614=p1^2;
sbit FS5614=p1^3;
//DA转换程序,com1和com2为控制字的高位字节和低位字节
void dac(unsigned char com1,unsigned char com2)
{ unsigned char data, i, j;
//DA输出保持即时刷新状态
LDAC5614=0;
//FS的下降沿开始逐位移入数据
FS5614=1;
FS5614=0;
data=com1;
for(i=8;i>0;i--)
{
DIN5614=(bit)(data&0x80);
data<<=1;
SCLK5614=1;SCLK5614=1;SCLK5614=1;SCLK5614=1;SCLK5614=1;
SCLK5614=0;
}
data=com2;
for(i=8;i>0;i--)
{
DIN5614=(bit)(data&0x80);
data<<=1;
SCLK5614=1;SCLK5614=1;SCLK5614=1;SCLK5614=1;SCLK5614=1;
SCLK5614=0;
}
//控制字输入完毕,时钟停止,FS的上升沿到达后刷新输出电压
DIN5614=1;
SCLK5614=1;
FS5614=1;
}

这是TLV5614的控制程序。实际应用中,按照一定的控制逻辑,比如递增、查询正弦表等等,循环调用这个控制程序,就可以得到想要的梯形波、数字正弦波,这样就可以根据TLV5614产生的控制波形来实现一些控制过程,比如扫频或波形输出。

图3 时序图(略)
图4 TLV5614与C51系列单片机接口(略)


此程序经过实际的编译运行测试,DA输出结果精确。在实际应用时应当注意,TLV5614最好采用双电源供电,DAC部分采用模拟+5V供电,逻辑控制部分采用数字+5V供电,而且数字地和模拟地要分开。这样数字部分和模拟部分的相互干扰才会得到很大的改善。这些措施已经在产品的开发中得到很好的应用。

         
版权所有《世界电子元器件》杂志社
地址:北京市海淀区上地东路35号颐泉汇 邮编:100085
电话:010-62985649
E-mail:dongmei@eccn.com