当前位置: 首页 > news >正文

基于AD9767高速DAC的DDS信号发生器

DDS信号发生器原理 

DDS控制信号发生原理图

        DDS主要由相位累加器、相位调制器、波形数据表以及D/A转换器构成。其中相位累加器由N位加法器与N位寄存器构成。每个时钟周期的时钟上升沿,加法器就将频率控制字与累加寄存器输出的相位数据相加,相加的结果又反馈至累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。即在每一个时钟脉冲输入时,相位累加器便把频率控制字累加一次。 

        相位累加器输出的数据就是合成信号的相位。相位累加器的溢出频率,就是DDS输出的信号频率,相位累加器输出的数据,作为波形存储器的相位采样地址,这样就可以把存储在波形存储器里的波形采样值经查表找出,完成相位到幅度的转换。 

        波形存储器的输出数据送到 D/A 转换器,由 D/A 转换器将数字信号转换成模拟信号输出。 

DDS信号流程示意图
AD9767驱动模块端口

AD9767模块介绍

        有两个通道,每个通道的数据分辨率为14位,转换速率最高可达到125Mbps,输出电压范围为+/-5V。 

        ACM9767模块是一款高性能高速双通道 DAC 模块。 模块具有单电源 5V 供电输入,双通道数字转模拟信号输出,每个通道数据分辨率为 14 位, 输出电压范围为+-5V, 且转换速率高达125Msps,非常适合诸如信号发生器、数字调制通信系统的开发等应用。

ACM9767模块图

ACM9767模块插接管脚信号含义

设计要求

  1. 做一个双通道的信号发生器
  2. 能够简单的调整每个通道的频率输出
  3. 能够提哦啊正每个通道的输出相位
  4. 能够控制输出的波形形式(sine,方波,三角波等)        

设计代码

DDS 模块

module DDS_Module(Clk,Reset_n,Mode_Sel,Fword,Pword,Data
);input Clk;input Reset_n;input [1:0]Mode_Sel;    //模式切换input [31:0]Fword;input [11:0]Pword;output reg[13:0]Data;//频率控制字同步寄存器reg [31:0]Fword_r;always@(posedge Clk)Fword_r <= Fword;//相位控制字同步寄存器reg [11:0]Pword_r;always@(posedge Clk)Pword_r <= Pword; //相位累加器    reg [31:0]Freq_ACC;always@(posedge Clk or negedge Reset_n)if(!Reset_n)Freq_ACC <= 0;elseFreq_ACC <= Fword_r + Freq_ACC;//波形数据表地址wire [11:0]Rom_Addr;      assign Rom_Addr = Freq_ACC[31:20] + Pword_r;wire [13:0]Data_sine,Data_square,Data_triangular;    
//调用底层模块ROM表(由ip核生成的三种波形:sine,方波,三角波)rom_sine rom_sine(.clka(Clk),.addra(Rom_Addr),.douta(Data_sine));rom_square rom_square(.clka(Clk),.addra(Rom_Addr),.douta(Data_square));

http://www.mrgr.cn/news/98589.html

相关文章:

  • C++学习之工厂模式-套接字通信
  • 【本地图床搭建】宝塔+Docker+MinIO+PicGo+cpolar:打造本地化“黑科技”图床方案
  • IDEA202403 常用设置【持续更新】
  • LWIP学习笔记
  • Android studio打包uniapp插件
  • 【NLP 59、大模型应用 —— 字节对编码 bpe 算法】
  • 使用 Vitis Model Composer 生成 FPGA IP 核
  • 【QT】 QT定时器的使用
  • 常见的 14 个 HTTP 状态码详解
  • 如何在 Windows 安卓子系统 (WSA) 上安装小红书应用
  • rce漏洞学习
  • Ubuntu2404装机指南
  • 【Docker-13】Docker Container容器
  • 虚幻基础:碰撞帧运算
  • UWB定位技术面临的主要挑战
  • go中我遇到的问题总结
  • Redis 分布式锁+秒杀异步优化
  • Git 学习笔记
  • 鸿蒙系统开发状态更新字段区别对比
  • Hyperledger Fabric(JAVA)快速工程化部署