微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 浅谈基于C8051F060单片机控制AD9833实现FSK调制

浅谈基于C8051F060单片机控制AD9833实现FSK调制

时间:02-16 来源:互联网 点击:

模拟时钟信号和片选信号。传送数据的程序如下:

  数据写入方式

  设置控制寄存器中的D15D14=00,表示数据写入控制寄存器;设置B28(D13)=1,表示28位数据可以连续写入频率寄存器,默认先写入低14位频率字,再连续写入高14位频率字到频率寄存器中;设置B28(D13)=0,表示28位数据分两次写入频率寄存器,此时配合 HLB 的值使用(当HLB=1时允许高14位频率字写入到频率寄存器,当HLB=0时允许低14位频率字写入到频率寄存器)。因此写入到控制寄存器的数据可为:0010 0000 0000 0000,表示设置连续28位频率字。数据写入流程图如图4所示。

图4 数据写入流程图

  选择频率寄存器

  由于AD9833片内有2个频率寄存器,即FREQ0、FREQ1,因此要确定是将频率控制字写入哪一个。这可通过设置 D15D14 的值来进行选择,当D15D14=01表示14位的频率字将写入FREQ0;当D15D14=10表示14位的频率字将写入FREQ1.以输出频率为7230Hz为例,介绍写入到频率寄存器1的频率字。

  写入低14位数据为:1011 0110 0001 1110,表示将低14位频率字写入FREQ1.

  写入高14位数据为:1000 0000 0000 1011,表示将高14位频率字写入FREQ1.

  主程序设计

  首先,对C8051F060单片机初始化,这包括单片机晶振初始化、端口初始化,定义控制AD9833的I/O接口及交叉开关,接着初始化AD9833.当AD9833初始化时,为避免DAC产生虚假输出,RESET必须置为1(RESET不会复位频率、相位和控制寄存器),直到配置完毕,需要输出时才将RESET置为0;RESET为0后的8-9个MCLK时钟周期可在DAC的输出端观察到波形。AD9833初始化流程图如图5所示。然后,写频率寄存器0的控制字(0x2000),在进行FSK调制时,AD9833的两个频率寄存器装载不同的频率值,本实验中,频率寄存器0装载低频率6830Hz,频率寄存器1装载高频率7230Hz,通过设置AD9833的控制寄存器的FSELECT位来选择频率寄存器。主程序流程如图6所示。

图5 AD9833初始化 图6主程序流程图

  实验结果

  在示波器上能观测到FSK调制信号,为方便截图,设置频率为7230Hz的正弦信号在示波器上进行观察,图7是频率为7230Hz的正弦信号经过低通滤波之后的频谱图。由图7可以看出,实际输出频率为7.22985Hz.图8是对应的时域图形。

图7 输出频率为7230Hz的频谱图图8 频率为7230Hz时域图

  结论

  本实验中设计的FSK调制信号,在工程中有较强的实用价值,已成功应用于井下声波传输系统中。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top