MSPEXP430G2入门Word格式文档下载.docx

上传人:b****5 文档编号:19891332 上传时间:2023-01-11 格式:DOCX 页数:28 大小:1.97MB
下载 相关 举报
MSPEXP430G2入门Word格式文档下载.docx_第1页
第1页 / 共28页
MSPEXP430G2入门Word格式文档下载.docx_第2页
第2页 / 共28页
MSPEXP430G2入门Word格式文档下载.docx_第3页
第3页 / 共28页
MSPEXP430G2入门Word格式文档下载.docx_第4页
第4页 / 共28页
MSPEXP430G2入门Word格式文档下载.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

MSPEXP430G2入门Word格式文档下载.docx

《MSPEXP430G2入门Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MSPEXP430G2入门Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。

MSPEXP430G2入门Word格式文档下载.docx

板上材料清单

开发板指示图

(2)主要功能模块:

⏹复位模块

⏹时钟模块

⏹I/O端口模块;

⏹WDT看门狗模块;

⏹TimerA定时器模块

⏹比较器A模块

⏹ADC10数模转换模块

⏹USART串行异步通讯模块

⏹CPU模块

⏹实验班成本低、低功耗

⏹USB调试与编程接口无需驱动即可安装使用,且具备高达9600波特的UART串行通信速度

⏹支持所有采用PDIP14或PDIP20封装的MSP430G2XX和MSP430F20XX器件

⏹分别连接至绿光和红光LED的两个通用数字I/O口引脚可提供视觉反馈

⏹两个按钮可实现用户反馈和芯片复位

⏹器件引脚可通过插座引出,既可以方便的用于调试,也可用来添加定制的扩展板

⏹高质量的20引脚DIP插座,可轻松简便地插入目标器件或将其移除

(三)LaunchPad电路图

LaunchPad原理图见“【LaunchPad】开发板介绍.pdf”。

3.MSP430G2553数据资料

G2553是LaunchPad的主要芯片,其数据资料详见“G2553中文资料.pdf”。

安装MSP-EXP430G2LaunchPad包含三个步骤:

(1)下载所需软件:

通常选IAR或者CCS。

(2)安装选定的IDE:

下载一个集成开发环境(IDE),IAR或者CCS,安装(编译部分有详细介绍)。

(3)将LaunchPad连接至PC:

将附带USB线缆的EXP430G2LaunchPad目标板连接至PC。

如果出现提示,要求提供软件,则允许Windows自动安装该软件。

注意,仅当已经安装了IARKickStart或CodeComposerStudio后才能这样做。

开发LaunchPad通常选用CCS(CodeComposerStudio)或者IAR(IAREmbeddedWorkbenchIDE)作为编译软件。

前者是TIDSP的官方软件,功能强大;

后者在论坛的人气更高。

选择IAR作为编译软件操作系统:

Windows7开发环境:

IARFORMSP430V5.30.1

第一步:

驱动安装。

IARFORMSP430V5.30.1软件已集成LaunchPad驱动,安装好IAR再将LaunchPad与电脑连接,等待驱动安装完毕即可。

如果不成功通常是电脑与板子连接不好。

第二步:

建立工程。

双击图标

打开工程,点击工具栏上方的File-New-Workspace,新建工作组,再点击工具栏Project-CreatNewProject,转到如图

 

接着点击如图所示

然后会提示你保存工程文件,存在事先建好的文件夹内。

选择C–main,这里也可选择Emptyproject,选择前者则会自动新建一个main.c文件,并且把它加入到工程中。

给指定一个文件,并且把它加入到工程中,给指定的工程名称msp430中。

点击make编译,确认无错误。

第三步:

配置。

上面无错误的话,在工程名msp430上右键选择第一项,Options–GeneralOptions–Targets–Device,如图芯片类型选择msp430g2553(视开发板上的主芯片定)。

再选择Link–Output,勾上如图所示,

再选择Debugger–Setup–Driver,选择FETDebugger,

再点击下面的FETDebugger,设置成如下图所示,

点击OK完成。

第四步:

编译下载。

接着上面的步骤点击工具栏中间

DownloadandDebug,这样就可以将程序下载到班子上了,同时软件也进入了仿真界面。

若最后如图所示,则说明板子未连接好。

4.编程规则(MSP430编程规则.pdf)

2.基础应用程序(历程代码文件夹)

⏹首次使用:

