MSP430控制的基于DDS的波形发生器设计.docx
《MSP430控制的基于DDS的波形发生器设计.docx》由会员分享,可在线阅读,更多相关《MSP430控制的基于DDS的波形发生器设计.docx(50页珍藏版)》请在冰豆网上搜索。
华中科技大学电子与信息工程系
2011年TI杯电子设计大赛项目总结报告
题目:
MSP430控制的基于DDS的波形发生器设计
组长:
何永天(提高0801班U200814111)
组员:
李恋阳(提高0801班U200812892)
袁园(提高0802班U200813900)
杨春风(电信0804班U200812791)
吴文彬(电信0806班U200812863)
指导老师:
陈林
日期:
2011.7.8
目录
1 设计目标 4
1.1 基本功能 4
1.2 扩展功能 4
2 团队组成 5
3 系统设计方案 5
3.1 几种初步方案 5
3.1.1 方案一 5
3.1.2 方案二 6
3.1.3 方案的比较 6
3.2 器件选型 7
3.2.1 单片机 7
3.2.2 数模转换DAC 7
3.2.3 压控增益放大器 7
3.2.4 运算放大器 8
4 系统硬件设计与实现 8
4.1 系统框图 8
4.2 系统电路图 9
4.3 器件清单 9
4.4 模块分析 10
4.4.1 DDS 10
4.4.2 幅度控制 11
4.4.3 放大稳压 13
4.4.4 自选波形 14
4.4.5 键盘 14
4.4.6 LCD显示 15
5 系统软件设计与实现 16
5.1 总体设计框图 16
5.2 初始化 17
5.3 DDS 18
5.4 LCD显示 19
5.5 DAC 21
5.6 键盘 22
6 系统测试与结果 26
6.1 总体方案选择 26
6.1.1 原方案 26
6.1.2 遇到的障碍:
27
6.1.3 改进方案:
27
6.2 硬件电路测试 27
6.2.1 VCA810压控放大器 27
6.2.2 OPA1632 28
6.2.3 级联 28
6.2.4 关于换备选方案 28
6.3 系统联调结果 28
6.3.1 三角波、正弦波、方波测试结果 28
6.3.2 扩展波形的测试结果 32
6.3.3 扩展扫频功能的测试结果 33
7 结束语 33
7.1 目标完成情况 33
7.2 感想 33
8 参考文献 34
9 附录 34
9.1 电路图 34
9.2 源码清单 35
50
1.设计目标
设计并制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和由用户编辑的特定波形,并根据用户输入选择产生指定类型与参数的波形,同时在必要的辅助输出显示设备上显示产生波形的类型与参数。
1.1基本功能
l具有产生正弦波、方波、三角波三种周期性波形的功能;
l输出波形的频率范围为100Hz-20KHz(非正弦波频率按10次谐波计算);重复频率可调,频率步进间隔≤100Hz。
l输出波形幅度范围0-5V(峰峰值),可按步进0.1V(峰峰值)调整。
l由外界按键输入选择产生波形的种类、频率与峰峰值;
l界面显示输出波形的类型、重复频率(周期)和幅度。
1.2扩展功能
l输出波形频率范围扩展至100Hz-200KHz。
l用键盘或其它输入装置产生任意波形。
l增加稳幅输出功能,当负载变化时,输出电压幅度变化不大于±3%(负载电阻变化范围:
100Ω)。
l可产生单次或多次(1000次以下)特定波形(如产生1个半周期三角波输出)。
l具有掉电存储功能,可存储掉电前用户编辑的波形和设置。
l其它(如增加频谱分析、失真度分析、频率扩展大于200KHz、扫描输出等功能)。
2团队组成
我们的工作分为以下模块(详细分工在个人报告中叙述)
l前期:
收集资料、方案设计、器件选型
l硬件部分:
电路参数设计、proteus制图及硬件仿真、各单级调试、PCB布线、通用版布线、电路焊接、排查焊接错误
l软件部分:
LCD模块、键盘扫描模块、DDS模块、调频、扫频、模块间接口设计与实现、自选波形模块(DA部分)、软件联调
l后期:
硬件级联调试、软件联调报告书写、文档排版、幻灯片演示、视频制作、答辩展示
3系统设计方案
3.1几种初步方案
3.1.1方案一
由MSP43F149单片机产生三角波、正弦波和方波,并且控制波形之间的转换,以及波信号的频率和幅度。
用LCD液晶显示模块显示波形的种类和相关参数。
单片机输出数字信号,通过DAC进行数模转换。
采用低通滤波器滤除DAC转换过程中形成的高频小锯齿波,运算放大器进行放大,电压跟随器稳幅,最后送入示波器显示信号。
3.1.2方案二
用DDS(直接数字合成DirectDigitalSynthesis)芯片产生三角波、正弦波和方波,并用MSP430单片机送控制字给DDS以控制波形之间的转换,以及波信号的频率,通过TI公司的VCA810压控放大器芯片进行调幅。
然后通过滤波器滤除高频噪声,通过放大电路对信号进行放大,之后通过缓冲对信号进行稳幅,最后送入示波器显示信号,用单片机产生任意波形和其他扩展功能。
3.1.3方案的比较
方案一的基本思路是用单片机发出指令输出相应的数字量,然后通过DA产生要求的模拟量,但是存在一个致命的问题,那就是本次的频率基本要求为100Hz-20KHz,扩展要求是100-200KHz,但是通常的MSP430系列单片机的晶振一般为8M左右,指令周期是机器周期,可达1/8ms,所以对生成方波来说还可以,而要合成三角波或正弦波则存在很多问题,程序实现难度很大,所以我们最终放弃了这个方案。
方案二的基本思路是走两条路,使用DDS芯片产生三种基本波形,用单片机实现任意波形以及控制和显示等功能,容易对功能进行扩充,且外围电路简单,系统可靠性较高,编程实现较为简单,整个系统成本较低,我们最终选择了这个方案。
信号初步产生之后都要经过滤波、放大、缓冲输出等电路,各个方案下的设计大同小异,主要还是需要稳定可靠,带宽很宽。
3.2器件选型
3.2.1单片机
选用MSP430F5438单片机,因为在种类和数量繁多的单片机中,TI的MSP430系列颇具特色,并具有良好的性能。
3.2.2数模转换DAC
按照设计好的方案,扩展功能中的任选波形用DA来实现,有2种方法:
外接DAC0832或者自带的DAC5571。
l自带的DAC5571
优点:
使用较简单(因为有完整的test代码和文档,而且已经集成在5438的开发板上);缺点:
速度上不去(因为5438自带的操作DA用来产生任选波形的代码要放在main中,但main函数比较庞大,影响了任选波形的频率)
l外接DAC0832
优点:
可以自己去设计DA的驱动函数,产生的任选波形的频率较高;缺点:
设计和搭电路较复杂(0832的输出端还要加运放来将电流输出转换成电压输出)
我们选择第一种自带DA
3.2.3压控增益放大器
比较两个选择:
VCA810和VCA822。
具体来说,我们比较它们的增益带宽积,输出(驱动)电流,及我们对芯片的熟悉程度。
最后决定选择VCA810,利用DAC产生控制电压改变放大器的增益。
控制电压和放大器增益成线性,方便实现精确的增益控制。
VCA810的最小增益步进仅取决于DAC的位数,可以实现增益微调,为闭环改善放大器的性能提供方便。
3.2.4运算放大器
主要考虑因素有增益带宽积,输出驱动电流(表明带负载的能力),噪声电压,电路复杂程度,对芯片的熟悉程度和价格,对于常用的几个比较结果如下:
lOPA1632:
增益带宽积:
180MHZ;输出驱动电流:
150mA
lOPA551:
带宽:
3MHZ;,增益带宽积:
3MHZ;输出驱动电流:
200mA
lOPA552:
带宽:
12MHZ,增益带宽积:
3MHZ;输出驱动电流:
200mA
lNE5532:
小信号带宽:
10MHZ,输出驱动电流:
60mA
lTHS4031:
增益带宽积:
100MHZ,输出驱动电流:
90mA
lTHS4521:
带宽:
145MHZ,输出驱动电流:
100mA
luA741:
增益带宽积:
1MHZ,输出驱动电流:
25mA
l综合考虑,opa1632各项性能比其他芯片要好很多,因此决定选用opa1632
4系统硬件设计与实现
4.1系统框图
由MSP430单片机通过3个SPI接口控制AD9833产生各种频率的正弦波、三角波、方波,经放大整形电路后输出,并通过独立的按键切换输出的波形,也可改变频率和幅度以及频率和幅度变化的步进(通过软硬件的配合)。
通过TFT液晶模块和独立按键进行人机交互。
系统上电后检查启动按键是否按下,当启动按下被按下时,启动各个模块,与此同时检查被按下的按键值。
当检查到不同的按键被按下时,由MSP430通过SPI控制AD9833进行相应的改变。
4.2系统电路图
其中DDS模块较为复杂,上图只是外部接口。
其详细电路设计如下图所示:
4.3器件清单
lmsp430f5438开发板(1个)
lVCA810压控增益放大器(1个)
lOPA1632放大器(3个)
lAD9833(1个)
lUA741放大器(1个)
l电阻,电容,导线若干
4.4模块分析
4.4.1DDS
1)AD9833介绍
AD9833是ADI公司的一款低功耗的DDS器件,能够输出正弦波、三角波、方波。
AD9833无需外接元件,输出频率和相位可通过软件编程设置,易于调节。
其频率寄存器为28位,主频时钟为25MHz时,其精度为0.1Hz;主频时钟为lMHz时.精度可达0.004Hz.
AD9833内部有5个可编程寄存器:
1个16位控制寄存器,用于设置器件_T作模式;2个28位频率寄存器和2个12位相位寄存器,分别用于设置器件输出正弦波的频率和相位。
它的SIN-ROM查询表把输入的地址相位信息映射成正弦波幅值的数字量信号,驱动D/A转换器输出模拟量。
输出正弦波频率为:
fout=FREQREG(fMCLK/228)
式中:
FREQREG为频率控制字,由频率寄存器FREQOREG或FREQlREG的值给定,其范围为
0≤M<228-1
fMCLK为参考时钟频率。
2)从单片机输入控制字
AD9833模块有3根串行接口线,分别是FSYNC、SCLK和SDATA,与SPI、QSPI、MI-CROWIRE和DSP接口标准兼容,在串口时钟SCLK的作用下,数据是以16位的方式加载到设备上,FSYNC引脚是使能引脚,电平触发方式,低电平有效。
进行串行数据传输时,FSYNC引脚置低,在16个SCLK的下降沿数据通过SDATA引脚被送到AD9833的输入移位寄存器。
因此,此处我们通过3个100Ω的电阻进行限流,并将这3个引脚接到单片机MSP430F5438的P9.4、P9.3和P9.2脚,通过单片机来控制AD9833。
下图是SCI串行数据通信的时序图:
3)从Vout的各种输出
OPBITENBit
MODEBit
DIV2Bit
VOUTPin
0
0
X
正弦波
0
1
X
三角波
1
0
0
DAC数据的MSB/2
1
0
1
DAC数据的MSB
其中MSB/2和MSB对应为方波,且MSB/2为MSB频率的一半。
即正弦波,三角波,方波对应的频率控制字分别为:
0x2000,,0x2002,0x2028(MSB方波),0x2020(MSB/2方波)。
4)完整工作流程简介
l虽然MSP430单片机具有硬件SPI总线功能,但是一次只能传输8位数据位,而AD9833在接收数据时是