CCS5.1 及 MSP430 应用实例研究 利用 CCS5.1 开发 MSP-EXP430G2 LaunchPad 实验板样例程序 成员名单 : 姚文捷提高 0901 班 U200914972 许铖提高 0901 班 U200913784 指导老师 : 左芷蘅提高 0901 班 U200913637 汪小燕 美国德州仪器半导体技术上海 ( 有限 ) 公司 华中科技大学 Analog&MSP430 联合实验室 2012 年 6 月
目录 利用 CCS5.1 开发 MSP-EXP430G2 LaunchPad 实验板样例程序... 1 1. MSP-EXP430G2 LaunchPad 实验板简介... 3 1.1 概述... 3 1.2 安装... 3 2. MSP-EXP430G2 LaunchPad 实验板结构... 4 2.1 实验板组成基本介绍... 4 2.2 仿真器与相连目标器件之间的连接简单介绍... 6 2.3 LaunchPad 与扩展板的连接简单介绍... 6 2.4 连接晶体振荡器... 7 3. MSP-EXP430G2 LaunchPad 实验板使用说明 ( 简单的走马灯实验 )... 7 3.1 开始使用... 7 3.2 演示程序 ( 走马灯 )... 7 2
1. MSP-EXP430G2 LaunchPad 实验板简介 1.1 概述 名为 LaunchPad 的 MSP-EXP430G2 低成本试验板是一款适用于 TI 最新 MSP430G2xx 系列产品的完整开发解决方案 其基于 USB 的集成型仿真器可提供为全系列 MSP430G2xx 器件开发应用所必需的所有软 硬件 LaunchPad 具有集成的 DIP 目标插座, 可支持多达 20 个引脚, 从而使 MSP430 Value Line 器件能够简便地插入 LaunchPad 电路板中 此外, 其还可提供板上 Flash 仿真工具, 以直接连接至 PC 轻松进行编程 调试和评估 LaunchPad 试验板还能够对 ez430-rf2500t 目标板 ez430-chronos 手表模块或 ez430-f2012t/f2013t 目标板进行编程 此外, 它还提供了从 MSP430G2xx 器件到主机 PC 或相连目标板的 9600 波特 UART 串行连接 MSP-EXP430G2 采用 IAR Embedded Workbench 集成开发环境 (IDE) 或 Code Composer Studio (CCS) 编写 下载和调试应用 调试器是非侵入式的, 这使用户能够借助可用的硬件断点和单步操作全速运行应用, 而不耗用任何其他硬件资源 MSP-EXP430G2 LaunchPad 特性 : USB 调试与编程接口无需驱动即可安装使用, 且具备高达 9600 波特的 UART 串行通信速度 支持所有采用 PDIP14 或 PDIP20 封装的 MSP430G2xx 和 MSP430F20xx 器件 分别连接至绿光和红光 LED 的两个通用数字 I/O 引脚可提供视觉反馈 两个按钮可实现用户反馈和芯片复位 器件引脚可通过插座引出, 既可以方便的用于调试, 也可用来添加定制的扩展板 高质量的 20 引脚 DIP 插座, 可轻松简便地插入目标器件或将其移除 1.2 安装 安装 MSP-EXP430G2 LaunchPad 时包含三个简单步骤 : 先下载所需软件, 市面上有多种不同的开发软件工具都适用于 MSP-EXP430G2 LaunchPad 开发板 IAR EmbeddedWorkbench KickStart 和 Code Composer Studio (CCS) 都具有免费的限制版本 IAR EmbeddedWorkbench 允许编译 4kB 的 C 代码 CCS 仅限于处理 16kB 的代码 用于 MSP430 的众多其他编译器和集成开发环境 (IDE), 如 Rowley Crossworks 和 MSPGCC 等也可与 MSP-EXP430 LaunchPad 协同使用 然后安装一个集成开发环境 (IDE) IAR KickStart 和 CCS 可提供与 MSP-EXP430 LaunchPad 板上仿真功能协同使用时所需的驱动程序支持 完成安装后,IDE 应该会发现作为 USB:HID 调试接口的 MSP-EXP430G2LaunchPad 现在, 已为在 LaunchPad 上开发基于 MSP430G2xx 的应用完成了所有设置 最后将硬件连接至 PC 将附带 USB 线缆的 EXP430G2 LaunchPad 目标板连接至 PC 将自动开始安装驱动 如果出现提示, 要求提供软件, 则允许 Windows 自动安装该软件 仅当已安装 IAR KickStart 或 Code Composer Studio 后才能这样做 3
2. MSP-EXP430G2 LaunchPad 实验板结构 本小节主要介绍实验板结构 实验板如下图所示 : Get started in minutes 1. Integrated Flash Emulation tool 2. USB-powered(cable incl.) 3. Program any MSP430 Value Line device,ez430 Target board, or Spy Bi-Wire enabled MSP430 device Easily evaluable & program devices 1. Up to 20-pin DIP socketed target board 2. Drop-in any MSP430 Vaule Line device 3. Pre-programmed MSP430 Value Line MCU included Rapid Prototyping 1. Access to all MSP430 Value Line pins 2. Easy interface for External components Boards 3. 2 programmable Pushbuttons&LEDs 2.1 实验板组成基本介绍 图 1.MSP-EXP430G2launchpad Launchpad 实验板分成两个部分, 一部分为仿真器另一部分为 MSP-EXP430G2 开发板 如图 1, 其中仿真器部分重要的是 USB 仿真接口, 而在 MSP-EXP430G2 开发板区域, 从左上角开始逆时针观察, 分别为芯片输出引脚接口,P1.3 按钮, 两盏 LED 灯, 跳线 P1.0 和 P1.6, 复位按钮, 电源接口, 晶振以及用于连接其它 4
目标板的 6 引脚 ez430 接口, 开发板正中间为芯片插槽, 它适用于 14 或 20 引脚两种类型的 MSP430G2 芯片 开发板上 MSP430G2 系列芯片的所有引脚都被外置, 分布在开发板的两边, 方便外接设备 与此同时, 每个引脚旁边都有对应的数字标号, 而且部分引脚标号旁会有其功能的简单介绍 例如 P1.0 与 LED1 相连,P1.1 与 UART 接收数据输入线相连 P1.2 与 UART 传输数据输出线相连 而 P1.3 与开关 S2 相连 在另一边,P1.6 与 LED2 相连,RST 与复位按钮相连 图 2.MSP-EXP430G2 LaunchPad 概览 1 图 3.MSP-EXP430G2 LaunchPad 概览 2 5
2.2 仿真器与相连目标器件之间的连接简单介绍 MSP-EXP430G2 仿真器与相连目标器件之间的连接可通过跳线组 J3 来断开 通过断开 Spi-Bi-Wire JTAG 线路 RST 和 TEST, 可以很方便的把 JTAG 线路用于其 他应用, 方便地连接其他 ez430 目标板 此外, 跳线 J3 还可用于测量 LaunchPad 应用的功耗 为此, 必须断开所有跳线, 且通过万用表连接 VCC 以测量 MSP-EXP430G2 目标器件及其外设的功耗 若 LaunchPad 板使用外部电源通过 J6 供电, 则通过 J6 的 VCC 引脚测量电压 表 1. 仿真器和目标之间的跳线连接 J3 跳线 信号 说明 1 TEST JTAG 的测试引脚 /Spy-Bi-Wire 测试时钟输入 2 RST 复位 /Spy-Bi-Wire 测试数据输入 / 输出 3 RXD UART 接收数据输入 4 TXD UART 传输数据输出 5 VCC 目标插座电源电压 ( 功耗测试跳线 ) 2.3 LaunchPad 与扩展板的连接简单介绍 图 4. 已连接 ez430-rf2500 目标板的 MSP-EXP430G2 LaunchPad MSP-EXP430G2 LaunchPad 可对 ez430-rf2500t 目标板 ez430-chronos 手表模块或 ez430-f2012t/f2013t 进行编程 要连接某一 ez430 目标, 必须在连接器 J4 中插入一个 0.050 英寸 (1.27 毫米 ) 间距的排针以连接目标板 若要在不干扰 LaunchPad 目标板的情况下为相连的目标板进行编程, 必须断开 J3 的跳线连接的 TEST 和 RST, 将 ez430 目标板的接口与 MSP-EXP430G2 仿真器相连接 只有在未同时连接 ez430 目标板的情况下, 才有可能对连接的 LaunchPad 目标器件进行编程和调试 另一方面, 将应用 UART 直接连接到 LaunchPad 目标器件, 而且可闭合跳线 J3 以监控从 LaunchPad 目标到所连接 ez430 的传输情况 通过这种方法, 可以在不更改 UART 引脚方向的情况下建立两种可能的连接, 即从器件到 PC 以及从器件到 ez430 6
J1/ J2 和 J6 处预留 0.1 英寸 (2.54 毫米 ) 排针焊接脚位, 能够方便且以极低成本实现电路试验板的扩展 附属电路板可通过 J1 J2 和 J6 访问 LaunchPad 目标器件的所有信号引脚 附属板既可以自带芯片且将 LaunchPad 用作纯粹的编程接口, 也可与插入到 LaunchPad 插座中的芯片协同工作 MSP-EXP430G2 LaunchPad 套件包括四个 10 引脚的 PCB 连接器 ( 两个插头和两个插座 ), 能够快速使用第一个扩展板启动工作 2.4 连接晶体振荡器 MSP-EXP430G2 LaunchPad 为各种晶体振荡器提供焊接脚位 LFXT1 振荡器的 XIN 和 XOUT 信号能够支持低频振荡器, 如 32768 Hz 的手表晶振或范围不超过相关联数据表中规格的标准晶振 另外, 信号线路 XIN 和 XOUT 还可用作通用 I/O 或数字频率输入 如欲了解有关低频振荡器及晶振选择的更多信息, 敬请查阅 MSP430x2xx 系列用户指南 (SLAU144) 或器件专用的产品说明书 振荡器信号被连接到连接器 J2 以便在相连的应用电路板上使用这些信号 若因振荡器信号的信号失真导致基本时钟模块中的指示出现故障, 可使用电阻 R29 和 R28 将排针 J2 从振荡线路上断开 如欲了解有关 MSP-EXP430G2 LaunchPad 的最新信息及所有必要文件, 敬请访问 MSP430 LaunchPadWiki 页面 http://processors.wiki.ti.com/index.php/msp430_launchpad_(msp-exp430g2) 此外, 该页面还提供软件范例 有关所支持软件的更多详情以及如何订购 MSP-EXP430G2 LaunchPad 等信息 3. MSP-EXP430G2 LaunchPad 实验板使用说明 ( 简单的走马灯实 验 ) 3.1 开始使用 首次使用 MSP-EXP430G2 LaunchPad 试验板时, 演示应用将在该板从 USB 主机获得供电时立即自动启动 要启动演示, 请使用附带的 Mini USB 线缆将 MSP-EXP430G2 LaunchPad 连接至空闲的 USB 端口 演示应用启动后,LED 将交替变亮以指明器件启动 板上仿真线路将产生供电电压, 而且所有必需的信号都启动 3.2 演示程序 ( 走马灯 ) 3.2.1 实验环境 :Windows 7,Code Composer Studio v5 3.2.2 实验硬件 :MSP-EXP430G2 LaunchPad,MSP430G2553 芯片 3.2.3 实验步骤 : 7
1. 进行实验我们首先需要在电脑上安装 Code Composer Studio v5 如果没有, 可以在 TI 官网上下载的到 : http://processors.wiki.ti.com/index.php/download_ccs 2. 相应 IDE 安装好后, 运行 Code Composer Studio v5 它的初始界面如下 : 图 5. Code Composer Studio V5 初始界面 3. 运行 File > New > CCS Project 开始新建工程 填入工程名如 : msp430lanuchpad-demo 然后在 Device 下选择 MSP430 Family,MSP430Gxxx Family,MSP430G2553 芯片 最后在工程中选空工程, 并点击 Finish 如下图所示 : 8
图 6. 新建指定工程 4. 建立工程后, 我们需要修改源文件名后缀为 cpp, 以使用部分 C++ 特性 按如下方式进行 : 在左侧 Project Explorer 栏, 右键点选 main.c, 选择 Rename 并在弹出的对话框中将文件名修改为 main.cpp 图 7. 修改文件后缀为 cpp 5. 在 main.cpp 文件中敲入如下代码, 并保存 #include <msp430g2553.h> void setled1(bool light); 9
void setled2(bool light); void toggleled1(); void toggleled2(); volatileboolison; // Store whether LED is ON int main(void){ WDTCTL = WDTPW + WDTHOLD;// Stop watchdog timer P1DIR = BIT0;// Set P1.0 to output direction P1DIR = BIT6;// Set P1.6 to output direction setled1(true);// Turn on LED1 setled2(false);// Turn off LED2 P1IE = BIT3;// Enable interrupt from P1.3 ison=true; enable_interrupt(); for(;;){ if(ison){ toggleled1();// Change LED1 toggleled2();// Change LED2 delay_cycles(100000); // SW Delay of 10000 cycles at 1Mhz return0; void setled1(bool light){ light? P1OUT = BIT0:P1OUT &=~BIT0; void setled2(bool light){ light? P1OUT = BIT6:P1OUT &=~BIT6; void toggleled1(){ P1OUT ^= BIT0;// Toggle P1.0 using exclusive-or void toggleled2(){ P1OUT ^= BIT6;// Toggle P1.6 using exclusive-or // Port 1 interrupt service routine #pragma vector=port1_vector interrupt void Port_1(void){ if(ison){ setled1(false); setled2(false); else{ setled1(true); setled2(false); ison=!ison; P1IFG &=~BIT3;// P1.3 IFG cleared 6. 点击按钮进行编译, 得到如下结果 : 10
图 8. 编译成功 7. 点击右上角按钮进入 Debug 模式 如图所示 : 图 9. 进入 debug 模式 8. 点击将程序上载到目标板 MSP-EXP430G2 LaunchPad, 再点击取消 断点调试 可见目标板上的两个 LED 灯来回闪烁, 通过按钮 S2 可以切换开始闪烁或停止闪烁两种模式 图 10. 实验结果 11