首次使用MSP-EXP430G2LaunchPad实验板时,演示应用将在该板从USB主机获得供电时立即自动启动。

使用自带的MiniUSB线缆将MSP-EXP430G2LaunchPad连接至空闲的USB端口。

演示应用启动后,LED将交替变亮以指明器件启动。

⏹演示应用——内部温度测量:

LaunchPad实验板包括一个预烧录程序的MSP430G2553器件。

实验板启动后,按下P1.3可将应用切换到温度测量模式。

此模式开始会显示一个参考温度,LaunchPad信号的LED分别通过板上红或绿光LED的亮度变化来指示温度的升或降。

通过再次按P1.3来重新对参考温度进行校准。

所收集的温度数据还可经由反向通道UART通过USB仿真电路传回PC。

传输的值表示使用MSP430G2553内部温度传感器测量的华氏温度值。

PC上的串行通信端口必须设置为2400bps、一个停止位且无控制流,才能正确显示值。

该演示应用使用了G2553器件的片上外设,例如10位ADC用于对内部温度传感器进行采样,而16位定时器用于驱动PWM以改变LED亮度并启动软件UART以与PC进行通信。

这一预加载的演示应用源代码可从MSP430LaunchPadwiki页面的“项目”板块进行下载。

⏹由于MSP–EXP430G2套件有两个单片机——G2553和G2452,其中,G2452没有预烧录程序,所以此处的应用举例部分以G2452单片机为例。

(一)实验准备:

①基于MSP430G2452内置温度传感器的温度检测程序(见附录);

②搭建编译环境、用USB将LaunchPad与PC连接安装相关驱动程序;

③由于显示温度的GUI要求PC安装JAVA的一个组件,所以要保证PC上有JAVA程序——安装JAVA程序;

④获得温度显示GUI——官网下载或者光盘自带或者网上查找下载等方式获得。

(二)程序编译、烧录,参照第二部分第3步。

注意将温度检测程序添加到项目里面。

(三)演示:

①用USB将LaunchPad与PC相连,查看实验板分配串口。

此处分

配串口为COM8;

②若实验板的LED1和LED2分别闪烁红、绿光,则开发板启动正常,此时打开MSP430温度检测GUI:

由于此次示例实验板分配的串口为COM8,所以输入数字1选择串口,回车,温度检测显示界面如图:

所示温度是华氏度。

摄氏度=(华氏度-32)*5/9。

⏹MSP-EXP430G2实验板可通过仿真器的J4中插入1.27毫米间距的排针与eZ430目标板进行连接

⏹MSP-EXP430G2仿真器与相连目标器件(eZ430目标板)的连接可用跳线组J3断开

⏹通过断开Spi-Bi-WireJTAG线路RST和TEST,可以很方便地把JTAG线路用于其它应用,方便连接其它eZ430目标板。

⏹MSP-EXP430G2LaunchPad可对eZ430-RF2500T目标板、eZ430-Chronos手表模块、eZ430-F2012T/F2013T进行编程

⏹要在不干扰LaunchPad目标板的情况下为相连的目标板进行编程,则必须断开J3的跳线连接的RST和TEST,将eZ430目标板的接口与MSP-EXP430G2仿真器相连接

⏹只有在未同时连接eZ430目标板的情况下才能对连接的LaunchPad目标器件进行编程和调试

⏹将UART直接连接到LaunchPad目标器件,闭合跳线J3,可以监控从LaunchPad目标到所连接eZ430的传输情况。

通过这种方法,可以在不更改UART引脚方向的情况下建立两种可能的连接,即从器件到PC以及从器件到eZ430

调试接口J4的引脚分配

⏹LaunchPad的J1/J2和J6处预留了2.54毫米(0.1英寸)的排针焊接脚位,能够以极低成本实现电路实验板的扩展

⏹卫星电路板可通过J1、J2和J6访问LaunchPad目标器件的所有引脚信号

⏹卫星板既可以自带芯片且将LaunchPad用作纯粹的编程接口,也可与插入到LaunchPad插座中的芯片协同工作

⏹LaunchPad和eZ430目标板之间连接器的器件型号:

排针:

Mill-Max850-10-006-20-001000

插座:

Mill-Max851-93-006-20-001000

TI可提供多种采用PDIP封装且与LaunchPad兼容的MSP430器件:

附录——基于MSP430G2452内置温度传感器的温度检测程序:

