基于TLC5615芯片的DDS信号发生器(FPGA)

1. 前言
         前面在我的博客中已经写过关于TLC5615的FPGA程序驱动以及DDS的原理和代码实现,这里便不多做介绍,这一次主要是把这两部分合并起来利用DA芯片实现正弦波输出,并且用示波器观察信号的频率。

2. 模块示意图

         TLC5615是一款SPI接口的10位高精度DA转换芯片,因此将DDS模块整个封装成SPI接口。ROM根据FPGA提供的地址,将查找表中的数据输出到CTRL,由DIN输入到DA芯片TLC5615中。在Quartus中生成的RTL视图如下所示。

3. 代码部分
         前面的博客中已经由DDS模块和TLC5615驱动模块的代码,这里就不在贴上,有需要的朋友可以查看我前面的博客中的代码。这里只给出例化这两个模块的顶层文件代码,如下。

module DDS_TLC5615(input sys_clk,input rst,output  cs,output  tlc5615_clk,output  tlc5615_data);wire [9:0] DA;TLC5615_CTRL TLC5615_CTRL(.sys_clk(sys_clk),.rst(rst),.conv_en(1'b1),   .conv_data({DA,2'b00}), .cs(cs),.conv_end(), .tlc5615_clk(tlc5615_clk),.tlc5615_data(tlc5615_data)
);DDS u_DDS(.clk  (sys_clk),.rst_n(rst),.fword(85910),.pword(256),.DA   (DA)
);endmodule

4. ROM初始化mif文件生成
         mif文件的生成有多种方式,可以用matlab方法生成,也可以用人家做好的波形数据生成器一键自动生成,只是没有matlab方式可以有多种设置和选择,包括添加直流分量等等。matlab代码如下所示。

depth  =1024;%采样深度,即采样个数
widths =10 ;%采样数据位宽
N=0:depth-1  ;%采样时刻
s= sin(2*pi*N/1024);%信号生成fidc = fopen('D:\Quartus\sinx.mif','wt')      %创建mif文件
%写入mif文件的开头
fprintf(fidc,'depth=%d\n',depth);
fprintf(fidc,'width=%d\n',widths);
fprintf(fidc,'address_radix=UNS;\n');%地址格式,UNS表示保持现有格式
fprintf(fidc,'data_radix=UNS;\n');%数据格式
fprintf(fidc,'content begin\n');
%采样数据的输出
for(x =1:depth)fprintf(fidc,'%d:%d;\n',x-1,round(31*sin(2*pi*(x-1)/32)+32));
end;%round(A)将A中的元素按最近的整数取整,即四舍五入;
fprintf(fidc,'end;');
fclose(fidc);
L=31*sin(2*pi*(N-1)/32)+32;
plot(L);

数据深度为1024,位宽为10位(跟DA芯片保持一致);如果要修改,只需要根据需求修改前面四行代码即可。注意:应用于ROM时,sinx.mif文件里的第一和第二行后面要加“;” 分号。
         在这里我采用的是用波形数据生成器,如下图所示。

         生成的数据部分如下所示。

5.验证总结
         连接好TLC5615模块各个引脚,将程序全编译后把sof文件下载到开发板上,然后将输出信号接入示波器观察,得到下图。

         前面我设置的频率控制字为85910,系统时钟为50M,根据计算得到输出信号频率f=85910*50_000_000/2^32=1000Hz=1KHz,我们可以看到示波器测量显示的频率为1KHz,由此证明实验验证成功。

