北京邮电大学课设 基于MSP430的简单信号发生器的设计.docx
- 文档编号:6807634
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:16
- 大小:27.99KB
北京邮电大学课设 基于MSP430的简单信号发生器的设计.docx
《北京邮电大学课设 基于MSP430的简单信号发生器的设计.docx》由会员分享,可在线阅读,更多相关《北京邮电大学课设 基于MSP430的简单信号发生器的设计.docx(16页珍藏版)》请在冰豆网上搜索。
北京邮电大学课设基于MSP430的简单信号发生器的设计
基于MSP430的信号发生器
设计报告
学院:
电子工程学院
班级:
组员:
唐卓浩()
王旭东()
李务雨()
指导老师:
***
一、摘要
信号发生器是电子实验室的基本设备之一,目前各类学校广泛使用的是标准产品,虽然功能齐全、性能指标较高,但是价格较贵,且许多功能用不上。
本设计介绍一款基于MSP430G2553
单片机的信号发生器。
该信号发生器虽然功能及性能指标赶不上标准信号发生器,但能满足一般的实验要求,且结构简单,成本较低。
本次需要完成的任务是以MSP430LaunchPad的单片机为控制核心、DAC模块作为转换与按键电路作为输入构成的一种电子产品。
MSP430LaunchPad单片机为控制核心,能实时的进行控制;按键输入调整输出状态,DAC0832将单片机输出的数字信号转化为模拟量,经运放放大后,在示波器上输出。
在本次程序设计中充分利用了单片机内部资源,涉及到了中断系统、函数调用等。
关键字:
信号发生器MSP430单片机数模转换
二、设计要求
以msp430单片机为核心,通过一个DA(数字模拟)转换芯片,将单片机输出的方波、三角波、正弦波(数字信号)转换为模拟信号输出。
提供芯片:
msp430G2553、DAC0832、REF102、LM384、OP07。
参考框图如下:
图1硬件功能框图
1、基本要求
(1)供电电压VDD=5V~12V;(√)
(2)信号频率:
5~500Hz(可调);(√)
(3)输出信号电压可调范围:
≥*VDD,直流偏移可调:
≥*VDD;(√)
(4)完成输出信号切换;(√)
(5)方波占空比:
平滑可调20%~80%;(√)
(6)通带内正弦波峰峰值稳定度误差:
≤±10%(负载1K)。
(√)
2、发挥部分
(1)信号频率:
5~2000Hz(可调);(√)
(2)多通道同时输出同频正弦波,方波,三角波。
(频率可调);
(3)输出频率与幅度可调的正弦波与余弦波,相位误差≤±5度;
(4)自由发挥。
三、实验器材
MSP430G2553单片机(TexasInstrument);DAC0832模数转换芯片;REF102高精度电压基准;OP07运算放大器;阻值不同的电阻及电位器若干;电容若干;导线若干。
1、MSP430G2553单片机
TI的MSP430G2系列Launchpad开发板是一款适用于TI最新MSP430G2xx系列产品的完整开发解决方案。
其基于USB的集成型仿真器可提供为全系列MSP430G2xx器件开发应用所必需的所有软、硬件。
LaunchPad具有集成的DIP插座,可支持多达20个引脚,从而使MSP430ValueLine器件能够简便地插入LaunchPad电路板中。
此外,其还可提供板上Flash仿真工具,以直接连接至PC轻松进行编程、调试和评估。
此外,它还提供了从MSP430G2xx器件到主机PC或相连目标板的9600波特率的UART串行连接。
MSP430G2系列Launchpad开发板的特性:
(1)USB调试与编程接口无需驱动即可安装使用,且具备高达9600波特的UART串行通信速度;
(2)支持所有采用PDIP14或PDIP20封装的MSP430G2xx和MSP430F20xx器件;
(3)两个按钮可实现用户反馈和芯片复位;
(4)器件引脚可通过插座引出,既可以方便的用于调试,也可用来添加定制的扩展板。
(5)由此易知,MSP430单片机将用于系统的控制部分。
2、DAC0832模数转换芯片
DAC模块主要由DAC0832和OPA227PA运算放大器组成。
DAC0832是8分辨率的D/A转换集成芯片。
与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
其主要参数如下:
(1)分辨率为8位;
(2)电流稳定时间1us;
(3)可单缓冲、双缓冲或直接数字输入;
(4)只需在满量程下调整其线性度;
(5)单一电源供电(+5V~+15V);
(6)低功耗,20mW
其引脚功能如下:
(1)D0~D7:
8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);
(2)ILE:
数据锁存允许控制信号输入线,高电平有效;
(3)CS:
片选信号输入线(选通数据锁存器),低电平有效;
(4)WR1:
数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变化换,LE1的负跳变时将输入数据锁存;
(5)XFER:
数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;
(6)WR2:
DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。
由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
(7)IOUT1:
电流输出端1,其值随DAC寄存器的内容线性变化;
(8)IOUT2:
电流输出端2,其值与IOUT1值之和为一常数;
(9)Rfb:
反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;
(10)Vcc:
电源输入端,Vcc的范围为+5V~+15V;
(11)VREF:
基准电压输入线,VREF的范围为-10V~+10V;
(12)AGND:
模拟信号地;
(13)DGND:
数字信号地
3、REF102高精度电压基准
REF102是高精度10V电压基准集成电路。
由于REF102无需外加恒温装置,因而功耗低、升温快、稳定性好、噪声低。
REF102的输出电压几乎不随供电电源电压及负载变化。
通过调整外接电阻,输出电压的稳定性及温度漂移可降至最校至36V的单电源供电电压及优异的全面性能使REF102成为仪器、A/D、D/A及高精度直流电源应用的理想选择。
REF102的特点:
(1)高精度输出:
+10V
(2)超低温度漂移:
≤℃
(3)高稳定性:
5ppm/1000小时(典型值)
(4)高负载调整率:
≤1ppm/V,≤10ppm/mA
(5)宽供电电压范围:
至36VDC
(6)低噪声
(7)低静态电流:
≤
REF102的引脚:
(2)为芯片电源脚,电压范围是~36V;(4)为公共引脚;(5)为外接调整电阻脚,调整输出电压稳定度及温度漂移;(6)为输出引脚;(8)为输出噪声衰减。
4、OP07运算放大器
OP07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。
由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。
OP07同时具有输入偏置电流低(OP07A为±2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。
OP07芯片引脚功能说明:
1和8为偏置平衡(调零端),2为反向输入端,3为正向输入端,4接地,5空脚6为输出,7接电源。
四、硬件电路设计
1、整体设计思路
方案一:
控制部分由MSP430G2553实现,波形产生采用单片压控函数发生器(MAX038等),可同时产生频率可控可变的正弦波、三角波、方波。
优缺点:
简单易行,采用专用芯片,系统体积大大减小;但频率步进的步长很难控制,并且整个设计中MSP430G2553仅完成简单的控制功能,资源没有充分利用。
方案二:
由MSP430G2553实现对专门的DDS芯片(如AD9850)的控制,产生各种波形。
优缺点:
此方案产生波形的频率稳定度高,易于程控。
但DDS芯片价格高,系统成本高。
方案三:
由MSP430G2553结合DAC0832实现各种波形的产生。
优缺点:
此方案可以充分利用MSP430G2553上的资源,降低系统成本,但是产生波形频率较低。
综上,方案三充分利用MSP430G2553的资源,外围电路简单、系统成本较低,可以满足信号发生器的要求,所以最终采用方案三。
2、硬件控制模块
这次试验共有三个按键输入,分别作为切换波形,加频,减频。
一个滑动变阻器作为占空比的调节,一个作为幅度的调节,一个作为直流偏置的调节。
按键直接采用分压法给一个高电位,当按下去的时候相当于接地也就输出了低电平。
占空比的调节在于分压法,让滑动变阻器所占电压在0~伏,从而输给芯片产生相应的占空比,再输出。
3、DAC0832的模块
其八位数据输入接MSP430的八位数据输出,通过Iout1端口输出。
使能端与430相连,电源接12V。
Iout2接地,f不接。
4、放大模块
采用了反向放大电路,电源输入电压是12伏,放大了5倍左右。
同时在放大电路前并联一个滑动变阻器100K,通过它来调节整个DAC对应的输出负载电阻,也就可以达到改变电压的幅度的目的。
效果如下(由于该方波是2KHz的方波,频率较高因此边沿看上去不垂直):
5、直流偏置
采用反向加法电路通过改变直流的接入电阻调节直流电压的大小。
图如下,u1为放大之后的输入,u2为-12伏的电压。
R1,3,6都是5K的电阻,R2位100k的电位器。
则Uout1=12*5/R2-U1,这就达到了直流偏置的效果。
效果见下图:
五、
软件程序设计
1、设计指标与功能
(1)波形产生和切换。
正弦波、三角波和方波依次切换,采样点均为100个。
(2)频率调节。
从5Hz到2000Hz可调,步进5Hz,一共400个有效频率点。
(3)占空比调节。
从20%到83%平滑可调,使用ADC10连续采集滑动变阻输出电压实现。
2、软件模块介绍
(1)变量及宏定义
#defineSWITCH_SIG_TYPE(BIT0).,78,75};
.};
.};
ADC10CTL0|=ADC10ON;//打开ADC10
}
主程序循环如下,采集数据到占空比的转换算法为右移4位再加20:
while
(1){
ADC10CTL0&=~ENC;//关闭采样使能
while(ADC10CTL1&ADC10BUSY);//检测是否忙
ADC10CTL0|=ENC+ADC10SC;//打开采样使能,开始转换
while(ADC10CTL1&ADC10BUSY);//检测是否忙
intadc_data=ADC10MEM;//读取数据
duty_circle=(adc_data>>4)+20;
//占空比限制在20(20%)~83(83%)之间
//采集到的数据是0~1023
//右移四位就是0~63
//加20就是20~83
//总采样点数是100点
//占空比就是20/100=20%~83/100=83%之间
}
(2)端口I/O与中断
MSP430有P1、P2一共十六个通用IO口。
其功能分配如下
端口
功能
I/O方向
–
输出8位数据到DAC
输出
按键中断,切换波形
输入
按键中断,增加频率
输入
按键中断,减小频率
输入
DAC的WR信号
输出
ADC10的模拟输入口
输入
主要初始化端口方向、功能以及中断,程序如下:
voidinit_port_io(void){
P2DIR=P2_OUT_PORTS;//设置输出端口~
P2REN=0x00;//不使用上/下拉电阻
P2SEL=0x00;//端口的功能为IO
P2SEL2=0x00;//端口的功能为IO
P1DIR&=P1_IN_PORTS;//输入
P1DIR|=P1_OUT_PORTS;//输出给DACWR
P1REN=0x00;
P1SEL=0x00;
P1SEL2=0x00;
}
voidinit_port_interrupt(void){
P1IES|=P1_INTERRUPT;//相应位置1表示下降沿触发
P1IE|=P1_INTERRUPT;//输入位中断使能
P1IFG&=~P1_INTERRUPT;//清除标志位
}
五、功能实现
1、波形输出及切换
波形的输出主要靠定时器周期性触发中断,然后将波形值数组中的值依次循环写到P2上。
流程图如下:
波形切换靠按键中断以及改变波形类型标志变量curr_signal_type实现,流程图如下:
获得如下结果:
2、频率调节
波形的频率调节通过改变计时器初值TACCR0来实现,所需的频率计算公式为
波频率=CPU时钟频率/(采样点数*定时器初值)
流程图如下:
为了能够使得频率可达到2000Hz,需要适当减小采样点数。
在没有实现最大2000Hz时,采样电视为200点,将点数减少到100点,并适当减小DAC的WR信号的宽度,以达到在更高速的情况下能够将数据写入DAC。
结果如下。
产生5Hz的正弦波:
产生的正弦波
3、占空比调节
占空比的调节主要靠ADC10采集电位器输入电压并按照一定的算法算出高电平持续的点数duty_circle来表示占空比。
采集转换的流程图如下
相应的产生方波的逻辑为:
20%占空比:
80%占空比:
六、问题及解决方案
1、三角波和方波没有波形
最开始三角波的每一个采样点的值是由程序计算出来的,程序如下所示:
case1:
//triangle
if(point_now P1OUT=(uchar)(point_now); }else{ P1OUT=(uchar)(TOTAL_SAMPLING_POINTS-point_now-1); } break; case2: //box if(point_now P1OUT=(uchar) (1); }else{ P1OUT=(uchar)(0); } break; 观察到的方波和三角波的频率非常低,几乎无法形成波形,可能的原因是是由于在中断服务程序里进行计算以及类型转换比较耗时,将三角波的采样点值写入一个数组即可解决问题。 2、方波波形输出效果欠佳 示波器在AC档时方波不水平,将示波器的调到DC档即解决问题。 3、波形有大量白噪声 LM384放大器的热噪声严重,换用OP07后得以解决。 4、三角波和正弦波输出波形不够美观 未能解决。 首先排除了程序采样点误差的可能性。 其次可能是因为REF102的电压不稳,REF102的接法采样电流转电压的方案,而这种方案可能有一定的缺陷,但是并未证实。 最后可能是DAC本身的输出不够稳定,在最后几天焊板子之前并没有换DAC来证实这一猜想,因此也无法确实是否是DAC本身的原因导致这一现象。 七、结束语 可以说,本次课程设计是三年以来最困难的一个综合实验性任务。 在理论知识方面,用到了包括模拟电子电路,微机原理与接口技术,C语言等诸多课程中所学到的知识;在动手操作方面,电路连接需要仔细而耐心,需要先从面包板上分模块拼搭电路进行调试,再将电路焊接到PCB板上并确保其工作正常。 在最初的电路设计上小组就已经举步维艰,需要阅读全英文版本的漫长的包括MSP430,REF102和DAC0832这三个器件的数据手册。 经过两个下午的努力研读,才有了大概的思路,设计出了第一个版本的电路,软件部分也有了雏形。 然而在测试之后果然如我们所料,并不能输出波形。 接下来就是漫长而艰涩的调试和改进的过程。 期间多次遇到波形不能正常输出的问题,以及输出效果不理想的问题。 波形能够输出之后,又加上了输出幅度可调,方波占空比可调,频率向上向下连续可调等功能,并将频率范围提升至5~2000Hz。 整个过程持续的时间最长,占到大约5天时间,虽然这个过程漫长而艰涩,但是每天都能让电路有所改进,都能为整个系统添加上一些前一天所没有的功能,也让我们保持着对于整个课程的信心,在不断进步的喜悦中继续努力实现更多功能,改进输出波形。 由于调试过程占用时间较多,我们决定冒险将面包板各个模块一次性焊接到PCB板上以节约时间。 为避免转移至PCB板之后出现问题,我们特意事先详细画出了电路的布线图。 用不到一个下午的时间,整个电路全部焊接到PCB板上。 但是出乎我们意料的是,再次出现了波形不能成功输出的问题。 经过仔细检查,发现是电路部分导线和元件(电阻)与各引脚之间的连接出现了问题。 最终,我们加班两个小时,除正弦波三角波显示效果略有缺陷之外,终于完美实现了所有功能。 奈何验收当天还是出现了一些小插曲,前一天傍晚明明能稳定输出的波形,验收时突然就出现了轻微抖动的情况。 排查了一段时间之后,依然没能找出问题所在,最终还是选择放弃,成为整个课程设计最后结果中的小小遗憾。 附: 程序全部代码 #include<> #defineSWITCH_SIG_TYPE(BIT0)// #defineADD_FREQ(BIT1)// #defineSUB_FREQ(BIT2)// #defineDAC_WR(BIT3)// #defineADC10_IN_PORT(BIT4)// #defineP1_IN_PORTS~(SWITCH_SIG_TYPE+ADD_FREQ+SUB_FREQ+ADC10_IN_PORT) #defineP1_OUT_PORTSDAC_WR//3: DACWR #defineP1_INTERRUPT(SWITCH_SIG_TYPE+ADD_FREQ+SUB_FREQ) #defineP2_OUT_PORTS(0xff)//DACdatain #defineTOTAL_SAMPLING_POINTS100 #defineMAX_FREQ_STEPS400 #defineENABLE_WR_PORTP1OUT&=~DAC_WR//WR->0 #defineDISABLE_WR_PORTP1OUT|=DAC_WR//WR->1 #definewrite_dac(data)P2OUT=data//writetoDAC #defineucharunsignedchar #defineuintunsignedint uintcurr_signal_type; inttccr0_now; uintccr0_idx; ucharpoint_now; intpush_key; intduty_circle; constlongtccr0_table[MAX_FREQ_STEPS]={ 32000,16000,10666,8000,6400,5333,4571,4000,3555,3200,2909,2666,2461,2285,2133,2000,1882,1777,1684,1600,1523,1454,1391,1333,1280,1230,1185,1142,1103,1066,1032,1000,969,941,914,888,864,842,820,800,780,761,744,727,711,695,680,666,653,640,627,615,603,592,581,571,561,551,542,533,524,516,507,500,492,484,477,470,463,457,450,444,438,432,426,421,415,410,405,400,395,390,385,380,376,372,367,363,359,355,351,347,344,340,336,333,329,326,323,320,316,313,310,307,304,301,299,296,293,290,288,285,283,280,278,275,273,271,268,266,264,262,260,258,256,253,251,250,248,246,244,242,240,238,237,235,233,231,230,228,226,225,223,222,220,219,217,216,214,213,211,210,209,207,206,205,203,202,201,200,198,197,196,195,193,192,191,190,189,188,187,186,184,183,182,181,180,179,178,177,176,175,174,173,172,172,171,170,169,168,167,166,165,164,164,163,162,161,160,160,159,158,157,156,156,155,154,153,153,152,151,150,150,149,148,148,147,146,146,145,144,144,143,142,142,141,140,140,139,139,138,137,137,136,136,135,135,134,133,133,132,132,131,131,130,130,129,129,128,128,127,126,126,125,125,125,124,124,123,123,122,122,121,121,120,120,119,119,118,118,118,117,117,116,116,115,115,115,114,114,113,113,113,112,112,111,111,111,110,110,109,109,109,108,108,108,107,107,107,106,106,105,105,105,104,104,104,103,103,103,102,102,102,101,101,101,100,100,100,100,99,99,99,98,98,98,97,97,97,96,96,96,96,95,95,95,94,94,94,94,93,93,93,93,92,92,92,91,91,91,91,90,90,90,90,89,89,89,89,88,88,88,88,87,87,87,87,86,86,86,86,86,85,85,85,85,84,84,84,84,83,83,83,83,83,82,82,82,82,82,81,81,81,81,81,80,80,80,78,75}; //cpu_freq //ccr0=----------------------------------- //sig_freq*total_sampling_points constuchar sin_data[TOTAL_SAMPLING_POINTS]={127,135,143,151,159,167,174,182,189,196,203,209,215,221,226,231,235,239,243,246,249,251,253,254,254,254,254,253,252,250,247,245,241,237,233,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京邮电大学课设 基于MSP430的简单信号发生器的设计 北京邮电 大学 基于 MSP430 简单 信号发生器 设计