9.8日fpga之DA/AD的学习

这篇具有很好参考价值的文章主要介绍了9.8日fpga之DA/AD的学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 一、DAC

权电阻DA

        

9.8日fpga之DA/AD的学习

9.8日fpga之DA/AD的学习

 具体参考数字电路。我们输入数字量,这里以4位为例,比如D3-D0=1001,对应得到一个

,通过Rf,得到输出电压U0。

二、ADC

        主要就是采样定理和编码。取样、保持、量化、编码。

9.8日fpga之DA/AD的学习

 9.8日fpga之DA/AD的学习

 量化后就可以进行编码然后输出数字信号了。比如输入模拟量是t1时刻的值,对应101.这个是一个8位精度的。当然一般我们还会带一个符号位。0正1负。

本实验我们使用的 AD-DA 模块是正点原子推出的一款高速模数-数模转换模块(ATK_HS_AD_DA),高速 AD 转换芯片和高速 DA 转换芯片都是由 ADI 公司生产的,分别是 AD9280 和 AD9708。学习ADDA芯片我们只需要知道它有哪些引脚怎么用就可以了。

9.8日fpga之DA/AD的学习

三、实验任务

       实验任务是使用领航者 ZYNQ 开发板及高速 AD-DA 扩展模块(ATK_HS_AD_DA 模块)实现数模 及模数的转换。首先 ZYNQ PL 产生正弦波变化的数字信号,经过 DA 芯片后转换成模拟信号,将 DA 的模 拟电压输出端连接至 AD 的模拟电压输入端,AD 芯片将模拟信号转换成数字信号,然后通过 ILA 观察数字 信号的波形是否按照正弦波波形变化。系统框图如下。

        9.8日fpga之DA/AD的学习

原理图如下:由ROM发送数字信号给发送模块,由DA转换芯片转换成模拟量,模拟量再由AD转换成数字量由接受模块接受带FPGA中,用ILA核去抓取信号。9.8日fpga之DA/AD的学习

 接下来介绍FPGA内部模块的编写。

        首先是send模块。这个模块就是发送地址给ROM然后将ROM读出数据再发送给DA模块。这里要注意的是,send模块还要给DA芯片提供一个时钟信号。这个时钟有这样的特点。

//数据rd_data是在clk的上升沿更新的,所以DA芯片在clk的下降沿锁存数据是稳定的时刻
//而DA实际上在da_clk的上升沿锁存数据,所以时钟取反,这样clk的下降沿相当于da_clk的上升沿

同时我们还要对读数据频率进行调节。有一下设计我们计数值越大,读数据速度越慢,但是就越稳定。找到稳定且高速的值。我们这里填5,就是,就是5*20=100ns一个数据。

module da_wave_send(
    input                 clk    ,  //时钟
    input                 rst_n  ,  //复位信号,低电平有效
    
    input        [7:0]    rd_data,  //ROM读出的数据
    output  reg  [7:0]    rd_addr,  //读ROM地址
    //DA芯片接口
    output                da_clk ,  //DA(AD9708)驱动时钟,最大支持125Mhz时钟
    output       [7:0]    da_data   //输出给DA的数据  
    );

//parameter
//频率调节控制
parameter  FREQ_ADJ = 8'd5;  //频率调节,FREQ_ADJ的越大,最终输出的频率越低,范围0~255

//reg define
reg    [7:0]    freq_cnt  ;  //频率调节计数器

//*****************************************************
//**                    main code
//*****************************************************

//数据rd_data是在clk的上升沿更新的,所以DA芯片在clk的下降沿锁存数据是稳定的时刻
//而DA实际上在da_clk的上升沿锁存数据,所以时钟取反,这样clk的下降沿相当于da_clk的上升沿
assign  da_clk = ~clk;       
assign  da_data = rd_data;   //将读到的ROM数据赋值给DA数据端口

