打印

#TI校园故事# + MSP430,“想说爱你不容易”

[复制链接]
2088|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cwb1136|  楼主 | 2012-11-13 20:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSP430,“想说爱你不容易”

学校:南华大学                    院系:电气工程学院 电子信息工程

2012年8月26日参加湖南省“TI”杯电子设计大赛

和TI结缘已经将近两年了。大二下学期的时候,眼看大二快要结束了,空虚使我越来越觉得自己要真正学点什么。接受了“3+1”学长的意见,我自己买了一块51单片机开发板,借了一本郭天祥老师的《10天学会单片机》教材,从学长那拷贝了一份视频,自己一个人开始学习。也就是在郭天祥老师的视频中,我第一次知道了可以免费申请国外大公司的芯片这等好事,其中TI是最大方的,这使我这个菜鸟兴趣盎然。从此,我便养成了经常浏览TI公司网页的习惯。

真正和TIMCU打交道还得从准备今年的湖南省“TI杯”电子设计大赛说起。由于我是奇数年入校的,没有机会参加全国大学生电子设计大赛,对于第一届湖南省TI杯电子设计大赛的举行我很期望,感觉很幸运。今年暑假刚开始时,组委会就已经公布了这次竞赛的相关事项。由此我们也猜测这次竞赛的主控MCUTI公司的MSP430莫属。原因有二:1MSP430 16MCU性能优异,而且具有超低功耗的特点,基本能满足一般竞赛的要求;2:鉴于C2000系列作为本次省赛的控制器则成本比较高,而且两个月的时间也不容易达到“庖丁解牛”的境界。

那段期间21IC中国电子网正好在搞MSP430 LaunchPad开发板免费赠送的活动,我们班几个人一起认真学习了相关的视频课程并轻松通过测验,真的收到了21IC寄来的开发板,很是激动!整个套件包括一个LaunchPad开发板、一片MSP430G2553、一片MSP430G2453和一块电容式触摸屏。反正竞赛的主控板没发下来,我们先分好组的搞软件部分的组员就开始玩起LaunchPad来,我是其中之
一。离竞赛不足两个月的时间,我们的任务很重,首先得将MSP430(我们主攻MSP430G2553这款)的基本结构原理、编程方法、软件平台弄熟悉,之后还得配合硬件部分的同学进行一个个训练题目的系统联调。为了提高效率,我们将任务分配到个人,一个人专攻某一块,之后再相互交流,实验证明这种方法相当有效。第一阶段我们大致将任务划分成如下几个部分:

1:基础时钟模块

2:定时器模块及

3flash模块

4:硬件SPIIICUART通信模块

5ADC模块

6Comparator模块

我负责最基础的时钟模块,最基础的也是最重要的,因此对该模块的学习使我感触很深!之前也研究过51AVR,实践证明MSP430的时钟模块确实尤其特别之处!根据Users’ GuideMSP430X2XX系列的时钟源有四个:外部低频晶振(32.768KHz)、外部高频晶振(400KHz~16MHz)、内部数字控制振荡器DCO和内部超低功耗超低频振荡器。

然而在LaunchPad开发板上,低频晶振和高频晶振的接口连在了一起,这就意味着只能使用一个晶振(总不会将两个晶振并在一起吧),问题来了,假如我们要快速处理多任务时怎么办,低速晶振不能满足我们的要求?

只要有耐心,认真的查阅资料,问题总会解决的!DCO可以消除我们的顾虑!是的,通过对相关寄存器的配置,我们可以使DCO跑到26MHz以内任何自己想要的时钟(实际上为了系统的稳定性一般不会跑这么高)。问题又来了,DCO虽然方便,但其有一个不可忽略的缺点:稳定性比较差。这是我通过示波器观测出来的结果,而且随着频率上升,波形失真很明显,抖动也比较厉害。大家都知道,若要实现高频信号频率的准确测量,则时钟的稳定性很重要,此时DCO就显得不尽人意了!

使用外部晶振,则功耗比较大,MSP430低功耗的优势就不明显了!事实证明,我多想了!仔细阅读User Guide之后,我才发现NOTE一栏标注了:MSP430G2XX3:LFXT1 dose not support HF mode.晕!原来如此,MSP430G2XX3系列根本不支持外部高频晶振模式!只不过由于是英文文档没那么容易发现罢了!(细节很重要)

