基于EZ-USB单片机的正弦信号发生器
通过上电后的自检自动将固件程序加在 CY7C68013上;另一种方式是通过主机将固件程序下载到CY7C68013。
本系统在设计上采用外接一片 EEPROM芯片来存放 USB设备配置信息和 8051应用程序。该应用程序在上电后加载到 8051内核,主要完成两个任务:实现 USB协议,包括 USB设备配置及 USB数据传输;实现对 AD9851的初始化以及对信号的产生和控制。
1固件程序框架
固件程序流程如图 4所示,主要执行以下任务,其中步骤①~⑤主要是完成 USB接口的初始化工作,而步骤⑥~⑩可以看作是任务执行阶段,完成 USB事务及用户特定的任务。
① 初始化所有的状态变量;
② CY7C68013中 USB端点寄存器进行初始化设置;
③ 判断是否重新定位描述符表,以确保描述符表的存放地址位于片内RAM;
④ 使能 USB中断,并允许所选择的中断;
⑤ 判断是否有来自系统的“重新枚举”命令,如有,则重新枚举;
⑥ 初始化 AD9851模块内部寄存器以及缺省模式下的信号配置;
⑦ 判断是否接收到 setup令牌包,如有,则调用相应函数响应 USB设备请求命令;
⑧ 判断是否进入睡眠状态,如是,则将 CY7C68013置于睡眠状态;
⑨ 查询是否有来自上位机的修改波形命令,按照程序执行与波形修改有关的任务;
⑩ 返回⑦,循环接收并执行来自上位机的各种命令。
2 AD9851工作流程 AD9851工作流程共包含40位控制码(D39~D0),其作用为:
(1)D39、D38用来控制AD9851数据输入的模式。AD9851的数据输入模式分为并行输入模式和串行输入模式两种。在并行输入模式下,模式控制码为“00”,每次8bit数据输入端D0~D7分5次数输入频率控制字。
(2)D37用来调节AD9851输出的功率。
(3)D36~D32相位调制码,用来控制AD9851的相位调制量。
(4)D31~D0用来控制AD9851输出的频率。这32位频率控制码是由输入的频率控制字转换过来的。具体转换关系为:
(5) AD9851 中的 DDS内核所需输入控制字由单片机提供。在进行频率控制时, 首先送入相位调制码、功率调节码和输入模式控制码, 然后送入 32bit频率控制码。本系统设置AD9851工作在并行数据输入模式。系统启动后,接受用户从键盘所输入的功能,调用相应的子程序,根据信号的频率值、以及 2psk功能下相位值,单片机将频率值根据公式转换为频率相位控制字,初始相位值按照公式Phase(度)/11.25°转换为 5位二进制数相位调制字,准备送往 AD9851频率控制输出。在传输数据之前,单片机先向 AD9851产生一个 RESET上升沿信号, 并延时 7ns,使整个下位机系统复位, 再依次传输一个 8 bit的相位调制码和置AD9851工作模式码以及 32bit的频率控制码。每传输一次 8bit的控制码后,需由软件产生一个有效的 WCLK上升沿信号,将控制码送入 AD9851输入数据寄存器中,重复五次后即可将40位的控制码全部加载到AD9851内部的数据寄存器中,昀后产生一个有效的 FQUD上升沿信号,将 40bit的控制码全部加载到 AD9851中的 DDS频率合成单元中,经过 13到 18个时钟周期后,就可获得所需的频率输出信号。
3 驱动程序设计在 Cypress 公司的 EZ-USBFX2 开发包中,提供了完整的 CY7C68013 驱动程序源代码、控制面板程序及固件的框架,可以大大加快用户开发的进度。用户只需对所带驱动程序稍加
修改,再经过 DDK 编译后使用,使得软件开发者大量的时间主要集中在应用程序和固件的开发上。本设计采用的 USB设备驱动程序就是对 FX2开发包所带的驱动程序做了一些修改,主要是修改了 DeviceIoControl例程,增加了控制数据传输函数、启动和停止 AD9851等。四结束语
本文提出了一种基于 EZ-USB和 AD9851的正弦信号发生器系统方案,利用 EZ-USB的优点,通过上位机软件的简单数据输入,可以产生供实验所需要的信号源,极大的提高了系统的灵活性和可配置性。通过实验测定,测试的输出频率准确度与稳定度达到 10 -6。参考文献:
[1].CY7C68013datasheethttp://www.dzsc.com/datasheet/CY7C68013_.html.
[2].AD9851datasheethttp://www.dzsc.com/datasheet/AD9851_251850.html.
[3].EZ-USBdatasheethttp://www.dzsc.com/datasheet/EZ-USB_305660.html.
[4].AD811datasheethttp://www.dzsc.com/datasheet/AD811_1055521.html.
EZ-USB单片机 正弦信号发生器 AD9851 相关文章:
- 单片机驱动CPLD的PWM正弦信号发生器设计(02-06)
- MSP430控制AD9851产生扫频波(11-13)
- 基于SPCE061A与AD9851的低频可控信号发生器设计(04-22)
- 基于CY7C68013和AD9851的正弦信号发生器设计(04-10)
- 基于AD9851信号发生器的设计(04-12)
- Windows CE 进程、线程和内存管理(11-09)