基于FPGA的DDS完工了J<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
只能说基本完工,MCU51单片机跟FPGA的通信还不太好使,受干扰挺大的。不过要完善只能春节后了,我要回家过年了:)
先上几个图
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
FPGA用的是Xilinx Spartan3E系列的XC3S500E,开发板用的是spartan-3E starter kit,这只是临时用,真正用的时候还是要自己画板,对自己也是一个很大的挑战。
可以看到由于spartan-3E starter kit的引出管脚用的是Hirose(广濑电机) 100-pin FX connector接插件,这东西贼难找,我甚至发邮件到广濑电机中国总代那,也没什么办法找着在哪卖,好不容易在中发有一家,居然只有母头没公头,而且还贼贵,80大元,还不如把它们都焊出来呢!就成了这样子。
FPGA链接DA板,DA选用的是AD9744,14bit位,其实DA多少位没什么关系,因为DDS相位累加器位数都很高,通常20~36位,我做的这个DDS因为要分辨到mHz,因此定为48位,累加器出来肯定要截位,截出14位用14位DA(AD9744),截出12位用12位DA(AD9742)。AD9744和AD9742除了位数不一样外,管脚是一样的,能相互兼容。这样的话,需要14位的话用AD9744,需要12位的话用AD9742,通用一块板子。大家可以注意到,DA时钟是单独用微波线出来的,因为我发现与DA数字值一起用排线引出,时钟信号会衰减,可能是由于阻抗不匹配。
FPGA没有嵌内核,之所以没嵌内核,是因为我还不会L 之前考虑过嵌一个picoblaze,但picoblaze只能用汇编编程,好像没有C编译器。至于microblaze那更不会,看来要好好学习啦~所以通过串口改变DDS的相位累加器的累加值只能通过51单片机与FPGA的通信。用了STC的RD54+,通过串口就能烧写程序了。
详细的设计文件可以见本博客其他文章。
PS:DDS 直接数字频率合成
用户536736 2009-7-22 14:45
xucun915_925777961 2009-4-7 20:50