没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
深入学习深入学习FPGA之之DAC驱动驱动
本实验中,我们使用FPGA来驱动了一片DAC芯片TLC5620。
该芯片的特性如下所示:
TLC5620特性:
4路8位电压输出;
单电源5V供电;
串行接口;
参考电压输入高阻;
可编程的1次或2次输出范围;
同时更新的能力;
内部自带上电复位功能;
低功耗;
半缓冲输出。
小梅哥设计的该芯片的驱动模块的接口如下所示:
各个端口定义如下:
以下是代码片段:
input Clk;
input Rst_n;
input Do_DA; /*使能单次转换*/
input [10:0]Data;/*{Addr1,Addr0,Range,Data_bit[7:0]}*/
output regDAC_Dout; /*DAC数据线*/
output reg DAC_Clk; /*DAC时钟线,最高速度1M*/
output reg DAC_LDAC; /**/
output reg DAC_LOAD; /**/
output reg DA_Done; /*单次转换完成标志信号*/
该芯片提供了类似于SPI的数字接口,因此,我们只需要使用该接口与芯片进行通信,再配合LOAD和LDAC两个控制线,即
可实现对该DAC芯片的控制。TLC5620一次转换的操作时序如下:
图1 TLC5620单次转换时序图
TLC5620每次写入的数据为11位,其中前两位为DAC选择位A1、A0,通过不同的组合可以选择不同通道的DAC,具体分配
为:
表1 DAC通道选择位与对应通道关系
第三位是电压输出增益位,0代表不变,1代表两倍,当设定参考电压为2.5V时,取这一位为1就可以得到最高5V的输出电压。
后面8位是数据位,其中第四位是数据的最高位。对于TLC5620的输出电压公式是:
VO=VREF ×CODE/256×(1+RNG)
VREF是参考电压,CODE是待转换的8位二进制代码,RNG是增益倍数。
写入数据时,首先LOAD和LDAC写高电平,这样在CLK的每个下降沿写入的每位数据被锁存到DATA端,当11位数据传送完
毕后,拉低LOAD,芯片根据前两位数据,判断是哪一路DAC通道,然后将8位数据移入相应的通道,进行DA转换,这时拉低
LDAC,再拉高LDAC,就可以再下次转化之前,保持此次的模拟输出。
TLC5620正常工作时的具体电压和时间参数如下表所示,通过该表,可知该芯片串行数字接口的时钟信号(CLK)最高为
1MHz。该参数将作为我们采用FPGA产生TLC5620数字接口时钟的依据。同时,还有输入数据建立时间tsu(data-clk)为
50ns,即,FPGA数据送出,到能够被TLC5620正常读取,至少需要50ns,因此FPGA单位数据输出保持时间不得少于
50ns。tv(data-clk)为时钟下降沿到来后多久时间数据线上的数据才能被芯片内部采集,该时间确定了,时钟下降沿出现多久
后,数据线上的数据可以被更新。tsu(LOAD-LDAC)为LOAD的上升沿到LDAC下降沿的建立时间,这里最小为0ns,因此忽
略,即两者同时发生即可。tw(LDAC)为LDAC低电平所需的最短时间,为250ns。
表2 TLC5620关键参数
通过对TLC5620一次完整转换的时序进行分析,列出以下序列机对应的序列点:该序列机总共包含26个点,其中,当
Cnt1=0(ST0)时,为空闲态,ST1—ST22为数据发送状态,ST23时拉低LOAD,即将数据加载入对应通道的DAC中,ST24时
释放LOAD,同时拉低LDAC,以产生LDAC的下降沿,将对应通道的模拟输出保持住。ST25拉高LDAC,完成一次转换。
剩余8页未读,继续阅读
资源评论
weixin_38638596
- 粉丝: 3
- 资源: 984
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功