FPGA驱动DAC芯片输出(以TLV5618为例)

本文介绍了如何使用FPGA控制DAC芯片TLV5618输出指定电压,详细阐述了硬件设计,包括芯片功能、时序要求、输出电压计算和时钟频率计算。在软件部分,提供了FPGA代码实现,并进行了仿真验证。
摘要由CSDN通过智能技术生成

一、任务

使用FPGA芯片控制DAC采集芯片,输出指定的电压值。

二、硬件部分

为了将FPGA输出的数字电压转换成模拟电压,我们使用到了数模转换芯片(简称DAC)TLV5618。进行设计前,我们先到网上检索并查看了该芯片的数据手册。

1.芯片功能图

在这里插入图片描述

2.端口功能表

在这里插入图片描述
从功能图和功能表中我们可以看出,TLV5618有四个输入端口:
片选信号CS、数据串行输入端口DIN、模拟参考电压REF、数字时钟SCLK
两个输出端分别为OUTAOUTB,均为对应的模拟电压输出端。

3.时序图

在这里插入图片描述
时序图中我们可以看到使用该芯片时要注意这几个参数:
tw(L):低电平最小宽度,25ns。
tw(H):高电平最小宽度,25ns。
tsu(D):数据最短建立时间。
th(D):数据最短保持时间。
tsu(CS-CK):片选信号下降沿到第一个时钟下降沿最短时间。
th(CSH):片选信号最短拉高时间。

在我们写FPGA代码时,需要根据严格按照时序图来。

4.输出电压计算

在这里插入图片描述
由手册给出的公式知,输出电压与输入的编码值成正比,同时还要乘以一个系数REF,这个系数从芯片的REF引脚输入。我们打开并查看开发板的原理图:在这里插入图片描述
从图中知,我们用到了芯片LM4040-2.0给DAC供电,这个芯片工作时输出电压为4.028V(即精度为12位),故参数REF为4.028。

5.时钟频率与刷新率计算

在这里插入图片描述
我们查阅手册后知道,使用该芯片时,时钟最大频率为20MHz,刷新率为时钟频率的1/16。而开发板提供的原始时钟为50MHz,因此可以采用四分频后得到12.5MHz的时钟频率。

三、设计方案

在这里插入图片描述
我们考虑用FPGA设计一个DAC驱动,通过CS、sclk、din三根信号线与DAC芯片连接,设计输入端口Data[15:0]。同时为了便于与其他模块共同协作,我们加上了使能端口en转换完成标志位Conv_done,这是FPGA设计时必须考虑的一点,对于复杂的驱动模块,这两个信号是不可或缺的

四、软件部分

这里直接上代码部分,注释里面有解读。

// 驱动部分
module tlv5618(
	Clk,
	Rst_n,
	
	DAC_DATA,	//并行数据输入端
	Start,		//开始标志位
	Set_Done,	//完成标志位
	
	DAC_CS_N,	//片选
	DAC_DIN,	//串行数据送给ADC芯片
	DAC_SCLK,	//工作时钟SCLK
	DAC_State	//工作状态
);
	
	parameter fCLK = 50;		//时钟参数
	parameter DIV_PARAM = 2;	//分频参数

	input Clk;
	input Rst_n;
	input [15:0] DAC_DATA;
	input Start;
	output reg Set_Done;
	
	output reg DAC_CS_N;
	output reg DAC_DIN;
	output reg DAC_SCLK;
	output DAC_State;
	
	assign DAC_State = DAC_CS_N;	//工作状态标志与片选信号相同
	
	reg [15:0] r_DAC_DATA;
	
	reg [3:0] DIV_CNT;		//分频计数器
	reg SCLK2X;				//2倍SCLK的采样时钟
	
	reg [5:0] SCLK_GEN_CNT;	//SCLK生成暨序列机计数器
	
	reg en;					//转换使能信号
	
	wire trans_done; 		//转换序列完成标志信号
	
	always@(posedge Clk or negedge Rst_n)
	if(!Rst_n)
		en 
  • 23
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值