基于SPI总线的TLC5615在AVR单片机中的应用
2011-06-06左现刚余周侯志松张志霞
左现刚,余周,侯志松,张志霞
(河南科技学院,河南新乡453003)
通过单片机I/O口直接控制继电器或可控硅是后向通道中最简单的形式,当被控对象需要根据模拟量的大小连续控制时,最简单的方法便是采用数/模转换器(DAC).DAC种类繁多,从接口形式来看,有串口和并口之分.早期的DAC一般采用并口方式,如广为流行的DAC0832.随着半导体技术的不断发展和进步,为节省CPU的硬件资源,目前一些新型的D/A转换器均采用了流行的串行总线协议,如采用SPI(Serial Peripheral Interface)总线协议的TLC5615.该总线是由Motorola公司提出的一种4线制同步串行外设总线接口,包括时钟、使能、输入和输出4根引脚,主要用于CPU与各种外围器件以串行方式进行通信[1-2].从D/A芯片的输出形式来看,又分为电流输出型和电压输出型两种,常用的DAC0832就是典型的电流输出型D/A转换器.由于输出是电流形式,因此在实际的电路设计中还必须通过运算放大器组成电流/电压转换器将电流输出转化成电压输出.而TLC5615则是电压输出型,可以通过外接的基准电压来调节电压输出的幅度[3-4].
1 TLC5615简介
1.1 概述
TLC5615是带有缓冲基准输入(高阻抗)的10位电压输出DAC,具有基准电压两倍的输出范围,且DAC是单调变化的,使用简单,采用单5 V电源,具有上电复位功能以确保可重复启动.数字控制通过3线串行SPI总线,与CMOS兼容且易于和工业标准微控制器接口.器件接收16位数据字以产生模拟输出.数字输入端带有施密特触发器,具有高噪声抑制能力.工作温度范围为0~70℃.其功能框图如图1所示.
图1 TLC5615内部功能
1.2 引脚功能
8脚直插式TLC5615的引脚分布如图2所示,各引脚功能如表1所示.
图2 TLC5615引脚排列
表1 TLC5615引脚功能
2 TLC5615的工作原理
2.1 TLC5615的时序
图3 TLC5615的工作时序
TLC5615工作时序如图3所示.可以看出,只有当片选CS为低电平时,串行输入数据才能被移入16位移位寄存器.当CS为低电平时,在每一个SCLK时钟的上升沿将DIN的一位数据移入16位移寄存器.注意,二进制最高有效位被导前移入.接着,在CS的上升沿将16位移位寄存器的10位有效数据锁存于10位DAC寄存器,供DAC电路进行转换;当片选CS为高电平时,串行输入数据不能被移入16位移位寄存器.注意,CS的上升和下降都必须发生在SCLK为低电平期间.
2.2 TLC5615的工作方式
从图1可以看出,16位移位寄存器分为高4位虚拟位、低2位填充位以及10位有效位.在单片TLC5615工作时,只需要向16位移位寄存器按先后输入10位有效位和低2位填充位,2位填充位数据任意,这是第一种方式,即12位数据序列.第二种方式为级联方式,即16位数据序列,可以将本片的DOUT接到下一片的DIN,需要向16位移位寄存器按先后输入高4位虚拟位、10位有效位和低2位填充位,由于增加了高4位虚拟位,所以需要16个时钟脉冲.其输出电压为:
VOUT=VREFIN×N/1 024
其中:VREFIN为参考电压,N为输入的二进制数.
3 TLC5615与单片机接口的硬件连接与程序设计
3.1 硬件连接
TLC5615与Mega16接口采用标准的SPI串行总线协议,实际连接可参照图4,当MCU自身不带有SPI接口时,可通过普通I/O口模拟SPI串行总线协议的工作方式.在片选/CS为低电平时,由MCU发往TLC5615的输入数据被读入到16位移位寄存器(最高有效位在前).在SCK时钟信号的上升沿把数据送到输入寄存器,随后由/CS片选信号的上升沿将数据传送至DAC寄存器.当/CS为高电平时,输入数据不能由时钟同步并送入到输入寄存器[5-6].
图4 TLC5615与Mega16的连接
SPI协议规定为8位字节形式,因此数据输入到DAC寄存器需要两个写周期.对于QSPI接口,由于总线传送的数据格式为8位至16位可变,因此可以在一个写周期之内将输入数据装载至DAC输入寄存器.TLC5615的转换精度与PCB板的设计相关,模拟地和数据地在印制电路板中应严格区分.TLC5615的AGND模拟地端应连接到系统模拟地,并应在VDD和AGND之间靠近器件处并联一个电容量为104的旁路电容.
3.2 程序设计及验证
程序编辑软件采用ICCAVR,版本为6.31.程序代码如下:
通过程序可以看出,在保证SPI同步传输的高效性和高速性的同时,采用SPI接口的芯片在和微控制器进行数据通信时,控制程序显得简单和清晰.
4 结论
由于使用带SPI功能的器件采用3或4根信号线进行串入并出数据传输,使程序控制变得更为简洁高效,而且增强控制系统的移植性,大幅简化电路的繁杂布线,提高整体系统的稳定性.另外AVR单片机把SPI总线接作为其技术特性固化在系列芯片中,所以更加方便对具有SPI接口的芯片进行连接和控制.
[1]王志,王文廉,张志杰.SPI及USB双通信接口的设计与实现[J].自动化仪表,2010,31(1):72-75.
[2]王耿,王金明.SPI接口控制器设计与实现[J].电子质量,2010(1):4-5.
[3]孙晓晔.PIC单片机与串行闪存的SPI接口设计[J].单片机与嵌入式系统应用,2010(4):46-48.
[4]陈志彬,王仲初,崔文华.SPI接口芯片在单片机小系统中的应用[J].自动化与仪表,2001(1):63-65.
[5]耿德根,宋建国.AVR高速嵌入式单片机原理与应用[M].北京:北京航空航天大学出版社,2001.
[6]彭希南.基于SPI接口的ISD4104系列语音录放芯片及其应用[J].微型机与应用,2000(9):24-26.