基于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. 成熟的男人思考的东西
  2. 官方宣布:谷歌开发者中国网站正式发布!
  3. Error:java: 无效的目标发行版: 11解决方案
  4. 《101 Windows Phone 7 Apps》读书笔记-BABY MILESTONES
  5. 新的log4j2.xml
  6. STM32F103单片机读取芯片自身ID
  7. mysql主从复制的流程_MYSQL主从复制部署流程
  8. Spring boot 开发组件
  9. Pr 入门教程,如何在节目监视器中修剪剪辑?
  10. CF55D-Beautiful numbers【数位dp】
  11. 两场直播丨易鲸捷分布式数据库的并发控制 、PostgreSQL日常工作分享
  12. 一个废物大学生对于视频爬取的小小的总结
  13. php 字符串编码方式转换,php字符串编码转换的常用几种方法_PHP教程
  14. 正确关闭迅雷右侧浏览器的方法
  15. 微软 android启动器,微软启动器Mirosoft Launcher
  16. qt creator在高分辨率笔记本上控件运行显示不全的问题解决方法
  17. Sonya and Exhibition 【模拟】
  18. 假如我年少有为不自卑
  19. unicode 和 GB2312 编码对应表
  20. 陆奇终于自立门户!YC撤离中国,陆奇成立新基金接盘

热门文章

  1. 电脑it族宝典常用电脑的从怎样保护自己的眼睛
  2. html为知笔记模板,为知笔记,模板制作.doc
  3. 【coq】函数语言设计 笔记 07 - indProp
  4. 云服务器需要芯片吗,什么时候手机不再需要芯片——计算云端化是不可逆转的未来...
  5. 今天终于知道了!阿里巴巴 P8、P9 及以上到底是什么水平?
  6. Vue——构造内嵌登录二维码
  7. 疫情期间,在家办公,这几款高效远程办公协作工具解决燃眉之急
  8. 从身边的移动支付说起
  9. Agile Scrum WaterFall通俗易懂的全过程整理
  10. 1106 Lowest Price in Supply Chain (25分)