小小博士

基于FPGA控制AD9854产生正弦波程序(实际工程程序)

0
阅读(9205)

基于FPGA控制AD9854产生正弦波程序(实际工程程序)

    在上一个月,我们主要讨论了产生正弦波、方波等常用的数字频率合成器(DDS),重点讨论了各个芯片的功能及差异,以及如何很好的控制好这类芯片,产生我们用的各类信号源。

在这次,主要想从软件角度很好的向大家介绍一下这类芯片的应用。

    我们是用FPGA控制AD9854产生雷达信号源,这里主要向大家介绍如何在FPGA中利用verilog语言(硬件描述语言)控制AD9854产生正弦波。由于我们采用SPI总线的形式实现,主要涉及到时钟信号、片选信号以及正弦波的控制字编写。首先向大家展示一下顶层框图,我们是在QUARTUS II 8.1环境下运行的。具体见图一:

    从上图可以看出,基于FPGA控制产生正弦波,主要包含以下几部分:

    A: 时钟分频部分;B: DDS控制信号部分;C: AD9854控制字部分。

(一)、时钟分频部分

    由于我们从外部输入的为50MHZ,而对于SPI总线,根据其协议,时钟一般为100KHZ或者400KHZ,我们用的是10MHZ,涉及到5分频电路设计。具体设计见下图所示:

(二)、DDS控制信号部分

    AD9854芯片的复位信号,模式选择信号以及片选信号,都在这部分包含,在这里我们将模式选择和波形关键字信号引脚,直接引至地线处理。AD9854复位和I/O口复位信号都是依靠时钟信号的。片选信号是在时钟信号出现一段时间后产生DDS芯片的片选信号。

(三)、AD9854控制字部分

    这部分主要涉及如何很好的把握时序,我们将预先计算好的控制存在预定的存储器中,通过时钟同步信号有序的读取这些控制字。具体关键部分见下图:

    以上都是我利用AD9854产生正弦波的具体做法,但愿给大家今后的硬件设计带来些帮助,这也是我最大的欣慰。如有不妥之处,还望大家多多指正,将不胜感谢!