FPGA初级课程第二十三讲 DA
FPGA初级课程第二十三讲 DA
Hi,大家好!我是至芯科技的李老师。
今天讲课的题目是:DA。
本节课我先简要地介绍一下DA转换芯片工作的基本原理,然后实际演示一下DA驱动逻辑电路的建模与仿真,我们还要结合第六讲的单独按键消抖一起编写一个完整的演示逻辑,并下板查看实际效果。
演示平台为至芯科技开发的ZX_2开发板。
开发板采用的AD转换芯片为TI公司的4路8位数模转换器TLC5620。
打开《ZX_2.pdf》文件,我们看一下DA部分的电路图。
我们打开至芯科技编写的《基于FPGA的TLC5620驱动设计(DA).pdf》文档。
1. 实验引言
ADC和DAC是模拟量和数字量之间不可或缺的桥梁。
而AD、DA转换器在数字控制系统中也有着重要地位。
A/D转换器将各种模拟信号转换为抗干扰性更强的数字信号,直接进入数字计算机进行处理,存储并产生数字控制信号;
D/A转换器把收到的数字控制信号转换成模拟信号,实现对被控对象的控制。
2.实验目的
熟悉串行数/模转换芯片TLC5620的使用方法,学习用状态机设计DAC访问接口程序。
3.实验内容
本实验我们用FPGA对至芯开发板上的DA芯片TLC5620进行控制,TLC5620是一个拥有四路输出数/模转换器。
我们通过一个按键对四路输出进行切换,使用数字万用表测量对应通道的输出电压,比较设置值与实测值是否一致。
比如,开发板上电重启或按下复位键后,四路输出均为0V;
按下切换按键1次时,通道1电压输出变为0.3125V,其余不变;
按下切换按键2次时,通道2电压输出变为0.625V,其余不变;
按下切换按键3次时,通道3电压输出变为1.25V,其余不变;
按下切换按键4次时,通道4电压输出变为2.5V,其余不变;
以上4次按完之后,四个通道电压应依次为0.3125V、0.625V、1.25V、2.5V。
4.实验原理
TLC5620是一个四通道8位串行D/A转换器,时钟频率最大可以达到1MHz。
TLC5620传输的一帧数据为11位,高位先传送,格式如表2所列。
D10、D9位为通道选择位,其对应关系如表3所列;
D8位为输出电压模式选择,
若为“0”则输出电压范围为0~Vref;
若为“1”则输出电压范围为0~2Vref;
其中Vref为参考电压,我们的开发板提供参考电压值为2.5V;
D7~D0为数据位。
本帖最后由 lcytms 于 2017-2-10 11:50 编辑
TLC5620的访问时序如图1所示。
其中CLK为DAC的时钟;
DATA为串行数据,锁存于时钟的下降沿;
LOAD为数据锁存控制信号,当一帧数据传送完毕时,拉低LOAD信号线,即把该帧数据锁存起来;
LDAC为DAC输出更新控制信号,当LDAC为低电平时,则把锁存在锁存器的数据送到DAC并转换输出。
详细的时序控制、参数设置请参考数据手册。
TLC5620的输出电压为:
Vo(DACA/B/C/D)=Vref*(CODE/256)*(1+RNG)
其中Vo为输出电压值;
DACA/B/C/D代表四个不同的通道;
Vref为参考电压;
CODE为8位二进制数,范围为0~255;
RNG为RNG位,数值为0或1。
图1TLC5620访问时序图 5. 硬件设计
用TLC5620芯片搭建的DA转换电路如下图所示。
DA芯片的工作原理既然已经清楚,我们下面来进行系统设计。
命名DA驱动逻辑为dac。
架构图如下所示。
在前级加上单独按键消抖模块key_flag、DAC控制器模块dac_controller后,总体架构图如下。
其中,DAC控制器模块dac_controller产生DAC使能信号req,并根据按键次数输出相应的DAC控制字给DA驱动模块dac。
而DA驱动模块dac在完成每一次的DA转换之后,输出一个表示转换完成的脉冲信号req_done,反馈给DAC控制器模块dac_controller。