已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1华中科技大学电子与信息工程系2011年TI杯电子设计大赛项目总结报告题目MSP430控制的基于DDS的波形发生器设计组长何永天(提高0801班U200814111)组员李恋阳(提高0801班U200812892)袁园(提高0802班U200813900)杨春风(电信0804班U200812791)吴文彬(电信0806班U200812863)指导老师陈林日期2011782目录1设计目标411基本功能412扩展功能42团队组成53系统设计方案531几种初步方案5311方案一5312方案二6313方案的比较632器件选型7321单片机7322数模转换DAC7323压控增益放大器7324运算放大器84系统硬件设计与实现841系统框图842系统电路图943器件清单944模块分析10441DDS10442幅度控制11443放大稳压13444自选波形14445键盘14446LCD显示155系统软件设计与实现1651总体设计框图1652初始化1753DDS1854LCD显示1955DAC2156键盘226系统测试与结果2661总体方案选择26611原方案26612遇到的障碍27613改进方案2762硬件电路测试27621VCA810压控放大器27622OPA163228623级联28624关于换备选方案28363系统联调结果28631三角波、正弦波、方波测试结果28632扩展波形的测试结果32633扩展扫频功能的测试结果337结束语3371目标完成情况3372感想338参考文献349附录3491电路图3492源码清单3541设计目标设计并制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和由用户编辑的特定波形,并根据用户输入选择产生指定类型与参数的波形,同时在必要的辅助输出显示设备上显示产生波形的类型与参数。11基本功能具有产生正弦波、方波、三角波三种周期性波形的功能;输出波形的频率范围为100HZ20KHZ(非正弦波频率按10次谐波计算);重复频率可调,频率步进间隔100HZ。输出波形幅度范围05V(峰峰值),可按步进01V(峰峰值)调整。由外界按键输入选择产生波形的种类、频率与峰峰值;界面显示输出波形的类型、重复频率(周期)和幅度。12扩展功能输出波形频率范围扩展至100HZ200KHZ。用键盘或其它输入装置产生任意波形。增加稳幅输出功能,当负载变化时,输出电压幅度变化不大于3(负载电阻变化范围100)。可产生单次或多次(1000次以下)特定波形(如产生1个半周期三角波输出)。具有掉电存储功能,可存储掉电前用户编辑的波形和设置。其它(如增加频谱分析、失真度分析、频率扩展大于200KHZ、扫描输出等功能)。52团队组成袁园硬件部分吴文彬软件部分杨春风硬件部分李恋阳软硬件何永天(组长)软件部分我们的工作分为以下模块(详细分工在个人报告中叙述)前期收集资料、方案设计、器件选型硬件部分电路参数设计、PROTEUS制图及硬件仿真、各单级调试、PCB布线、通用版布线、电路焊接、排查焊接错误软件部分LCD模块、键盘扫描模块、DDS模块、调频、扫频、模块间接口设计与实现、自选波形模块(DA部分)、软件联调后期硬件级联调试、软件联调报告书写、文档排版、幻灯片演示、视频制作、答辩展示3系统设计方案31几种初步方案311方案一由MSP43F149单片机产生三角波、正弦波和方波,并且控制波形之间的转换,以及波信号的频率和幅度。用LCD液晶显示模块显示波形的种类和相关参数。单片机输出数字信号,通过DAC进行数模转换。采用低通滤波器滤除DAC转换过程中形成的高频小锯齿波,运算放大器进行放大,电压跟随器稳幅,最后送入示波器显示信号。6312方案二用DDS(直接数字合成DIRECTDIGITALSYNTHESIS)芯片产生三角波、正弦波和方波,并用MSP430单片机送控制字给DDS以控制波形之间的转换,以及波信号的频率,通过TI公司的VCA810压控放大器芯片进行调幅。然后通过滤波器滤除高频噪声,通过放大电路对信号进行放大,之后通过缓冲对信号进行稳幅,最后送入示波器显示信号,用单片机产生任意波形和其他扩展功能。MSP430F5438DDS放大LCD显示DA放大稳幅PC机JTAGFREQ控制字FREQ控制字自选波形自选波形稳幅按键控制示波器313方案的比较方案一的基本思路是用单片机发出指令输出相应的数字量,然后通过DA产生要求的模拟量,但是存在一个致命的问题,那就是本次的频率基本要求为100HZ20KHZ,扩展要求是100200KHZ,但是通常的MSP430系列单片机的晶振一般为8M左右,指令周期是机器周期,可达1/8MS,所以对生成方波来说还可以,而要合成三角波或正弦波则存在很多问题,程序实现难度很大,所以我们最终放弃了这个方案。方案二的基本思路是走两条路,使用DDS芯片产生三种基本波形,用单片机实现任意波形以及控制和显示等功能,容易对功能进行扩充,且外围电路简单,系统可靠性较高,编程实现较为简单,整个系统成本较低,我们最终选择了这个方案。信号初步产生之后都要经过滤波、放大、缓冲输出等电路,各个方案下的设计大同小异,主要还是需要稳定可靠,带宽很宽。732器件选型321单片机选用MSP430F5438单片机,因为在种类和数量繁多的单片机中,TI的MSP430系列颇具特色,并具有良好的性能。322数模转换DAC按照设计好的方案,扩展功能中的任选波形用DA来实现,有2种方法外接DAC0832或者自带的DAC5571。自带的DAC5571优点使用较简单(因为有完整的TEST代码和文档,而且已经集成在5438的开发板上);缺点速度上不去(因为5438自带的操作DA用来产生任选波形的代码要放在MAIN中,但MAIN函数比较庞大,影响了任选波形的频率)外接DAC0832优点可以自己去设计DA的驱动函数,产生的任选波形的频率较高;缺点设计和搭电路较复杂(0832的输出端还要加运放来将电流输出转换成电压输出)我们选择第一种自带DA323压控增益放大器比较两个选择VCA810和VCA822。具体来说,我们比较它们的增益带宽积,输出(驱动)电流,及我们对芯片的熟悉程度。最后决定选择VCA810,利用DAC产生控制电压改变放大器的增益。控制电压和放大器增益成线性,方便实现精确的增益控制。VCA8108的最小增益步进仅取决于DAC的位数,可以实现增益微调,为闭环改善放大器的性能提供方便。324运算放大器主要考虑因素有增益带宽积,输出驱动电流(表明带负载的能力),噪声电压,电路复杂程度,对芯片的熟悉程度和价格,对于常用的几个比较结果如下OPA1632增益带宽积180MHZ;输出驱动电流150MAOPA551带宽3MHZ;,增益带宽积3MHZ;输出驱动电流200MAOPA552带宽12MHZ,增益带宽积3MHZ;输出驱动电流200MANE5532小信号带宽10MHZ,输出驱动电流60MATHS4031增益带宽积100MHZ,输出驱动电流90MATHS4521带宽145MHZ,输出驱动电流100MAUA741增益带宽积1MHZ,输出驱动电流25MA综合考虑,OPA1632各项性能比其他芯片要好很多,因此决定选用OPA16324系统硬件设计与实现41系统框图4X4按键控制示波器显示AD9833TFT液晶显示DAPC机JTAGFREQ控制字FREQ控制字自选波形自选波形MSP430F5438VCA810OPA1632放大器幅度控制字OPA1632电压跟随器由MSP430单片机通过3个SPI接口控制AD9833产生各种频率的正弦波、三角波、方波,经放大整形电路后输出,并通过独立的按键切换输出的波形,也可改变频率和幅度以及频率和幅度变化的步进(通过软硬件的配合)。通过TFT液晶模块和独立按键进行人机交互。系统上电后检查启动按键是否按下,当启动按下被按下时,启动各个模块,与此同时检查被按下的按键值。当检查到不同的按键9被按下时,由MSP430通过SPI控制AD9833进行相应的改变。42系统电路图其中DDS模块较为复杂,上图只是外部接口。其详细电路设计如下图所示1043器件清单MSP430F5438开发板(1个)VCA810压控增益放大器(1个)OPA1632放大器(3个)AD9833(1个)UA741放大器(1个)电阻,电容,导线若干44模块分析441DDS1AD9833介绍相位累加器N位波形存储器(N位)D/A转换器低通滤波器FSFS频率控制字KAD9833是ADI公司的一款低功耗的DDS器件,能够输出正弦波、三角波、方波。AD9833无需外接元件,输出频率和相位可通过软件编程设置,易于调节。其频率寄存器为28位,主频时钟为25MHZ时,其精度为01HZ;主频时钟为LMHZ时精度可达0004HZAD9833内部有5个可编程寄存器1个16位控制寄存器,用于设置器件_T作模式;2个28位频率寄存器和2个12位相位寄存器,分别用于设置器件输出正弦波的频率和相位。它的SINROM查询表把输入的地址相位信息映射成正弦波幅值的数字量信号,驱动DA转换器输出模拟量。输出正弦波频率为/228式中FREQREG为频率控制字,由频率寄存器FREQOREG或FREQLREG的值给定,其范围为080DB。信号带宽和压摆率保持在整个增益调节范围内保持恒定。这40DB/V增益控制在15DB(最高误差范围09DB),让应用程序在一个AGC增益控制电压精确到作为接收信号强度指示器(RSSI)的使用精度为15DB。通过调节控制电压(VC)来控制压控增益放大器VCA810的放大增益,从而控制正确的输出。VCA810作为压控增益的主要部分,其增益与控制电压的关系为401其中,VC表示控制电压,可见,VCA810的增益与其控制电压成线性关系,只要用单片机控制D/A输出一线性变化的控制电压给VC,便可得到线性变化的电压增益输出理论上VCA810可调的放大倍数为1/100100,实际上由于DDS输出的正弦波和三角波幅度为680MV,方波的幅度为68V左右,而且VCA的工作电压只有5V5V,所以放大倍数不可能为100倍,差不多达到7、8倍,但是缩小则可以到1/100。为了确保调节的精确,我们采用VCA810的缩小功能,提供给它的参考电压为01V。经过这一级缩小后,再送入后级放大。3UA741反相模块由于我们采用的MSP430单片机自带DA模块,所以没有外接DA,利用单片机给DA写控制字,使DA输出幅值可变的电压作为VCA810的参考电压。从DA输出的电压幅度值范围为033V,而VCA810要求的参考电压为01V,所以需要反相和缩小,利用简单的UA741实现,电路如下133267415U1UA741R124KR21KR31K5V5V443放大稳压1OPA1632介绍设计运算放大器时,我们考虑了许多不同型号的运放,功能各异,主要考虑增益带宽积,输出驱动电流(表明带负载的能力),噪声电压,(电路复杂程度,芯片熟悉程度,价格)等等。TI公司的OPA1632是音频运算放大器,性能比较好。增益带宽积为180MHZ,输出驱动电流为150MA。可以工作在较高频率下而不出现失真,且驱动能力较好。2功能实现该实验中,我们主要用OPA1632设计放大电路和电压跟随器。放大电路主要分为同相比例放大器和反相比例放大器两种。反相比例放大器同相比例放大器反相放大电路有如下特点14运放两个输入端电压相等并等于0,故没有共模输入信号,这样对运放的共模抑制比没有特殊要求。VNVP,而VP0,反相端N没有真正接地,故称虚地点。电路在深度负反馈条件下,电路的输入电阻为R1,输出电阻近似为零。输入输出关系同相比例运算电路的特点如下输入电阻很高,输出电阻很低。由于VNVPVS,电路不存在虚地,且运放存在共模输入信号,因此要求运放有较高的共模抑制比。输入输出关系1由于实际放大倍数比理论值低,所以我们设计RF100千欧,R151千欧,放大倍数约为21倍。444自选波形实现自选波形有两种不同的理解和方法手动描波形,由硬件接收,然后描点显示出来;写好一组波形,存在FLASH内部,通过按键选择我们实现的是第二种,首先用MATLAB描出想要产生的任意波形,然后取出大量的点写入代码中,将波形描绘出来。按照设计好的方案,扩展功能中的任选波形用DA来实现,有2种方法外接DAC0832或者自带的DAC5571。自带的DAC5571优点使用较简单(因为有完整的TEST代码和文档,而且已经集成在5438的开发板上);缺点速度上不去(因为5438自带的操作DA用来产生任选波形的代码要放在MAIN中,但MAIN函数比较庞大,影响了任选波形的频率)外接DAC0832优点可以自己去设计DA的驱动函数,产生的任选波形的频率较高;缺点设计和搭电路较复杂(0832的输出端还要加运放来将电流输出转换成电压输出)综上考虑,我们选择使用自带的DAC处理。445键盘本实验中,我们通过按键实现波形切换和调频、调幅。通过开关实现波形的切换比较简单只需通过输出波形后不断返回到检测开关的子程序中,判断是否有别的开关拨动,如果有别的开关拨动则执行别的程序,否则输出原来的波形,不过如果要能够识别别的开关发生变化,必须将此开关关掉否则会识别不了别的键按下。当然开关的调频和调幅的实现也一样,不过首先先输出一个波形,然后再检测开关是否需要调频或者调幅,如果需要则15转入到相应的程序中,最后再重新输出波形。下面是我们设计的按键对应控制的功能446LCD显示我们使用的是BWDK5438开发板自带的TFT液晶屏,用SPI的SCK端来驱动液晶的写信号,当全屏刷新、区域填充时,刷新速度可达10MPPS,因此可以流畅的运行。下图是TFT液晶接口示意图165系统软件设计与实现51总体设计框图1752初始化1功能介绍由于初始化代码由开发板自带,且并不很多实际内容,故仅列出初始化流程,省略具体代码。2核心代码主函数中主要功能包括初始化、扫频功能实现、自选波形功能实现以及键盘扫描。伪代码如下INIT/初始化函数WHILE1/主函数循环_DELAY_CYCLES2048000/键盘扫描延迟IF扫描使能/扫频功能函数FREQCOEFFFREQCOEFF199/当前档位下频率系数递增DDS输出LCD显示ELSEIFMODE3/自选波形函数WHILEREADKEY0XFF/当无键盘按下时,执行自选波形DAC循环输出18自选波形DAC绘制SCANKEY/扫描键盘53DDS1功能介绍主要是对AD933进行SPI模拟与单片机进行连接,再根据按键输入的数据分别转换成正弦波、三角波和方波进行输出的程序。其中转换的格式固定,但是AD9833输出频率时是先低位后高位,区别于SPI模拟时单片机给AD9833数据时是先高位后低位。FSYNC为使能,低电平可传数据,刚开始必须为高电平,SCLK为时钟,在下降沿对应数据,SDATE为传数据(频率控制字),16位,但可能单片机输出一次性为8位,必须先高8位后低8位给AD9833的SDATA2核心代码VOIDDDSVOID/WDTCTLWDTPWWDTHOLD/STOPWATCHDOGTIMERUNSIGNEDLONGFREQ_VALUE/不是频率是计算出的频率控制字AD9833_SPI_PORT_INITOUTPUT_INITSWITCHFREQSTEP/根据频率计算频率控制字CASE0FREQ_VALUEUNSIGNEDLONGFREQCOEFF0X400105BREAKCASE1IFFREQCOEFF7FREQ_VALUEUNSIGNEDLONG0X11800105ELSEIFFREQCOEFF8FREQ_VALUEUNSIGNEDLONG0LSEIFFREQCOEFF9FREQ_VALUEUNSIGNEDLONG0LSEFREQ_VALUEUNSIGNEDLONGFREQCOEFF0X2800105BREAKCASE2FREQ_VALUEUNSIGNEDLONGFREQCOEFF0X19000105BREAKCASE319FREQ_VALUEUNSIGNEDLONGFREQCOEFF0XFA000105BREAKDEFAULTFREQ_VALUE0BREAKSWITCHMODE/不同MODE调用不同OUTPUT函数CASE0OUTPUT_SQUAREFREQ_VALUE/MODE0对应方波BREAKCASE1/MODE1对应三角波OUTPUT_TRIANGLEFREQ_VALUEBREAKCASE2/MODE2对应三角波OUTPUT_SINUSOIDFREQ_VALUEBREAKDEFAULTOUTPUT_SINUSOID0X0000500054LCD显示1功能介绍完成液晶初始化、显示功能。由于TFT性能优良、尺寸大,且开发板自带TFT液晶驱动程序以及相应显示函数,则在编写过程中,主要内容是通过调用绘制函数,将按键输入的信息显示在TFTLCD上,从而实现人机交互。在LCD上,我们设计了一个图形化的显示界面,它可以实时的反应波形状态、频率、幅值等等信息。下面是该界面的详细说明,上面标示出了各元素的具体坐标202核心代码VOIDINITINTERFACEVOID/初始化/清屏CLEAR_LCDCOLOR_BKTA0CCR1220DRAWRECTFILL0,0,240,320,WINDOW_BK_COLOR/绘制背景DRAWRECTFILL0,0,240,30,STATUS_BK_COLOR/标题栏COLOR_BKSTATUS_BK_COLORCOLORSTATUS_COLORPUTSTRING24M60,3,“波形发生器“/标题字DRAWRECTFILL20,60,205,30,WINDOW_COLOR/波形窗口题COLOR_BKWINDOW_COLORCOLORWINDOW_BK_COLORPUTSTRING24M70,63,“波形信息“COLORWINDOW_COLORCOLOR_BKWINDOW_BK_COLORDRAWRECT20,90,205,125,WINDOW_COLORPUTSTRING24M25,105,“波形“MODE2DRAWMODE/初始化波形为正弦波PUTSTRING24M25,140,“频率“FREQSTEP0FREQCOEFF10DRAWFREQ/初始化频率为100HZ21PUTSTRING24M25,175,“峰峰值“VPP6DRAWVPP/初始化峰峰值为06VDRAWRECTFILL0,290,240,30,STATUS_BK_COLOR其他绘制函数及关键代码VOIDDRAWMODEVOID绘制波形模式PUTSTRING24M90,105,“方波“VOIDDRAWFREQSTEPVOID绘制频率档位SWITCHFREQSTEP/判断FREQSTEP取值,在LCD中绘制档位提示符CASE0PUTSTRING24M130,255,“X100HZ“/100HZ档BREAKVOIDDRAWFREQVOID绘制频率UNSIGNEDCHARSTR10/用于存储字符型频率值FLOATFREQ_F/浮点型频率值SWITCHFREQSTEPCASE0FREQ_F100FREQCOEFF01/100HZ档位时,频率频率系数(199)01100,单位HZBREAK/其余档位同上,省略SPRINTFCHARSTR,“31F“,FREQ_F/浮点型数据到字符串型转换DRAWRECTFILL90,140,70,30,WINDOW_BK_COLOR/绘制背景覆盖数据,以防叠加至当前值PUTSTRING24M90,140,STR/绘制当前频率值IFFREQSTEP0PUTSTRING24M170,140,“HZ“/通过判断FREQSTEP取值,确定绘制的单位为“HZ”或“KHZ”ELSEPUTSTRING24M170,140,“KHZ“VOIDDRAWVPPVOID绘制峰峰值UNSIGNEDCHARSTR10/用于存储字符型峰峰值FLOATVPP_F/浮点型峰峰值VPP_F01VPP/峰峰值峰峰值系数(050)01SPRINTFCHARSTR,“31F“,VPP_F/浮点型数据到字符型数据转换PUTSTRING24M130,175,STR/绘制当前峰峰值PUTSTRING24M170,175,“V“/绘制单位“V”2255DAC1功能介绍DAC在本次设计中完成两个功能一、通过改变输入的数字信号,输出自选波形;二、输出压控放大器参考电压,从而改变放大器的增益。2核心代码/初始化DEFINESDA5571BIT6/DAC5571数据DEFINESCK5571BIT7/DAC5571时钟DEFINESCL_HP9OUT|SCK5571DEFINESCL_LP9OUT/时钟信号置高SDA_H/数据线置高DELAY/延迟SDA_L/数据线置低DELAY/延迟SCL_L/时钟信号置低DELAY/延迟/核心功能实现IFMODE3/当自选波形模式WHILEREADKEY0XFF/当没有键盘按下时WRITE_DACVOLTAGE/递增输出锯齿波56键盘1功能介绍23/P6引脚定义DEFINEKPR0BIT0/键盘0行DEFINEKPR1BIT1/键盘1行DEFINEKPR2BIT2/键盘2行DEFINEKPR3BIT3/键盘3行DEFINEKPC0BIT4/键盘0列DEFINEKPC1BIT5/键盘1列DEFINEKPC2BIT6/键盘2列DEFINEKPC3BIT7/键盘3列由键盘接口图以及引脚定义可以看出,P6端口的8条I/O端口线被分成4条行线P60P63和4条列线P64P67。按键的两端分别接在行线和列线上,行线与列线的每个交界处均有一个按键。如果有按键被按下,则与之相连的行线与列线被接通。要想检测是否有按键被按下,先使4条行线输出低电平,读列线P64P67。因为所有列线都经上拉电阻接到VCC,如果没有按键被按下,列线读进来的都是高电平1;如果有按键被按下,则列线读进来的电平应与行线输出的一致,为低电平0据此可以判断是否有按键按下。对于行列扫描式键盘,常采用扫描的办法识别键码。如果4条行线没有输出低电平,那么就可以根据读列线的值来判断这一行是否有键被按下了。2核心代码DEFINEKEY_PORT_INP6INDEFINEKEY_PORT_OUTP6OUTDEFINEKEY_PORT_DIRP6DIRDEFINEKEY_PORT_RENP6RENDEFINEROW_IN_COL_OUTP6DIRKPC0KPC1KPC2KPC3P6OUTKPC0KPC1KPC2KPC3_DELAY_CYCLES20/键盘列输出行输入DEFINECLO_IN_ROW_OUTP6DIRKPR0KPR1KPR2KPR3P6OUTKPR0KPR1KPR2KPR3_DELAY_CYCLES20/键盘行输出列输入UNSIGNEDCHARREADKEYVOIDUNSIGNEDCHARCOLUMN,ROW,KEY/分别表示行、列线读取值、返回键值24UNSIGNEDCHARKEY/储存键值对应的8位键盘扫描值,对应关系见下图ROW_IN_COL_OUT/键盘列输出行输入ROWKEY_PORT_IN/读取P6端口并屏蔽高4位输出值即行线值IFROWKPR0KPR1KPR2KPR3/若行线没有输出低电平,说明有按键按下CLO_IN_ROW_OUT/键盘行输出列输入COLUMNKEY_PORT_IN/读取P6并屏蔽低4位即列线值ROW_IN_COL_OUT/键盘列输出行输入KEYROWCOLUMN/行列线值相加,则高低4位的不同取值可以表示不同的键值_NOPSWITCHKEY/通过判断键值做出对应的响应CASE0XE7KEY1BREAKCASE0XD7KEY2BREAK/其他键值省略DEFAULTKEY0XFFELSEKEY0XFF/若没有键盘输出,则返回键值0XFFKEY_PORT_DIR0XFF/键盘8个IO口均设置为输出KEY_PORT_OUT0X00/输出低电平RETURNKEY/返回逻辑键值下图是8位键值与逻辑值对应关系3各按键功能代码按键1模式选择25按键后MODE值循环模4递增,在方波、三角波、正弦波、自选波形中单向切换。通过改变全局变量MODE值,可以传递给LCD模块输出正确的波形模式显示在屏幕上,并通过调用DDS模块的函数输出正确的控制字给DDS从而输出正确波形。MODEMODE14/0方波,1三角波,2正弦波,3自选波形DRAWMODE/绘制修改后的波形模式DDS/DDS输出修改后的波形按键2频率档位选择按键后FREQSTEP值循环模4递增,在100HZ、1KHZ、10KHZ、100KHZ四个档位中单向切换,通过改变全局变量FREQSTEP值,确定频率档位的选择。在切换档位后初始化频率系数FREQCOEFF50,即将频率值置为该档位下的中间值,方便使用。同按键“1”,将改变后的档位值输出在LCD上,并调用DDS函数输出正确波形。FREQSTEPFREQSTEP14/0100HZ,11KHZ,210KHZ,3100KHZDRAWFREQSTEP/绘制频率档位值FREQCOEFF50/初始化系数为50,便于调试和使用DRAWFREQ/绘制修改后的频率值DDS/DDS输出修改后的波形按键3扫频按键可使扫频使能信号在0,1中切换,通过判断是否为可以扫频的三种基本波形,改变扫频使能信号,在主函数中可以确定当前是否处于扫频状态,实现扫频功能。在LCD显示的过程中,需要注意通过清屏消除“扫频”字样。/判断是否处于三种基本波形模式下,若不是则无扫频功能IFMODE0|MODE1|MODE2IFFREQSCANEN0/若扫频使能为低FREQSCANEN1/通过按键,修改使能信号为高PUTSTRING24M160,105,“扫频“/绘制扫频模式至TFTELSE/若扫频使能为高FREQSCANEN0/通过按键,修改使能信号为低/绘制底色,消除TFT显示的扫频字样DRAWRECTFILL160,105,60,30,WINDOW_BK_COLOR按键4、7频率增减按键可使频率系数FREQCOEFF在199中递增或递减,该数值表示在当前频率档位中,频率步进的系数,由于频率步进设计为档位的01倍,故当前频率值的计算公式为频率值FREQCOEFF01FREQSTEP由于FREQSTEP、FREQCOEFF两个全局变量可以唯一确定当前频率值,输出给LCD模块可以在屏幕上可以正确显示,并输出正确控制字给DDS模块。/当系数小于99时,按键递增/当系数大于1时,按键递减IFFREQCOEFF1FREQCOEFFDRAWFREQDRAWFREQ26DDSDDS按键5、8幅度细调由于峰峰值的改变是通过开发板自带的DAC输出控制电压来改变压控放大器的放大倍数来实现,而8位DAC输出电压值由输入8位数字值(VOLTAGE)控制,当按下“5”、“8”按键后,VOLTAGE以1为步进增减,即可以最小分辨率调节输出波形的峰峰值。VOLTAGEVOLTAGEWRITE_DACVOLTAGEWRITE_DACVOLTAGE按键6、9幅度粗调为了实现峰峰值以01V步进增减,设计步进按钮。按键后全局变量VPP相应变化,输出给LCD显示。读取V151数组中相应输出值,使DAC输出正确的压控电压,达到幅度控制的目的。IFVPP0VPPDRAWVPPDRAWVPPVOLTAGEV1VPPVOLTAGEV1VPPDRAWVOLTAGEDRAWVOLTAGEWRITE_DACVOLTAGEWRITE_DACVOLTAGE实际联调中,由于DDS方波输出电压与三角波、正弦波输出电压值有很大的区别,可以在读取数组值时,判断当前模式,进行对应的修改。修改后代码IFMODE0/方波时VOLTAGEV2VPPELSEIFMODE1|MODE2/三角波、正弦波时VOLTAGEV1VPP6系统测试与结果61总体方案选择611原方案我们原定由MSP430F149单片机作为波形发生器的主控制器。因为在种类和数量繁多的单片机中,TI的MSP430系列颇具特色,并具有良好的性能。我们原计划采用MSP430F149控制DDS输出高频率的正弦波、方波和三角波。输出的数字波形通过DAC0832转换为模拟波形。模拟波形经过滤波、放大、稳幅电路后,就可以输出到示波器观察。输入采用44键盘中断控制。这样可以最大限度的避免占用CPU机时。输出采用LED27循环显示频率和幅度,以及用字符表示当前波形。下图是原方案系统框图612遇到的障碍但是随着工作的深入,我们遇到了很多障碍和预想不到的困难。比如LED显示的效果并不好,特别是和LCD比较起来明显很粗糙。所以我们决定改用LCD显示。然而这样又带来了新的问题,149不能直接相连LCD去控制,它需要很复杂的外围驱动电路和软件控制。我们在经过很长时间的尝试之后还是没能成功。再加上其他很多编程时遇到的细节问题,经过讨论决定使用430开发板。613改进方案考虑到上面的问题,我们购买了一块开发板,它使用的是比430F149更先进的核心芯片430F5438。工作原理是430产生DDS的控制字,让后者输出正弦波、三角波或是方波。波形经过放大稳幅后输出。其实也可以直接通过查表法让430产生各种波形,但430系列是以其低功耗见长,数MHZ的主频虽然并不低,但还不足以产生百KHZ以上的正弦波形。为了达到尽可能高的输出频率,我们这样做,而是仅仅把430用作控制用途。为了控制幅度,我们决定使用一个压控调幅器件。用430输出振幅相应的数字信号通过DA转换为模拟信号,输入到VCA中控制需要波形的幅度。62硬件电路测试621VCA810压控放大器首先,在连接VCA810压控放大器的时候,按照DATASHEET上面的电路连接,如下图28由于参考电压VC应为负,调试阶段VC的输入我用的是5V的电压分压。可是波形几乎没有输出,而且没有任何改变放大倍数的迹象。这块芯片的电路调了一整天,后来发现RC不能连,因为会和我设计的分压器并联,使得电压非常低,去掉之后波形的冲击消失。但是仍然不可调放大倍数,后来将RL由并联改成串联,串上一个100欧的电阻,结果输出波形正常。DATASHEET上的VCA810可调放大倍数范围是1/100100,由于实际上芯片只有正负5V的电压,而输入的正弦波和三角波的幅度有680MV,方波的幅度有68V,所以实际上不可能达到100倍,实际上只有七八倍左右,而缩小可以达到1/100。我们需要精确的调幅,所以这一级只用它的缩小。我们从DA送给它的参考电压为01V。622OPA1632在调试由OPA1632搭的放大电路时,基本上很顺利,只是实际的放大倍数小于理论的放大倍数。但是在调试由OPA1632搭的电压跟随器时,偶尔会出现自激和干扰,加上输出对地的电容时,输出就很好了。623级联DDS和VCA810及OPA1632级联时,出现各种问题,要不就是失真,要不就是频率上不去。最开始,我试过在DDS和VCA810之间加上一级电压跟随器,因为DDS的带负载能力不强,它输出的正弦波和三角波本来有680MV,加上后级电路时,马上衰减到100MV左右。而电压跟随器的带负载能力很强,接上这一级之后输出电压就不变了。但是后来我们发现VCA810的输入最大只能有5V,而DDS接电压跟随出来的方波幅度有68V,因此不能直接接VCA,我考虑接衰减电路,但是后来觉得去掉电压跟随器,直接利用由于带负载能力不强的因素产生的衰减电压,输入到VCA中。事实表明这个方法很管用。VCA810和OPA1632之间级联的时候也是有些问题,后来接了一个耦合电容在两极之间,滤除直流成分,效果比较好。29由于DDS衰减,我开始尝试接两级放大,在带负载的时候出现强烈的干扰,考虑到放大器有同相和反相两种,同相容易引起电磁干扰,我把第二级放大电路改为反相放大,而第一级仍然为同相放大器,结果很好。624关于换备选方案由于最后一天我们的AD9833因为误操作烧了,所以不得不启用临时方案,临时方案的性能没有原来的好,后面也不需要两级放大了,我就直接接一级放大,然后接电压跟随器输出。但是这个备选方案的频率有点达不到200KHZ。其他功能都很好。63系统联调结果631三角波、正弦波、方波测试结果经过测试输出波形的频率范围为10HZ200KHZ,完成了系统的基本要求100HZ20KHZ(非正弦波频率按10次谐波计算)和扩展功能要求;重复频率可调,频率步进间隔设为四档10HZ、100HZ、1KHZ和10KHZ,调节初始值分别为500HZ、5KHZ、50KHZ、500KHZ,满足了频率步进小于等于100HZ的基本要求,并可以实现频率的快速调节。综上所述,本系统完成了正弦波的基本要求并达到了扩展频率要求。具体的测试过程如下所示图中CH2接的是整个模块电路处理后最终波形。1下图为频率20KHZ的时候的输出波形,可以看到波形没有失真,输出比较理想。输入波形峰峰值为100MV左右,输出峰峰值为5V左右的波形如下,符合设计标准。三角波30正弦波方波312下面三图为频率200KHZ的时候的输出波形,可以看到波形基本没有失真,输出比较理想。输入波形峰峰值为100MV左右,输出峰峰值为12V左右的波形如下,符合设计标准。三角波32正弦波方波33632扩展波形的测试结果除了基本的波形设计以外,我们还设计了一个自己较为常用的锯齿波形,如下。633扩展扫频功能的测试结果可以实现从10HZ到500KHZ的大范围扫频功能,其基本测试情况满足要求(附件中有扫频功能的视频)7结束语71目标完成情况基本要求中能够产生正弦波、方波、三角波三种周期性波形;输出波形的频率范围为100HZ20KHZ(非正弦波频率按10次谐波计算);重复频率可调,频率步进间隔100HZ(我们最小步进可以达到10HZ);输出波形幅度范围05V(峰峰值),可按步进01V(峰峰值)调整(我们可以微调(步进1FREQCOEFF/当系数大于1时,按键递减DRAWFREQDDSBREAK/按键5,峰峰值递增/CASE5IFVPP0VPPDRAWVPPVOLTAGE44WRITE_DACVOLTAGEBREAKCASEENTERDDSBREAKCASEBACKSPACEIFMODE3MODEFREEMODEFREE12SWITCHMODEFREECASE0WRITEINDEX0X22PUTSTRING24M180,105,“1“BREAKCASE1WRITEINDEX0X22PUTSTRING24M180,105,“2“BREAKDEFAULTBREAKBREAKCASE6CASE9CASEDELETECASECANCELDEFAULT_DINT/P1OUT|0XF0/P9OUT|0X0FBREAK/45/函数VOIDDRAWMODEVOID绘制波形模式/VOIDDRAWMODEVOID/MODE0方波;1三角波;2正弦波;3自选波形SWITCHMODECASE0PUTSTRING24M90,105,“方波“BREAKCASE1PUTSTRING24M90,105,“三角波“BREAKCASE2PUTSTRING24M90,105,“正弦波“BREAKCASE3PUTSTRING24M90,105,“自选波形“BREAKDEFAULTBREAK/函数VOIDDRAWFREQSTEPVOID绘制频率档位/VOIDDRAWFREQSTEPVOID/FREQSTEP0100HZ;11KHZ210KHZ3100KHZSWITCHFREQSTEPCASE0PUTSTRING24M130,255,“X100HZ“BREAKCASE1PUTSTRING24M130,255,“X1KHZ“BREAKCASE2PUTSTRING24M130,255,“X10KHZ“BREAKCASE3PUTSTRING24M130,255,“X100KHZ“BREAK46DEFAULTBREAK/函数VOIDDRAWFREQVOID绘制频率/VOIDDRAWFREQVOIDUNSIGNEDCHARSTR10FLOATFREQ_FSWITCHFREQSTEPCASE0FREQ_F100FREQCOEFF01BREAKCASE1FREQ_F1FREQCOEFF01BREAKCASE2FREQ_F10FREQCOEFF01BREAKCASE3FREQ_F100FREQCOEFF01BREAKDEFAULTBREAKSPRINTFCHARSTR,“31F“,FREQ_F/浮点型数据到字符串型转换DRAWRECTFILL90,140,70,30,WINDOW_BK_COLOR/绘制背景覆盖数据,以防叠加至当前值PUTSTRING24M90,140,STRIFFREQSTEP0PUTSTRING24M170,140,“HZ“/判断单位ELSEPUTSTRING24M170,140,“KHZ“/函数VOIDDRAWVPPVOID绘制峰峰值/VOIDDRAWVPPUNSIGNEDCHARSTR1047FLOATVPP_FVPP_F01VPP/计算峰峰值SPRINTFCHARSTR,“31F“,VPP_FPUTSTRING24M130,175,STRPUTSTRING24M170,175,“V“/DDS代码/VOIDDDSVOID/WDTCTLWDTPWWDTHOLD/STOPWATCHDOGTIMERUNSIGNEDLONGFREQ_VALUE/不是频率是计算出的频率控制字AD9833_SPI_PORT_INITOUTPUT_INITSWITCHFREQSTEP/根据频率计算频率控制字CASE0FREQ_VALUEUNSIGNEDLONGUNSIGNEDLONGFREQCOEFF1024105BREAKCASE1FREQ_VALUEUNSIGNEDLONGUNSIGNEDLONGFREQCOEFF1024105BREAKCASE2FREQ_VALUEUNSIGNEDLONGUNSIGNEDLONGFREQCOEFF10240105BREAKCASE3FREQ_VALUEUNSIGNEDLONGUNSIGNEDLONGFREQCOEFF102400105BREAKDEFAULTFREQ_VALUE0BREAKSWITCHMODE/不同MODE调用不同OUTPUT函数CASE0OUTPUT_SQUAREFREQ_VALUEBREAKCASE148OUTPUT_TRIANGLEFREQ_VALUEBREAKCASE2OUTPUT_SINUSOIDFREQ_VALUEBREAKCASE3OUTPUT_SQUAREFREQ_VALUEBREAKCASE6/RENYIBOXINGDEFAULTOUTPUT_SINUSOID0X00005000VOIDAD9833_SPI_PORT_INIT/PORT初始化,选择相应端口P9DIR|BIT1BIT2B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《生活科学启蒙课堂|发现身边的吸铁石知识》
- MASH治疗进展与个体化管理2026
- 精密产业园片区排水管建设项目可行性研究报告模板拿地申报
- 2026版届高三数学高考三模模拟试卷(含参考答案解析)全流程SOP与执行检查表轻量版模板
- 2026年开封市顺河回族区网格员招聘考试备考试题及答案详解
- 2026年伊春市金山屯区网格员招聘考试备考试题及答案详解
- 2026年鸡西市滴道区网格员招聘笔试参考试题及答案详解
- 2026年河南省开封市社区工作者招聘考试备考题库及答案详解
- 医药领域腐败问题集中整治工作总结
- 2026年哈尔滨市道里区网格员招聘考试备考试题及答案详解
- 2025老年人能力评估师题库及答案
- 医院安全生产考核细则
- 中国软件行业协会:2025中国软件行业基准数据报告 SSM-BK-202509
- 医院招聘检验试题及答案
- 企业资料档案管理制度化模板
- 2023-2024学年广东省深圳市高一(下)期末化学试题及答案
- GB/T 4026-2025人机界面标志标识的基本和安全规则设备端子、导体终端和导体的标识
- 临期药品药店社区服务2025年拓展方案报告
- 体检流程标准化步骤
- CJ/T 490-2016燃气用具连接用金属包覆软管
- 自考 00018 计算机应用基础
评论
0/150
提交评论