基于DDS的多波形程控信号发生器

**一.**基本要求如下:
一.任务
设计制作一个程控信号发生器,能产生幅度和频率可变的正弦波、方波、三角波和自定义波形。示意图如下:
图一:整体框图

二.基本要求
(1)具有产生正弦波、方波、三角波信号的功能;
(2)可通过键盘操作输出频率范围为20Hz~100KHz的波形;分三波段调节,分别为:20Hz~1KHz步进间隔10Hz,1KHz~10KHz步进间隔50Hz,10KHz~100KHz步进间隔100Hz;
(3)输出波形幅度为4V;
(4)能显示信号的周期、P-P值等信息;
(5)波形无明显失真;
三.发挥部分
(1)输出波形的频率范围为20Hz~1MHz;
(2)输出波形的P-P值为0—4V可调,步进0.1V,可以通过键盘直接输入频率值;
(3)具有掉电存储功能,可以储存用户设置;
(4)可以用键盘或扩展PC接口实现用户自定义波形输出;
二,
第一部分确定方案:1,采用使用stm32单片机内置串行DAC实现1M的输出,发现stm32的频率很难上去,三角波和方波以及锯齿波频率到400kHz使严重失真,所以我们换方案。----扎心了!!!
2.采用DDS方法实现,使用FPGA作为信号发生部分,stm32作为控制和测量部分,采用并行的DAC实现,并行DAC900产生的波形可以轻松松上1M理论来说可以上到15MHz关键是要有一个好的滤波器。
三,
我们分模块实现其功能:

2019年1月23日

首先我们现在FPGA 上对软件进行调试,基本没什么问题,实现了波形的切换和频率的步进功能

2019年1月24日

第一块DAC900板子新鲜出炉,刚开始遇到一个小问题,就是出来的波很难看即使是频率很低的时候,后来发现是DAC数字电源端用FPHGA供电时,文波很大,后来用基准源供电,纹波明显减小,波形变得好看。波形到4MHz时三角波和方波以及锯齿波失真,我们使用的时DAC900内置的1.24v基准源,对波形的幅值不好改变,所以我们决定再外接一个DACTLV5636,通过stm32实现对TLV5636的控制实现可控输出。
不过我们遇到了玄学问题(哭笑.jpg)不多说,上图:
图二:DAC原理图
问题是,当我一上电TLV5636的输出脚和地就短路,相当于TLV5636没有输出电压
刚开始我以为是TLV5636芯片烧坏了,于是将TLV5636单独拿出来测试发现没有坏,
然后我将TLV5636从板子上卸下来,发现两条路没有短,但是芯片一上电就短路,
于是我们又怀疑是DAC900坏了,我们DAC900INT/EXT引脚拉低,使用其内部基准源发现其输出电压正常,
又怀疑是其内部电压拉高较慢导致导致其输出电压始终处于低电压,我们先将INT/EXT单独拉高,再接给DAC商店上电,发现问题依旧存在
然后我们怀疑是电流倒灌导致电压减小,于是我们在输出路上串联一个1M欧的电阻,发现电阻之后的电路没有短路,而之前的短路,相当于电阻将电路分为两个部分,一部分短路,另一部分没有短路,真的玄学!但是我相信我们一定能找到问题所在!

2019年1月25日

实在没辙,于是我决定将DAC900换一个但是由于手头只剩下一块DAC904,所以我将DAC904焊上去
图三:板子图
换了DAC9004后可以实现幅值可控输出,同时要注意DAC9004使用外部基准源的时候一定要先将INT/EXT拉高,再给外部基准源上电,不然DAC9004内部阻态无法准确判断当前状态!
但是我们又遇到了新的问题,就是输出的波形,上图:

图四:波形图
刚开始以为是输出电压过大摆幅不够导致的,后来发现是因为数据线插错了
目前为止,波形发生部分基本实现,有几个发现:
1.DAC900INT/EXT引脚3.3v足够使能
2.串联电阻不能防止电流倒灌,反而会因为分压倒是过电阻后电压减小

2019年1月26日

刚开始做了一个 巴特沃茨滤波器发现效果不太理想,因为阻抗匹配什么的都没有调,后来用filter_solutions设计了一个七阶的椭圆滤波器(注意电感和电容值将精度调到百分之20),后来发现信号经过滤波器效果不是很好,但是经过运放后波形很好看。图五:滤波器原理图
设计滤波器时要注意阻抗匹配,输出端是看出去50欧姆,信号传输是看进去50欧姆。画pcb时注意接口距离问题,后端的运放阻抗匹配依旧要考虑,相当于输出端。
如上图,先让R1和R3并为50欧姆,再让R7并R5+R6等于50欧姆,先确定R1,然后是R3再根据放大倍数调R2,R6和R5的值可以确定,最后确定R7(模电知识,不展开解释)。
但是问题又来了:就是频率和TLV5636输出电压一大,TLV5636电压就往下掉。
猜想:DAC904内部运放增益带宽积不够导致的。
我们增大了外部的Ref果然问题得到了解决 通过后级放大增大放大倍数。
最后我们在输出端用电阻分压将信号给STM32ADC测量,并做了一个电源板给整个系统供电,使系统得到完善!