//频率调节计数器
always @(posedge clk or negedge rst_n) begin
    if(rst_n == 1'b0)
        freq_cnt <= 8'd0;
    else if(freq_cnt == FREQ_ADJ)    
        freq_cnt <= 8'd0;
    else         
        freq_cnt <= freq_cnt + 8'd1;
end

//读ROM地址
always @(posedge clk or negedge rst_n) begin
    if(rst_n == 1'b0)
        rd_addr <= 8'd0;
    else begin
        if(freq_cnt == FREQ_ADJ) begin
            rd_addr <= rd_addr + 8'd1;
        end    
    end            
end

endmodule

接下来介绍recv模块。数字信号经过,DAC已经转换成模拟信号了,这里如果是再项目中,已经可以对一些东西进行处理比如对什么施加转换好的模拟电压。得到的值再由DAC转换成数字信号再进行分析。

这个实验只是为了使用ADDA,我们将模拟信号直接接到AD接口,进行转换得到数字信号由RECV接收。所以我们这个模块只需要输出一个驱动时钟就可以。我们本次实验的芯片的最大时钟频率是32MHZ我们对50mhz2分频。

module ad_wave_rec(
    input                 clk         ,  //时钟
    input                 rst_n       ,  //复位信号,低电平有效
    
    input         [7:0]   ad_data     ,  //AD输入数据
    //模拟输入电压超出量程标志(本次试验未用到)
    input                 ad_otr      ,  //0:在量程范围 1:超出量程
    output   reg          ad_clk         //AD(TLC5510)驱动时钟,最大支持20Mhz时钟
    );

//*****************************************************
//**                    main code 
//*****************************************************

//时钟分频(2分频,时钟频率为25Mhz),产生AD时钟
always @(posedge clk or negedge rst_n) begin
    if(rst_n == 1'b0)
        ad_clk <= 1'b0;
    else 
        ad_clk <= ~ad_clk; 
end    

endmodule

值得注意的是两个模块对DA  DA芯片提供的时钟不一样。

之后代AD转换后输入到FPGA中我们用ILA核去观察波形就可以了。还有AD模块还会输出一个ad_otr,这个如果是1,则表示我们超出量程了。当输入的模拟电压超出量程时,会拉高 OTR(out-of-range) 信号.

补充:(17条消息) FPGA学习专题-ADC的使用_南山维拉的博客-CSDN博客_fpga采集adc数据后如何处理

在一个系统中ADC和DAC的参考电压应该一致。

设计时,经过FPGA内部的时钟,可能会导致抖动好相位噪声不好。但是在资源有限的情况下可以用PLL生成时钟,不做太多处理。

ADC的超量程标志位非常重要,一旦超量程将对采样造成严重的影响。一旦有溢出一定要先处理输入信号。

对于无符号的DAC,有符号补码需要先把高位取反再送给DAC

有符号数转换为无符号数时,负数转换为大的正数,相当于在原值上加上2的n次方,而正数保持不变。

 文章来源地址https://www.toymoban.com/news/detail-428006.html

到了这里,关于9.8日fpga之DA/AD的学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单片机——C51实验含Proteus仿真(AD转换器(数字电压表),DA转换器(波形发生器))

    分为两部分:AD转换器实现数字电压表,DA转换器实现波形发生器(在仿真部分详细说明) 所用到的原理图:  AD转换器实现数字电压表部分         需要打开main函数中LCD_init(),ADC(),display()三个注释其中电压的输出显示用到了LCD1602关于这部分详情见(96条消息) 单片机——

    2024年02月08日
    浏览(51)
  • 单片机学习笔记---AD/DA工作原理(含运算放大器的工作原理)

    目录 AD/DA介绍 硬件电路模型 硬件电路 运算放大器 DA原理 T型电阻网络DA转换器 PWM型DA转换器 AD原理 逐次逼近型AD转换器 AD/DA性能指标 XPT2046 XPT2046时序 AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号。有时候我们也把AD叫做ADC(C是转换器conv

    2024年02月22日
    浏览(47)
  • 【电路原理学习笔记】第2章:电压、电流和电阻:2.6 电路

    2.6.1 电流的方向 电流方向有两种说法,一种按电子流动方向,另一种是传统的认为从正极流出到负极,这本教材采用传统电流方法。(事传统派,维新派输了,1!5!) 2.6.2 基本电路 一般说来, 电路 是由电压源、负载,以及电压源和负载之间的电流路径组成的。 电路原理

    2024年02月12日
    浏览(43)
  • 【电路原理学习笔记】第2章:电压、电流和电阻:2.1 原子结构

    元素 :不能用化学方法分解成更简单形式的物质称为元素。 原子 :原子是体现元素特性的最小粒子。 原子核 :原子核由质子和中子组成, 质子 带有正电荷, 中子 呈中性。 电子 带有负电荷,围绕着原子核运动。质子上的正电荷和电子上的负电荷是可以彼此孤立存在的最

    2024年02月12日
    浏览(44)
  • 基于dsp+fpga+AD+ENDAC的半导体运动台高速数据采集电路仿真设计(四)

    整个调试验证与仿真分析分三个步骤:第一步是进行 PCB 检查及电气特性测试,主 要用来验证硬件设计是否正常工作;第二步进行各子模块功能测试,包括高速光纤串行 通信的稳定性与可靠性测试, A/D 及 D/A 转换特性测试, EnDat 串行通信相关时序测试 与验证等,主要用来验

    2024年02月01日
    浏览(51)
  • 51单片机(十六)AD/DA

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月05日
    浏览(49)
  • 【【51单片机AD/DA的分析】】

    模数转换 与 数模转换 运算放大器 DA的转换就是利用运算放大器实现的 输出电压v0=-(D7~D0)/256 x (VrefxRfb)/R D7~D0 就是我们控制的按键看输入多少 然后再划分256份 Vref是我们设置的一个基准电压 PWM 这种类型的方波 完全可以看成是一个交流和直流叠加而成的 回忆一下数电的东西

    2024年02月15日
    浏览(45)
  • AD(DA)芯片PCF8591使用介绍

    AD (DA)芯片PCF8591简介       PCF8591是具有I2C 总线接口的8 位A/D 及D/A 转换器。PCF8591有4个模拟输入、1个模拟输出和1个I²C 总线接口 。PCF8591有3个地址 引脚 A0, A1和A2,用于硬件地址设定,这允许在一条I2C总线上接入8个PCF8591器件。       PCF8591 实物如下图所示: AD (DA)芯片P

    2024年02月01日
    浏览(37)
  • 【单片机】15-AD和DA转换

    1.什么是AD转换? A(A,analog,模拟的,D,digital,数字的) 现实世界是模拟的,连续分布的,无法被分成有限份; 计算机世界是数字的,离散分布的,可以被分成有限份的 AD转换就是把一个物理量从模拟的转换成数字的。 2.AD转换的意义 想要计算机来实现现实世界 3.什么情

    2024年02月07日
    浏览(52)
  • FPGA 与 数字电路的关系 - 这篇文章 将 持续 更新 :)

    先说几个逻辑:(强调一下在这篇文章 输入路数 只有 1个或2个,输出只有1个, N个输入M个输出以后再说 ) 看下面的几个图: 图一( 忘了 这是 啥门,不是门吧 :)也就是信号增强器吧 ) 图二(非门) 图三(2入一出 与门) 图四 (2入 1出 或门) 上面的几个图中 0 低电

    2024年03月15日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包