首页 > 评测 > 命令行Style+DIP Style——MSP-EXP430G2 Launchpad开发评测

命令行Style+DIP Style——MSP-EXP430G2 Launchpad开发评测

TI   DIP   MSP430   EXP430G2   命令行   boostpack   
  • 作者:zhanzr21
  • 来源:21ic
  • [导读]
  • MSP430可谓是经典,DIP封装的MSP430开发板更可谓是典藏之作。笔者此次就来和大家分享一下这款经典的开发板有何特色,以及在eStore购买开发板的意外之喜。

硬件原理图简析

MSP-EXP430G2原理图较为简单,几乎是一目了然.其实主要是调试器部分,比起要评估的MSP430-G2xx系列的要复杂许多.

图 原理图1

图 原理图2

图 原理图3

还有就MSP-EXP430G2有几个版本,现在能拿到的应该都是Rev1.5的,注意参考的时候不要弄错了.

MSP430 G2xxx系列的片子型号很多,只要是DIP14,DIP20的这个系列的片,都能用在这板子上.注意DIP14的片向上对齐.相比国内这板子知名度不大(因为选择很多),国外用户好像用这板子的也有不少人,所以一些参考资料也较容易找到.

我这里稍稍说一下子对16位微控制器的看法:

个人认为16位的这类产品慢慢会边缘化,因为32位的Cortex M,MIPS 24K,还有一些其他的后起之秀比如上海乐鑫用的Xtensia等等价格越来越便宜.不管是MSP430还是Microchip的dSPIC24系列,还是英飞凌的C166核,慢慢都会变成某几种大规模生产的产品的专用芯片(因为在这应用上成熟了,改成其他内核的也没有很大必要).这些厂家也都早就开始大力推32位的产品了.

当然这些只是市场上的一些变化,影响不了搞DIY的热情.想想ArduinoUno这种8位的平台还有那么多人捧场呢. 只是那种刚开始学习这一块的工程师,我建议他们直接搞32位的.32位的学了其他位宽的触类旁通.

我自己以后想在16位的芯片上跑一些算法,研究一下子几种处理器的数学性能.但是不可能放在这文章了,篇幅毕竟有限.

这里放一张MSP430系列的概览图,供大家参考.

图 MSP430系列概览

开发方式

如前所述,TI为此板子准备了几种开发方式,就是让各种口味的人都有选择.

入门风格:

· Energia(类Arduino的开发方式)

· TI CCS Cloud

专业路线:

· TI CCS IDE

· IAR MSP430

· GNU命令行工具链

Energia是TI与第三方合作推出的,跟Arduino的风.但是这个工具好久没有更新了,属于雷声大雨点小的项目.不看好以后还会更新,不管也罢.

TI CCS Cloud的概念很新潮,云端开发程序,应该说是mbed的风格.但这工具我们国内的互联网连接效果并不佳,所以也不大适合我们使用.

剩下的就是传统的开发工具,CCS与IAR都是商业工具,虽说也有免费版本,但是用功能有限制的版本,心里面多少有点不爽,尤其是有完全版本的免费工具可用的情况下.

所以本文主要使用GNU命令行工具链来开发例程.

只用下载MSP430 GCC安装包就可以了(其实是个压缩包):

http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPGCC/latest/index_FDS.html

安装过程不多说,就是选一个目录解压的过程.安装好了,该文件夹应该是这样:

图 MSP430 GCC安装好的目录

用命令行工具链开发一个程序-Blink

应该所有开发板子的第一个程序是闪灯,这是老套路了.从前面原理图可以看出板子上两个灯分别接在P1.0与P1.6下,下面开始写代码:

//***************************************************************************************

// MSP430 Blink the LED Demo - Software Toggle P1.0 & P1.6

//

// ACLK = n/a, MCLK = SMCLK = default DCO

//

// Author: zhanzr21 @ 21ic BBS

//***************************************************************************************

#include

#include

void SimpleDelay(uint32_t d)

{

volatile uint32_t i;

i = d*100;

do i--;

while(i != 0);

}

int main(void) {

// Stop watchdog timer

WDTCTL = WDTPW | WDTHOLD;

// Set P1.0 and P1.6 to output direction

P1DIR |= ((1<<6) | (1<<0));

P1OUT = 0;

while(1) {

//Toggle P1.0 and P1.6

P1OUT ^= ((1<<6) | (1<<0));

SimpleDelay(20);

}

return 0;

}

注意代码中我们包含了,而不是特定的某个芯片的头文件,因为后面可以使用编译选项来指定具体为哪款片子编译.这样可以提高代码的可移植性,要知道这个开发板可以支持几十个型号的G2XXX的片子呢.源代码很简单,就是配置IO,之后进行异或翻转.

那么源代码写好了怎么编译连接下载呢,可以全部手工敲命令,但是最通用最被接受的方法当然是使用make工具来管理.之前使用过命令行工具链的工程师可能一看便知,但是嵌入式工程师来讲,一般对IDE依赖较多.IDE这个东西的确好,使用得当可以获得比命令行方式更高的工作效率.但是偶尔使用命令行工具链来管理工程,你会发现命令行工具使用顺手了效率也不低,而且我觉得每个软件工程师,不管是嵌入式的还是桌面,云端的,只要是写代码的,都应该熟悉命令行管理工程的技能.因为很多时这会让你有更多途径来提高工作效率.

下面看这个工程的makefile的编写.事实上,这工程只需要一个makefile就能以比较高的效率来管理.当然如果考虑到版本控制,则还需要配置一些其他的工具链,此处省去以后再写版本管理方面的心得体会.

  • 本文系21ic原创,未经许可禁止转载!

网友评论