【FPGA】高速DA的学习和使用(1)

FPGA 专栏收录该内容
31 篇文章 3 订阅

#来自学渣的问候

这个是一个学完之后的总结

DAC——数模转换器,将数字信号转换成模拟信号(电压、电流)。

模拟信号:信号的频率、幅值、相位随时间连续变化。在一定时间内,任意取值都能得到一个瞬间的数量。
数字信号:信号是离散的,不连续的。信号的整体都用有限的数字位去处理。

数字信号的好处在于它容易被处理,电路的搭建也更加容易,信号抗干扰的能力也更强,比模拟信号更容易加密。
模拟信号最好的地方就是它的信号非常直观、易于实现,但是它容易受到干扰、也容易被窃听。
但是,在生活中,我们还是有很多使用到模拟信号的地方,因此我们需要将数字信号转换为模拟信号(比如耳机),这个时候就需要一个转换器,将数字信号转换为模拟信号。
这个就是DAC,在FPGA中,因为FPGA它的特性,所以DAC的速度比较高,我们一般叫高速DA。
在这里插入图片描述
这里是一个高速ADDA,既有数模转换,也有模数转换,但是今天就讲数模转换。

数模转换器的原理是这样的:数字量是通过代码按位数组合起来表示的,对于有权码,每位代码都有自己的位权,在转换的时候,必须要将代码按位权大小转换成相应的模拟量,然后让模拟量相加,就能得到相应的和数字量对应的模拟量。

在硬件电路上,这个转换是利用权位电阻网络来实现的。
拿黑金这块DA芯片(AD9708来说)
AD9708是亚德诺(ADI)半导体生产的TxDAC系列数模转换器,具有高性能低功耗的特点,转换位数为8位,最大转换速度是每秒125MSPS
在这里插入图片描述
在图中可以看到,AD9708有一根接入的时钟线,和8位的数据线。这个芯片需要FPGA去给一个时钟信号,然后输入8位的数据,芯片内置一个1.2V的参考电压,然后是电流源和锁存器。IOUTA、IOUTB就是模拟的一个差分电流。数模转换之后,整个模块电路还会经过一个低通滤波器、以及幅度调节电路,因为最后我们从输出口检测到的是一个**-5V–+5V**的单端模拟电压值。
在这里插入图片描述
这个时钟给入的信号是50MHz,官方例程给的就是这样。

这是芯片的时序图

在这里插入图片描述
这是一个上升沿将数字信号转换为模拟信号,在下降沿的时候将数据写入进去,这样芯片在上升沿采数据才是一个稳定的时刻。
在这里插入图片描述
从原理图来看的话,除了供电,我们只需要给CLOCK和DATA就可以了。
高速DAC的原理就是这样的。换个看程序。

  • 4
    点赞
  • 0
    评论
  • 12
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

项目背景1.1 AD转换 AD转换就是模数转换。顾名思义,就是把模拟信号转换成数字信号。主要包括积分型、逐次逼近型、并行比较型/串并行型、Σ-Δ调制型、电容阵列逐次比较型及压频变换型。 A/D转换器是用来通过一定电路将模拟量转变为数字量。模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。但在A/D转换前,输入到A/D转换器输入信号必须经各种传感器把各种物理量转换成电压信号。 AD转换技术指标,一般有如下几个: 1. 分辨率(Resolution) 指数字量变化一个最小量时模拟信号变化量,定义为满刻度与2^n比值。分辨率又称精度,通常以数字信号位数来表示。 2. 转换速率(Conversion Rate)是指完成一次从模拟转换到数字AD转换所需时间倒数。积分型AD转换时间是毫秒级属低速AD,逐次比较型AD是微秒级属中速AD,全并行/串并行型AD可达到纳秒级。采样时间则是另外一个概念,是指两次转换间隔。为了保证转换正确完成,采样速率 (Sample Rate)必须小于或等于转换速率。因此有人习惯上将转换速率在数值上等同于采样速率也是可以接受。常用单位是kspsMsps,表 示每秒采样千/百万次kilo / Million Samples per Second。 3. 量化误差 (Quantizing Error) 由于AD有限分辨率而引起误差,即有限分辨率AD阶梯状转移特性曲线与无限分辨率AD理想AD转移特 性曲线直线之间最大偏差。通常是1个或半个最小数字量模拟变化量,表示为1LSB、1/2LSB。 4. 偏移误差(Offset Error) 输入信号为零时输出信号不为零值,可外接电位器调至最小。 5. 满刻度误差(Full Scale Error) 满度输出时对应输入信号与理想输入信号值之差。 6. 线性度(Linearity) 实际转换器转移函数与理想直线最大偏移,不包括以上三种误差。 其他指标还有:绝对精度(Absolute Accuracy) ,相对精度(Relative Accuracy),微分非线性,单调性无错码,总谐波失真Total Harmonic Distotortion缩写THD积分非线性。
基于FPGA数据采集系统。 主要实现功能流程为:首先通过串口向FPGA发送控制信号,控制DAC芯片tlv5618进行DA装换,转换数据存在ROM中,转换开始时读取ROM中数据进行读取转换。其次用按键控制adc128s052进行模数转换100次,模数转换数据存储到FIFO中,再从FIFO中读取数据通过串口输出显示在pc上。 该系统主要包括9个模块:串口接收模块、按键消抖模块、按键控制模块、ROM模块、DAC驱动模块、ADC驱动模块、同步FIFO模块、FIFO控制模块、串口发送模块。各个模块作用如下: 1串口接收模块UART_Byte_Rx.v:完成串口数据接收,将串行数据转换成并行数据输出。 2按键消抖模块key_filter.v:进行按键消抖,可输出一个脉冲按键按下标志按键按下时间标志。 3按键控制模块key_ctrl.v:当在DA一直输出模拟信号时,按下按键控制ADC转换100次。 4ROM模块single_port_rom.v:存储DA转换数据,可存放正弦波形数据。 5DAC驱动模块dac_driver.v:数模转换驱动模块,与外部DAC芯片相连,提供DAC芯片时钟数据信号等。 6ADC驱动模块adc_driver.v:模数转换驱动模块,与外部ADC芯片相连,提供ADC芯片时钟控制信号等。 7同步FIFO模块sync_fifo.v:存放ADC转换后数据。 8FIFO控制模块fifo_ctrl.v:当FIFO中有数据时,将FIFO中数据转换成可以UART串口发送数据。 9串口发送模块Uart_Byte_Tx.v:经过FIFO控制模块转换数据通过串口发送模块发送到串口,显示在pc端。 10DAC控制模块dac_ctrl.v:当接收串口指定指令时,开始将ROM正弦数据进行DAC转换。
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值