原创 DDS(一)

2010-7-26 00:32 2477 6 6 分类: FPGA/CPLD

         在对DDS稍微有了一点了解后,我就迫不及待的想试一下,手上正好有DE0的板子,DA也有。哎,总觉得自己这样不好在对一个东西还没有整体的认识之前就贸然下手,多半会是个悲剧,特别是做我们这个一般就是生产一堆电子垃圾,然后发现这个搞不好。以后不这样,要稳住。


          我对DDS还不是很懂,写的都是自己的理解(很可能是错的),电路其实很简单,DA是用的并行的DAC7821,12位。控制信号极简单一个片选CS和一个写数据WR,在CS和WR为低的时候把12位数据送出去就行了,没做基准电压,因为这只是实验,我把电源电压和参考电压都接到了3.3V,再DA后面先加一个运放,实现I/V转换,我用的OPA2277里面有两个运放,低噪声的,外围电路也很简单,DAC出来以后的第一级I/V转换电阻都不需要,出来的电压肯定是(-3.3V到0V),为了得到正弦波这肯定是不行的,后面再加一级放大,其实就是个加法器,把第一级的(-3.3V到0V)再反相放大2倍,就会得到(0V到6.6V的电压),加法器的另一路是基准的方向跟随得到(-3.3V),两者相加就是正负3.3V变化,说这么多也没说清楚,直接上图:


4aa6d975-c373-49b7-8025-3966e6a93040.jpg   


           在V代码方面,分了三部分:1,订制ROM,2,分频部分,3,DAC7821控制器。整体的思路:在分频模块系统时钟先经分频,后面与分的时钟信号clk_fp为基础,来一个clk_fp把ROM的地址加一送给rom,并把相应的数据出去来,同时clk_fp信号还是DAC控制器的开始转换信号,在DAC控制器模块会检测clk_fp的下降沿,来一个下降沿,转换一次数据。其实在整个工程中订制ROM是比较难搞的,其他的还好。先要确定一个周期内你取多少个点,这个很重要,它决定了系统的精度。在EXCEL里面算的,再算正弦值,去掉小数部分,最后还要把他转换成Q ii里面的.mif的那种格式,才能复制,粘贴,很是繁琐。正弦波是出来了,但是频率好像不对。明天把整个系统完善一下,在贴出来。(未完待续)

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条