基于DDS的多波形程控信号发生器相关推荐

  1. DDS信号发生器设计matlab,基于DDS的LFM信号发生器

    内容简介: 毕业论文 基于DDS的LFM信号发生器,共32页,12745字 摘要:信号发生器作为现代电子产品中的重要一员,必须满足高精度.高速度.高分辨率等要求.而采用DDS方案实现的信号发生器正好有 ...

  2. 基于FPGA的双路低频信号发生器设计

    基于FPGA的双路低频信号发生器设计 系统结构框 本设计是以Altera公司的可编程芯片做载体,运用Verilog作为软件设计工具,从而实现DDS原理,即信号发生器的核心思想.再加上信号发生器的硬件电 ...

  3. c语言程序设计杨东芳答案,基于DDS的数发生器毕业设计论文.doc

    基于DDS的数发生器毕业设计论文 JIANGXI AGRICULTURAL UNIVERSITY 本 科 毕 业 设 计 题目: 基 于 DDS的 函 数 发 生 器 学 院: 工学院 姓 名: 学 ...

  4. 常用雷达信号的matlab仿真_常用的雷达信号:基于DDS的线性调频信号的产生

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...

  5. 基于51单片机的三角波信号发生器设计

    基于51单片机的三角波信号发生器设计 一.任务要求: 设计内容 选择51单片机,晶振采用12MHz. 设计一个能产生50HZ至100HZ的三角波信号.通过0832/A芯片完成数模转换. 频率值由LED ...

  6. 【STM32入门】这个项目绝了,用手势来产生波形,基于手势控制的波形发生器

    大家好,我是张巧龙,之前有给实验室学生出了一道关于STM32的题:基于手势控制的波形产生题,题目简单,但综合性较强. 有些学生完成的还不错,个人觉得此题用来 入门 STM32再合适不过了. 展示视频: ...

  7. 【oracle灾备方案系列】基于DDS的Oracle复制容灾方案(三)

    <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> [oracle ...

  8. 基于51单片机的波形发生器(四种波形)(毕业设计资料)

    四种波形的产生,包括锯齿波.三角波.方波.正弦波.通过LCD液晶显示当前波形以及波形的频率.可以通过按键切换波形,并可以通过按键进行设置当前波形的频率大小,也可以设置频率设置不步进值.资料从主页链接中 ...

  9. oracle灾备同步_【oracle灾备方案系列】基于DDS的Oracle复制容灾方案(三)

    [oracle灾备方案系列]基于DDS的Oracle灾备方案(三) 在基于DataGrid DDS产品实现灾备架构中,不仅能够实现集中交易系统的灾备功能,实现0时间的数据库切换.同时在该架构基础上还能 ...

  10. 测试基于STM32的ADIS16405评估板,并在匿名四轴上实时显示3轴陀螺仪+3轴加速度计+3轴磁力计 波形。本文最后还公开一个基于C# 的串口波形显示客户端源码。

    标题:测试基于STM32的ADIS16405评估板,并在匿名四轴上实时显示3轴陀螺仪+3轴加速度计+3轴磁力计 波形.本文最好还公开一个基于C# 的串口波形显示客户端源码. 这里附上该评估板的原理图和 ...

最新文章

  1. Reason not to use LINQ and reason to use
  2. 项目用的几种机型参数调查
  3. Adobe和苹果相互推诿 不支持Flash谁之过?
  4. IOT(31)---物联网平台架构设计
  5. SVN工作笔记006---解决TortoiseSVN中out of date问题的一个方法
  6. java形状函数_java基础:10.4 Java FX之形状
  7. PermGen space 与 Java heap space
  8. 如何运用接口中的变量?接口可以扩展吗?
  9. Linux动态库soname的使用(转载)
  10. c语言编辑回文数,C语言实例 回文数
  11. 六年级计算机测试题logo,LOGO语言基础知识测试题2017(含答案)
  12. 双三次插值c语言源代码,双三次插值原理及MATLAB源码实现
  13. 记录一下Mac浏览器劫持searchbaron.com的经历
  14. CSIG基础研究岗腾讯面试经验
  15. Python 编辑器哪个好用
  16. 【DP】LeetCode91 解码方法 【java】
  17. Java的Map(映射)特性及编程思想
  18. c语言课程设计图像处理,摄影与图像处理课程设计
  19. 分省三农数据超大量面板数据集(1999-2020年)
  20. PaddlePaddle飞桨入门之旅(二)

热门文章

  1. Entity Relationship diagram/Data model for Microsoft Navision
  2. matlab2010a编译器,MATLAB 2010a 添加 VS2010 编译器
  3. 十四五规划和2035年远景目标纲要 第五篇 加快数字化发展 建设数字中国
  4. 解决方案 | 为什么要配置mysql环境变量以及如何配置
  5. javascript获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度
  6. 最大子段和问题(3种方法)
  7. PDF 已加密 如何去除限制
  8. 清除windows 远程桌面访问记录 批处理
  9. 小时候很喜欢看的一些卡通片的主题曲(绝对经典)
  10. Unity HDRP中代码动态修改天空盒以及其他环境参数