集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 9875|回复: 21

FPGA初级课程第二十三讲 DA

[复制链接]
lcytms 发表于 2017-2-10 11:32:17 | 显示全部楼层 |阅读模式
FPGA初级课程
第二十三讲 DA

Hi,大家好!我是至芯科技的李老师。
今天讲课的题目是:DA。
本节课我先简要地介绍一下DA转换芯片工作的基本原理,然后实际演示一下DA驱动逻辑电路的建模与仿真,我们还要结合第六讲的单独按键消抖一起编写一个完整的演示逻辑,并下板查看实际效果。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-10 11:35:17 | 显示全部楼层
演示平台为至芯科技开发的ZX_2开发板。
开发板采用的AD转换芯片为TI公司的4路8位数模转换器TLC5620。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-10 11:37:00 | 显示全部楼层
打开《ZX_2.pdf》文件,我们看一下DA部分的电路图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-10 11:38:35 | 显示全部楼层
我们打开至芯科技编写的《基于FPGA的TLC5620驱动设计(DA).pdf》文档。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-10 11:40:41 | 显示全部楼层
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。
 楼主| lcytms 发表于 2017-2-10 11:43:08 | 显示全部楼层
4.实验原理
        TLC5620是一个四通道8位串行D/A转换器,时钟频率最大可以达到1MHz。
        TLC5620传输的一帧数据为11位,高位先传送,格式如表2所列。
        D10、D9位为通道选择位,其对应关系如表3所列;
        D8位为输出电压模式选择,
                若为“0”则输出电压范围为0~Vref;
                若为“1”则输出电压范围为0~2Vref;
                其中Vref为参考电压,我们的开发板提供参考电压值为2.5V;
        D7~D0为数据位。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-10 11:48:45 | 显示全部楼层
本帖最后由 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。

图1  TLC5620访问时序图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-10 11:54:21 | 显示全部楼层
5. 硬件设计
用TLC5620芯片搭建的DA转换电路如下图所示。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-10 13:36:36 | 显示全部楼层
DA芯片的工作原理既然已经清楚,我们下面来进行系统设计。
命名DA驱动逻辑为dac。
架构图如下所示。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-10 13:39:45 | 显示全部楼层
在前级加上单独按键消抖模块key_flag、DAC控制器模块dac_controller后,总体架构图如下。
其中,DAC控制器模块dac_controller产生DAC使能信号req,并根据按键次数输出相应的DAC控制字给DA驱动模块dac。
而DA驱动模块dac在完成每一次的DA转换之后,输出一个表示转换完成的脉冲信号req_done,反馈给DAC控制器模块dac_controller。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-23 11:30 , Processed in 0.064521 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表