【求助】FPGA做DDS波形出现毛刺,什么原因呢
DDS实测波形(频率不稳,波形有很多毛刺)http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_545489.jpg
(原文件名:图片 008.jpg)
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_545490.jpg
(原文件名:图片 009.jpg)
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_545491.jpg
(原文件名:图片 010.jpg)
DA采用DAC902,FPGA为EP2C5T144C8N,时钟晶振50M,FPGA内部PLL2倍频。DA电路很简单DAC902+OPA690
下面为完整的工程文件
点击此处下载 ourdev_545492.rar(文件大小:1.41M) (原文件名:DDS.rar)
RTL图
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_545493.JPG
(原文件名:RTL.JPG)
是程序问题?还是DA电路的问题呢?低频时波形比较好看。上K波形就很多毛刺,频率在高波形就更糟糕了。 我认为是FPGA推送出数据的时序配合以及信号完整性方面的问题。 这个问题仿真就能看出来的 楼上的DAC902用出来了,可是我的DAC902却怎么都不对阿!求助。求交流阿! LZ用的什么硬件电路呢?是否是芯片数据手册的电路图啊~~ 我一直怀疑是不是芯片资料上的电路图有问题么?我按照数据手册上的AD9850电路接,ARM7编程,但是产生的波形也是很多毛刺,而且不稳定,上30M正弦波更不谈了~~ output dac 加buffer,由PLL上或下缘控制输出. 我用AD7801,还是没问题。不过,你的速度是太高了。用示波器检查CLK和DAT的关系?
PCB布线相差太大?根据毛刺出现的位置,应该重点检查几根线!
有点像串扰或振铃引起的数据错误。 回复【楼主位】TornadoYu
-----------------------------------------------------------------------
我猜有可能是数据溢出了一位,原来仿真的 时候遇到过这个问题,比方说你的数据设置的是减到0就停止了,实际是减到0又减了一位就成了ffff。。。了,所以这个地方出现了毛刺。 回复【1楼】ngzhang兽哥
-----------------------------------------------------------------------
信号完整性可是个大命题。
希望正如TornadoYu说的,是楼主程序问题。 如果是信号完整性的问题,为什么波形其他地方没有毛刺,每个周期只有局部有毛刺?
我觉得信号完整性有问题的可能性不大。
还是重点查下时序吧。我觉得是时序问题。 1、用signal tap ii 看下信号在FPGA 内部的情况。
2、如果上一步就有毛刺,那加3级buffer试一试。如果没有则可能是板子设计的有问题了。
3、仔细检查下DAC的电路是不是ok? 示波器放大毛刺,仔细分析毛刺出现时对应的数据以及毛刺对应的数据,很可能就是某一两个bit的问题。 FPGA用同步逻辑, 所有的信号都要在时钟的某个沿跳变. 输出也要加时钟驱动的buffer 我想应该是输出时序不同步的问题吧。建议输出加触发器,保住同步触发。 我想应该是输出时序不同步的问题吧。建议输出加触发器,保住同步触发。 你进行滤波没有 我刚遇到过这个问题,应该是时序不同步 你改下试试,我当时就是同步了下就消除了 你波形数据存了整个周期?还是1/4? 我之前也遇到过,是程序的问题,你在每个周期转换的时候,有数据溢出了(输出的数据不连续)。 求示波器型号,似乎带辉度 看图的话,毛刺出现都是接近波谷的地方,猜测是该处时序不正常或者读取到了错误的ROM表 应该是数据完整性的 问题
dac_clk前面加个非门试试................................................... DDS的累加器输出的分频脉冲可能会在累加器达到最大值时输出产生空缺,也就是丢了一个脉冲。 哇塞遇到和我做同样事情的人了MARK! 问题,解决了吗? 我猜有可能是数据溢出了一位,原来仿真的 时候遇到过这个问题,比方说你的数据设置的是减到0就停止了,实际是减到0又减了一位就成了ffff。。。了,所以这个地方出现了毛刺。
应该是这个 应该是27楼说的那个问题! 我猜有可能是数据溢出了一位,原来仿真的 时候遇到过这个问题,比方说你的数据设置的是减到0就停止了,实际是减到0又减了一位就成了ffff。。。了,所以这个地方出现了毛刺。
应该是这个
我估计也是这个问题 linspace 发表于 2012-7-17 08:55 static/image/common/back.gif
应该是27楼说的那个问题!
你觉得该怎么处理呢???? 涛哥哥333 发表于 2012-7-18 17:03 static/image/common/back.gif
你觉得该怎么处理呢????
仿真看一下,不然你把范围取小一点,别满量程了。这样子看看会出现什么样的情况。 时钟为0时的建立时间不够吧
我也在做DDS呀!学习一下!!!!! {:smile:}{:smile: 新手上路!先参考下 看看 學習學習!
页:
[1]