#include"

msp430g2452.h”

#defineLED1BIT0//绿灯,BIT0,BIT6之类的是宏定义,请在头文件"

msp430g2452.h"

中查看

#defineLED2BIT6//红灯,参见MSP-EXP430G2LaunchPadExperimenterBoardUser'

sGuide

#defineLED_DIRP1DIR

#defineLED_OUTP1OUT

#defineBUTTONBIT3//P1.3为板上按键S2

#defineBUTTON_OUTP1OUT//端口输出寄存器

#defineBUTTON_DIRP1DIR//端口方向控制寄存器

#defineBUTTON_INP1IN//端口输入寄存器

#defineBUTTON_IEP1IE//端口中断允许寄存器

#defineBUTTON_IESP1IES//端口中断触发沿控制寄存器

#defineBUTTON_IFGP1IFG//端口中断标志寄存器

#defineBUTTON_RENP1REN//端口上下拉电阻使能控制寄存器

#defineTXDBIT1//TXDonP1.1

#defineRXDBIT2//RXDonP1.2

#defineAPP_STANDBY_MODE0//待机模式标志,也就是接上电源(或USB)后红绿灯交替闪的状态

#defineAPP_APPLICATION_MODE1//应用模式标志,也就是待机模式时按按键后进入的状态,也就是测量温度

#defineTIMER_PWM_MODE0

#defineTIMER_UART_MODE1//串口模式状态

#defineTIMER_PWM_PERIOD2000

#defineTIMER_PWM_OFFSET20

#defineTEMP_SAME0

#defineTEMP_HOT1

#defineTEMP_COLD2

#defineTEMP_THRESHOLD5

//Conditionsfor9600/4=2400BaudSWUART,SMCLK=1MHz

#defineBitime_50x05*4//~0.5bitlength+smalladjustment

#defineBitime13*4//0x0D

#defineUART_UPDATE_INTERVAL1000//主循环次数进行一次串口发送温度值

unsignedcharBitCnt;

unsignedcharapplicationMode=APP_STANDBY_MODE;

//功能模式标志,初始值为待机模式

unsignedchartimerMode=TIMER_PWM_MODE;

unsignedchartempMode;

unsignedcharcalibrateUpdate=0;

unsignedchartempPolarity=TEMP_SAME;

unsignedintTXByte;

/*Usingan8-valuemovingaveragefilteronsampledADCvalues*/

longtempMeasured[8];

//定义数组以计算8次10位ADC温度采样的平均值

unsignedchartempMeasuredPosition=0;

//温度测量值数组索引

longtempAverage;

//8次10位ADC温度采样的平均值

longtempCalibrated,tempDifference;

voidInitializeLeds(void);

//IO端口初始化,设置两颗LED对应的端口并两设置为熄灭初始状态

voidInitializeButton(void);

//IO端口初始化,配置按键

voidPreApplicationMode(void);

//进入待机模式,红绿灯交替闪,等待按键BlinksLED,waitsforbuttonpress

voidConfigureAdcTempSensor(void);

//配置温度传感器模数转换

voidConfigureTimerPwm(void);

//配置定位器为PWM模式

voidConfigureTimerUart(void);

//配置定时器为Uart模式

voidTransmit(void);

//串口发送子程序

voidInitializeClocks(void);

//初始化时钟系统

voidmain(void)