基于TLC5615芯片的DDS信号发生器(FPGA)相关推荐

  1. 基于STC89C52RC芯片 高频DDS信号发生器AD9851信号源方波正弦波系统设计

    [01]设计大致思路 一开始是使用按键进行频率输出数值的增加或者减少,后改进成使用EC11调节输出数值,使数值的输出更加顺滑流畅. [02]参考资料 链接:https://pan.baidu.com/ ...

  2. dds信号发生器 fpga实现

    目录 原理 实现 原理 dds信号发生器:以rom为核心,外围控制输出地址,达到输出不同频率和相位或者幅度的结构.(这里不考虑ad转换和滤波) 这里以正弦信号为例,用专用软件或者matlab生成一组正 ...

  3. STM32单片机可变频率幅度DDS信号发生器正弦波三角波方波AD9833

    实践制作DIY- GC0094-DDS信号发生器 一.功能说明: 基于STM32单片机设计-DDS信号发生器 功能介绍: 硬件组成:STM32F103C系列最小系统板 +LCD1602显示器+AD98 ...

  4. 基于FPGA的简易DDS信号发生器的设计(一)

    写这篇文章的本意不是为了探讨AD9767怎么使用,因为9767的控制实在是太简单了,准备好数据直接输出即可,和网上大多数的并行DA输出基本上一模一样,更麻烦的反而是硬件方面.发文的原因是最近一位很细心 ...

  5. CASE_05 基于FPGA的DDS信号发生器

             该系类博客序言和资源简介可浏览该博客:PREFACE FPGA经典案例序言 快速了解该系列博客的内容与可用 资源. 目录 1 简介 2 DDS原理与方案 2.1 方案一:基于CORD ...

  6. 基于FPGA的简易DDS信号发生器的设计与验证

    基于FPGA的简易DDS信号发生器的设计与验证 一,理论介绍 补充:举例理解 二,代码实现 1,实验目标 2,MATLAB代码 3,verilog代码及实现思路 一,理论介绍 DDS 是直接数字式频率 ...

  7. 基于FPGA的DDS信号发生器

    基于FPGA的DDS信号发生器     两个礼拜前就像写这个文档了,但是一直鸽到现在,主要是人摆了.还有个技术上的原因是,我想用串口屏显示波形,在串口调试助手上返回的数据是对的,但是发到串口屏上啥反应 ...

  8. 【FPGA实例】基于FPGA的DDS信号发生器设计

    原文链接来源:www.runoob.com 基于FPGA的DDS信号发生器设计 DDS 原理 ------DDS(直接频率合成) 技术是根据奈奎斯特抽样定理及数字处理技术,把一系列的模拟信号进行不失真 ...

  9. 基于 FPGA 的便携式 DDS 信号发生器与示波器

    基于 FPGA 的便携式 DDS 信号发生器与示波器 项目来源:2019年第三届全国大学生FPGA创新设计竞赛 一.设计概述 1.1 设计目的 利用赛灵思公司 A7 系列板卡 EG01.AD9226 ...

  10. 【小梅哥FPGA进阶教程】第十一章 四通道幅频相可调DDS信号发生器

    十一.四通道幅频相可调DDS信号发生器 本文由山东大学研友袁卓贡献,特此感谢 实验目标 实现多通道可调信号发生器 实验平台 芯航线FPGA核心板.ADDA模块 实验现象 实现基于FPGA的多通道可调信 ...

最新文章

  1. ajax content download,关于ajax的content-download时间过慢问题的解决方案与思考
  2. 公有云和私有云,哪种是大势所趋?
  3. python3 __import__ 简介
  4. 【视频块文件系统不得不说的故事】VBFS文件系统简介
  5. 微信支付PKIX path building failed
  6. 代码测试:简单用户注册信息验证
  7. 如何去除Android应用中的广告
  8. 物联网大变局:LoRa 正式获批!
  9. C++箴言:多态基类中将析构函数声明为虚拟zz
  10. 一些经久不衰的linux 视频教程列表
  11. vb2008如何连接mysql_VB如何连接ACCESS数据库详解
  12. Java面向对象三大特性
  13. sqlite3 查询表结构信息
  14. 有没有可以干一辈子的工作?
  15. 人类一败涂地做图教程_人类一败涂地皮肤怎么弄 人类一败涂地皮肤制作教程...
  16. CANoe 入门 _CAPL编程
  17. 湘湘学习之旅 越努力 越幸运
  18. Real-SR算法,实现真实图像超高分辨率处理
  19. 第一人称控制器-自己写哒=3= 噗噗~~
  20. 采集时如何有效地防止被网站屏蔽IP

热门文章

  1. vue项目打包部署到与后台同一服务器上
  2. 软件验收测试合格的标准
  3. 台式计算机没有声音怎么办,台式机没有声音怎么办_台式机声音修复方法-太平洋IT百科...
  4. cp: omitting directory
  5. thinkphp 运行机制和优缺点
  6. maxima得到简化行阶梯矩阵(RREF)
  7. IJCAI‘22 推荐系统论文梳理
  8. 名字里有计算机里没有的字体大小,公安13000字的庞大字库打不出这些字 五市民名字让电脑“犯晕”...
  9. matlab神经网络 股票预测模型,如何用MATLAB的BP神经网络做股票预测
  10. StrandHogg漏洞修复