淮文军
(苏州市职业大学 电子信息工程系,江苏 苏州 215104)
基于MSP430和AD9833的信号发生器设计
淮文军
(苏州市职业大学 电子信息工程系,江苏 苏州 215104)
基于MSP430单片机,采用直接数字合成DDS芯片AD9833设计一个多种波形信号发生器,可产生正弦波、三角波、脉冲波,输出波形频率为1 Hz~1 MHz.设计主要包括电源电路、控制电路、波形发生电路、滤波电路和放大电路.根据DDS芯片的特点给出程序的设计方案,包括AD9833的初始化、写控制字、合成频率等.实验测试结果证明该设计方法的正确性及可靠性.
AD9833;DDS;波形发生器;MSP430单片机
针对高校电子类专业课程设计和大学生电子设计竞赛的实际需要,利用直接数字式频率合成技术(DDS)的分辨频率高、输出相位噪声低、频点与频率切换时相位连续及全数字化易于集成的优点[1],设计一个可以产生多种波形的信号发生器,可产生正弦波、三角波、脉冲波.该系统电路结构简单,易于扩展组合,费用低廉,可满足高校实验室课程设计和电子设计竞赛相关信号源的性能要求.
DDS技术是根据正弦函数的产生,从相位出发,由不同的相位给出不同的电压幅度,即相位-正弦幅度变换,最后滤波、平滑输出所需要的频率[2].正弦波的变化规律a(t)=sinωt是非线性的,在芯片中通过线性分段来构建.角度信息是线性的,每个单位时刻转过的相位角是固定的,频率的关系是ω=2pf,如图1所示.实际中,系统参考时钟是给定的,则相位角通过Dq=ωDt确定,ω=Dq/Dt=2πf,其中Dt为主频时钟MCLK的周期;通过式f=Δθ×fMCLK/(2π),AD9833利用内部的数控振荡器(NCO)、频率和相位调节器、Sine ROM和数模转换器(DAC)就可以建立正弦波形的输出.
AD9833的核心是28位的相位累加器,它由加法器和相位寄存器组成,每来1个时钟,相位寄存器以步长增加,相位寄存器的输出与相位控制字相加后输入到正弦查询表地址中,即2π=228.正弦查询表包含1个周期正弦波的数字幅度信息,每个地址对应正弦波中0°~360°范围内的1个相位点.查询表把输入的地址相位信息映射成正弦波幅度的数字量信号,通过DAC输出模拟量,相位寄存器每经过228=Δθ个MCLK时钟后回到初始状态,相应地正弦查询表经过一个循环回到初始位置,这样就输出了一个正弦波[3].输出正弦波频率为fout=Δθ×fMCLK/228,其中Δθ为频率控制字,由外部编程给定,其范围为0≤Δθ≤228-1.
系统总体结构图如图2所示,由单片机控制DDS模块产生所需的频率信号,并通过低通滤波器滤掉DDS芯片输出产生的寄生频谱分量及其它低频杂波,再经功率放大,使输出的信号满足信号发生器的需求,通过按键可以选择输出波形的参数,并通过显示模块显示.
模块系统硬件电路可分为6个功能模块:电源模块、单片机最小系统、输入显示模块、DDS模块、低通滤波模块和功率放大模块.
MSP430F16x系列是TI公司生产的16位超低功耗单片机,具有极低的功耗、60 kB闪存(Flash)、2 kB RAM、DMA、8通道12位AD转换器.12位AD转换器提供了高性能的采样/保持电路、16位定时/计数器、2个USART接口以及硬件乘法器.4种转换模式:单通道单次转换,系列通道单次转换,单通道多次转换,多通道多次转换.2 kB的RAM可以存储高速采样得到的数据,且固化于Flash存储器内的程序易于在线升级和调试,使得系统实现各种复杂控制,从而能方便地进行系统功能扩展和性能改进[4].
系统使用的直流电源为5 V,220 V交流电源经降压、整流、滤波和稳压后得到5 V电压,再经过LM1117降压到3.3 V.3.3 V电压供给单片机使用,5 V电压供给单片机以外的电路使用.原理图如图3所示.
AD9833具有SPI接口,该串行口可以工作在40 MHz时钟频率下(最大值),供电电压为2.3 ~5.5 V.AD9833与单片机MSP430F169连接时,需要使用单片机的3个I/O口.FSYNC(控制输入,低电平有效)与单片机的管脚P3.2连接,SCLK(串行时钟输入)与管脚P3.1连接,SDATA(串行数据输入)与管脚P3.0连接.在串口时钟SCLK的作用下,数据是以16位的方式加载到设备上,FSYNC引脚是使能引脚,电平触发方式,低电平有效.进行串行数据传输时,FSYNC引脚必须置低.传送数据的每一位,都在SCLK(串行时钟)处于下降沿时发生.在写操作时,P3.2应处于高电平.执行两次写操作时,SCLK应处于高电平.MSP430F169向AD9833输出16位数据时,要由单片机通过软件移位寄存器,从最低位起,串行每次输出一位[3].这也是软件编程的关键所在.
AD9883的参考时钟决定了合成信号的质量,因此振荡电路要能够提供高精度、高稳定性的参考时钟信号.电路设计采用了有源晶振25 MHz.原理图如图4所示.
由于杂波信号的干扰,从AD9833输出的信号含有丰富的高频成分[5],这里采用RC和LC无源滤波电路作为低通滤波器对其输出信号的高频部分进行滤波处理,尽可能降低输出信号的信噪比,然后使用带有电感器的复式滤波电路进行滤波,使输出信号的脉动减小,且波形平滑.低通滤波器如图5所示.
采用功率运算放大器OPA820芯片组成比例放大电路[6].与OP07相比,除了具有其优点外,OPA820是高电压、大电流的精密放大器,其输出电压范围为±4~±30 V,驱动电流为200 mA,驱动负载能力非常强.这里使用TL431为OPA820运放提供稳定的2.5 V偏置工作点.电路中反馈电阻R3实测阻值为563 Ω,增益电阻R8实测阻值为99 Ω,可以得到放大倍数约为6.7,电路图见图6.
采用4个按键完成波形参数的设置和波形类型的选择;显示模块使用1602液晶屏,原理已成熟,这里省略.
主程序由初始化、AD9833设置、人机对话以及硬件驱动等子程序组成.
实现系统初始化功能,包括CPU内存单元清零、开中断、系统参数和状态设置等操作.
设置AD9833工作参数时,通过SPI在MCLK上升沿,把28位控制字送入AD9833的数据输入寄存器,重复4次之后,在FSYNC的上升沿,将该数据从输入寄存器装入到频率/相位数据寄存器,更新AD9833输出的频率和相位.单片机写16位数据到AD9833时,高位在前,低位在后.
在控制上除了要符合时序的要求外,还要计算输出频率所需要的控制字.公式为K=Δθ=(fMCLK/228)×fout,这里以参考时钟频率fMCLK=25 MHz、输出频率fout=2 Hz为例,计算控制字K的值.K=228÷(25×106)×2=21.474 836.在程序中,使用不同的控制就可以得到不同频率的波形.
AD9833设置子程序的流程如图7所示.
无论是写控制寄存器、频率寄存器还是相位寄存器,在写操作之前都需要把选通信号置为有效状态,这样写入的数据才有效.在单片机发送完1个数据字后将产生SPI中断请求,本设计中未使用中断方式,而是通过查询中断标志来跳出,并要读MSP430的接收缓冲器清除中断标志.值得注意的是,AD9833从写入数据到输出端得到响应,中间有一定的响应时间,每次给频率或相位寄存器加载新的数据,需要有7~8个MCLK时钟周期的延时之后,输出端的波形才会产生改变.
为了验证设计系统是否能按照设计目标正常工作,需要对系统的软件和硬件进行调试.这里使用GOS-620示波器进行观察,完成对3种不同输出信号的测试,频率设置的步进值为1 Hz,10 Hz,100 Hz,1 kHz,10 kHz,100 kHz,1 MHz和2 MHz.数据见表1.
由测试过程并结合示波器可以看到:当波形输出频率范围1 Hz~1 MHz时,用示波器观察无明显失真,具有同等的稳定度和准确度.但随着信号频率的升高,相位截断误差逐渐增大[7],造成输出信号的幅度失真和相位失真,使得DDS的输出信号杂散较大,这个缺点限制了DDS输出信号的带宽;当频率在2 MHz时的信号波形不太平滑,出现波形的阶梯上升和阶梯下降.为了克服这个缺点,可以采用DDS技术与PLL技术结合的改进方案,利用PLL频率合成技术的宽带、高频、频谱质量好、杂散小的优点,折中带宽和频谱质量,能较好地降低杂散,提高信号发生器的带宽.
表1 波形输出频率测试数据
采用集成可编程DDS器件实现直接频率合成,在MSP430单片机的控制下,输出频率和相位可调的波形.通过访问不同信号的存储表,实现了正弦波、三角波和方波信号的输出.该模块硬件电路设计和软件编程过程结构清晰、简单,系统实际工作可靠,在1 Hz~1 MHz范围内输出的波形具有同等稳定度和准确度.可以通过PLL技术进一步提高输出信号的带宽,更好满足电子类专业课程设计和大学生电子设计竞赛的需要.
[1]陈立功,宋学瑞,王鑫. 改进的CORDIC模块实现的直接数字频率合成器[J]. 计算机工程与应用,2010,46(17):57-59.
[2]刘明成,梁斌,于振生. 基于DDS技术的程控信号源设计[J]. 天津师范大学学报:自然科学版,2007,27(4):74-76.
[3]Analog Devices,Inc. AD9833 Data sheet [EB/OL].(2003-08-09)[2012-02-08].http://www.analog.com/static/ imported-files/data_sheets/AD9833.pdf.
[4]谢兴红,林凡强,吴雄英. MSP430单片机基础与实践[M]. 北京:航空航天大学出版社,2008.
[5]程明,赵恒,陈莹. 基于DSP和DDS的商品防窃监视器扫频信号源[J]. 国外电子元件,2006(2):10-13.
[6]淮文军,张进峰. 单电源宽带放大器的设计与实现[J]. 苏州市职业大学学报,2010,21(4):22-25.
[7]王东剑,张小华,刘鑫. 一种基于FPGA的数字下变频设计[J]. 自动化与仪器仪表,2010(1):52-53.
Design of Waveform Simulator System Based on AD9833 and MSP430
HUAI Wen-jun
(Department of Electronic Information Engineering,Suzhou Vocational University,Suzhou 215104,China)
Based on MSP430F169 MCU and AD9833 chip,a high accuracy programmable ultrasonic wave signal simulator using DDS (direct digital frequency synthesis) technique is designed. It can produce sine wave,tri-angular wave and pulse,which has 1 Hz-1 MHz frequency range of output waveform. Some modules are designed for the generator,such as power supply circuit,control circuit,waveform simulator circuit,wave filter circuit,amplify circuit and so on. The characteristics of the AD9833 chip is given,the software design methodology is provided including initiative,write control word,synthesis frequency and etc. Finally,the simulation results show the correctness and the affectivity of the proposed method.
AD9833;DDS;waveform simulator;MSP430 microcontrollers
TP277
A
1008-5475(2012)03-0005-04
2012-03-04;
2012-04-18
苏州市职业大学研究性课程资助项目(SZDYKC-120704)
淮文军(1979-),男,陕西宝鸡人,讲师,工程师,硕士,主要从事智能控制、模式识别研究.
book=4,ebook=7
(责任编辑: 沈凤英)