{

unsignedintuartUpdateTimer=UART_UPDATE_INTERVAL;

//主循环次数进行一次串口发送温度值

unsignedchari;

WDTCTL=WDTPW+WDTHOLD;

//停止看门狗StopWDT

InitializeClocks();

InitializeButton();

//配置按键

InitializeLeds();

//设置端口并两设置两颗LED对应为熄灭初始状态

PreApplicationMode();

//进入待机模式,红绿灯交替闪,等待按键BlinksLEDs,waitsforbuttonpress

//执行PreApplicationMode()将进入低功耗模式,程序停止在此,直到有按键按下

/*进入应用模式ApplicationModebegins*/

applicationMode=APP_APPLICATION_MODE;

//功能模式标志变成应用模式

ConfigureAdcTempSensor();

ConfigureTimerPwm();

//配置定位器PWM模式

__enable_interrupt();

//使能全局中断Enableinterrupts.

/*MainApplicationLoop*/

while

(1)

{

ADC10CTL0|=ENC+ADC10SC;

//ADC使能,ADC开始转换一次Samplingandconversionstart

__bis_SR_register(CPUOFF+GIE);

//进入省电模式LPM0,等待AD转换完成中断LPM0withinterruptsenabled

/*Movingaveragefilteroutof8valuestosomewhatstabilizesampledADC*/

tempMeasured[tempMeasuredPosition++]=ADC10MEM;

//将温度采样值存入温度值数组下一位

if(tempMeasuredPosition==8)

tempMeasuredPosition=0;

复位温度采样值数组索引

tempAverage=0;

for(i=0;

i<

8;

i++)

tempAverage+=tempMeasured[i];

//累加温度采样值数组各值

tempAverage>

>

=3;

//除以8得到平均值Divideby8togetaverage

if((--uartUpdateTimer==0)||calibrateUpdate)//如果主循环了UART_UPDATE_INTERVAL次或者参考温度按键按过

{

ConfigureTimerUart();

if(calibrateUpdate)

TXByte=248;

//Acharacterwithhighvalue,outsideoftemprange

Transmit();

//串口发送值248表示按键按下进行了校准参考

calibrateUpdate=0;

//复位参考温度校准标志变量

}

TXByte=(unsignedchar)(((tempAverage-630)*761)/1024);

//计算温度华氏值

//串口发送华氏温度值

uartUpdateTimer=UART_UPDATE_INTERVAL;

//复位循环计数变量

//配置定时器回PWM模式

}

tempDifference=tempAverage-tempCalibrated;

//计算相对于参考温度的差值

if(tempDifference<

-TEMP_THRESHOLD)//如果采样温度值低于参考温度值差值TEMP_THRESHOLD

tempDifference=-tempDifference;

//差值取正

tempPolarity=TEMP_COLD;

//极性变量设为值TEMP_COLD

LED_OUT&

=~LED1;

//LED1绿灯置灭

else

if(tempDifference>

TEMP_THRESHOLD)//如果采样温度值高于参考温度值差值TEMP_THRESHOLD

tempPolarity=TEMP_HOT;

=~LED2;

//LED2红灯置灭

else//如果相对于参考温度值偏差没有超过阈值TEMP_THRESHOLD

tempPolarity=TEMP_SAME;

//性变量设为值TEMP_SAME

TACCTL0&

=~CCIE;

//关TACCTL0中断使能

TACCTL1&

//关TACCTL1中断使能

=~(LED1+LED2);

//置两灯皆灭

if(tempPolarity!

=TEMP_SAME)//如果相对于参考温度值偏差超过阈值TEMP_THRESHOLD

tempDifference<

<

//温度偏差值乘以8

tempDifference+=TIMER_PWM_OFFSET;

//加上一个偏置值

TACCR1=((tempDifference)<

(TIMER_PWM_PERIOD-1)?

(tempDifference):

(TIMER_PWM_PERIOD-1));

//置TACCR1,最大为TIMER_PWM_PERIOD-1。

//TACCR1值控制亮的时间,定时器计数到TACCR1在中断中将关闭灯,在TACCR0中断中亮灯

TACCTL0|=CCIE;

//开TACCTL0中断使能

TACCTL1|=CCIE;

//开TACCTL1中断使能

}//返回主循环

}

//进入待机模式,红绿灯交替闪,等待按键

voidPreApplicationMode(void)

{

LED_DIR|=LED1+LED2;

//p1.0和P1.6口为输出

LED_OUT|=LED1;

//绿灯亮ToenabletheLEDtogglingeffect

=~LED2;

//红灯灭

BCSCTL1|=DIVA_1;

//辅助时钟分频设置为2,ACLK=6KHz

BCSCTL3|=LFXT1S_2;

//辅助时钟源选择VLOCLK,12KHz//ACLK=VLO

TACCR0=1200;

//

TACTL=TASSEL_1|MC_1;

//定时器时钟源选择辅助时钟ACLK,增计数模式//TACLK=SMCLK,Upmode.

TACCTL1=CCIE+OUTMOD_3;

//捕获/比较控制寄存器1设置为比较模式,输出模式为“置位/复位”,中断允许//TACCTL1CaptureCompare

TACCR1=600;

__bis_SR_register(LPM3_bits+GIE);

//LPM0withinterruptsenabled?

低功耗模式LPM3

//此时cpu停止,等待中

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1