既然如此,若要测量高频信号的频率怎么办呢?抱着这个问题,我自己进一步查阅资料,加上请教老师,发现只要将外部高频信号作为定时器的时钟源,再结合精准的低频32.768KHz的晶振作为基准,就能实现理论上无限大频率信号的频率测量,而且精度非常高,10MHz时才有几Hz的误差!

就是在这“发现问题------思考问题------解决问题”的过程中,我学到了东西,得到了快乐!那是前所未有的充实!

一人解决了十个问题,十个人就解决了一百个问题!这种学习方法使我受益匪浅!还有一个关于“如何节省IO口资源”的问题。这是不得不考虑的问题,因为MSP430G2553IO口资源非常有限,总共20个引脚,还得出去被占用的VCC/GND和通信下载脚。剩下的大都是复用引脚。考虑到人机交互部分一般是一个系统中必有的,我们只能尽量减少该部分占用引脚数,而其他重要的引脚要留给未知的系统!

1:首先考虑如何减少按键占用的IO

我首先想到了可以通过优化程序节省IO,如:单击、双击、组合功能键。当然这会增加程序的复杂度,而且不一定会节省多少IO。有没有其他方法呢?

我并不赞成遇到问题就找老师学长,这无形中失去了许多自主思考的机会。但有时候请教老师确实能为我们节省很多时间。经过院长提点,我们发现,G32553IO口都具有输入输出、上下功拉能的配置,只要通过合理配置就能实现一个按键两个功能。具体做法如下:

按键访问使用扫描而不是中断方式,这样既能节省IO口,又不占用中断源。

首先配置为输入模式------上拉电阻使能-------检测输入是否为低电平;

再配置上拉电阻失能------检测输入是否为高电平。

当然还有其他跟巧妙的用法,一个IO可以接上千个按键!可笑?不,事实如此:只要将按键和分压电阻并联,通过按键按下可以改变IO口电压,再通过ADC检测不同的电压就能判断不同的按键按下。

2:显示部分如何节省IO

倘若使用数码管显示不仅占用很多IO口,而且程序处理时还得不停地扫描以骗过人眼。若使用LCD1602则比较方便,但也会很占用IO;故我决定使用LCD12864的串行通信方式。最少只需2IO.

3: 通信部分如何节省IO

用硬件通信模块代替我们习惯软件模拟通信协议。如使用硬件SPI,那么几个SPI通信的器件就可以共用时钟线和数据线,只需在不同时刻选通不同的器件进行通信即可。


说了这么多,不知大家有何感想!我也只是想分享一下自己学习430时的一些经验而已!既然说是准备省赛时学的,那么省赛也不得不提及一下,虽然旧伤新痛!
不知是天时、地利还是人和中那样没占,囧!去时校车遇了故障晚了几个小时才出发,回时校车车轮出了问题把我们困在高速公路的一个加油站上6个多小时,直到凌晨12:00才等到另外一辆校车来接我们!而比赛期间我们向主办方几次申请测温万用表无果(而主办方提供相关仪器是之前允诺的),我们不得不向其他组借,借了还,还了借!将我们的信心打击殆尽!还浪费了大量时间,而我们只有一天一夜的时间!当时拿到题目时很有信心拿奖的,结果……

比赛后,我第一次看见我那个组员失声痛哭了!我呢,感觉付出没有回报,当时心里真的很酸!


现在,大家可能明白了我的标题为什么叫“MSP430,想说爱你不容易”了吧!


大四了,以后估计没什么机会才加比赛了,但我仍然会在这条路上走下去,我的路——电子设计之路,对TI的芯片的钟爱仍会持续下去!相信自己,世界相信你!

相关帖子

沙发
无眠kevin| | 2012-11-17 14:28 | 只看该作者
刘明

使用特权

评论回复
板凳
taihezhibanh| | 2012-11-17 20:25 | 只看该作者
看视频是挺快的

使用特权

评论回复
地板
heibaiyinjiag| | 2012-11-17 20:41 | 只看该作者
只要有耐心,认真的查阅资料,问题总会解决的!

使用特权

评论回复
5
sishangcine| | 2012-11-17 21:37 | 只看该作者
本科期间过的真充实

使用特权

评论回复
6
zgsxhzac| | 2012-11-17 21:48 | 只看该作者
楼主不要气馁,挫折在所难免

使用特权

评论回复
7
shibalihuandao| | 2012-11-17 21:59 | 只看该作者
只是暂时付出没有回报,还有以后呢

使用特权

评论回复
8
engtafanzhuan| | 2012-11-17 22:20 | 只看该作者
相信自己没错的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

2

帖子

1

粉丝