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

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

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

二.基本要求
(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)不多说,上图:
基于DDS的多波形程控信号发生器_第2张图片图二:DAC原理图
问题是,当我一上电TLV5636的输出脚和地就短路,相当于TLV5636没有输出电压
刚开始我以为是TLV5636芯片烧坏了,于是将TLV5636单独拿出来测试发现没有坏,
然后我将TLV5636从板子上卸下来,发现两条路没有短,但是芯片一上电就短路,
于是我们又怀疑是DAC900坏了,我们DAC900INT/EXT引脚拉低,使用其内部基准源发现其输出电压正常,
又怀疑是其内部电压拉高较慢导致导致其输出电压始终处于低电压,我们先将INT/EXT单独拉高,再接给DAC商店上电,发现问题依旧存在
然后我们怀疑是电流倒灌导致电压减小,于是我们在输出路上串联一个1M欧的电阻,发现电阻之后的电路没有短路,而之前的短路,相当于电阻将电路分为两个部分,一部分短路,另一部分没有短路,真的玄学!但是我相信我们一定能找到问题所在!

2019年1月25日

实在没辙,于是我决定将DAC900换一个但是由于手头只剩下一块DAC904,所以我将DAC904焊上去
基于DDS的多波形程控信号发生器_第3张图片图三:板子图
换了DAC9004后可以实现幅值可控输出,同时要注意DAC9004使用外部基准源的时候一定要先将INT/EXT拉高,再给外部基准源上电,不然DAC9004内部阻态无法准确判断当前状态!
但是我们又遇到了新的问题,就是输出的波形,上图:
基于DDS的多波形程控信号发生器_第4张图片
图四:波形图
刚开始以为是输出电压过大摆幅不够导致的,后来发现是因为数据线插错了
目前为止,波形发生部分基本实现,有几个发现:
1.DAC900INT/EXT引脚3.3v足够使能
2.串联电阻不能防止电流倒灌,反而会因为分压倒是过电阻后电压减小

2019年1月26日

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

你可能感兴趣的:(信号发生)