当前位置:
首页 >
单片机技术文章 >
MSP430单片机 > 详细内容
- 非常新手如何入门MSP430
- 发布时间:2009/7/27 阅读次数:857 字体大小: 【小】 【中】【大】
在2007年国庆节期间,回家休假了。在假期快结束前1天,突然想起了要写一编关于非常新手刚接触MSP430单片机时应该如何入的文章。其原因是由于MSP430的全系列产品中有非常丰富的资源模块。作为一个新手不管是从资料上或书本上看到的目录列表中都会有或多或少感到有点眼花缭乱,模块之多我该从何学起?从理想上说,每个模块的存在都会有他的所在价值;但对于非常新手来说并非马上就需要用上或马上要非学不可。
所以,我是想通过这次的闲写为非常新手们做一个指示或参考。希望能帮助到他们如何简单地入门,减少入门湾路。在我销售众多的MSP430开发工具以来,接触过很多初级用户,根据他们的需求和反馈信息我有较深的体会和感触。 我想以下的意见是有一定启蒙价值的。
我想作为非常新手,你手上是否准备好以下几样硬件:计算机(带有并口)1台,MSP430FET仿真器1套,MSP430开发实验板1套,和一些MSP430教程或电子教程资料等。如果齐的话,那么我们就可以启动了。若然还差些什么的,建议到微控设计网(www.Microcontrol.cn)上看看,看有什么工具或资料能帮助到你的。
在翻开MSP430的资料或书本教程目录,都会看到好多模块目录,那么我们是不是都要全学呢?如果理想地回答应该“是”。但实际中,对于新手们来我想暂时来说是不必。最起码让新手学些最基础和通用的模块先,以下我是认为较常用的基础模块,在很设计中都有可能用到的。而在学习这些模块中,又是不是所有我都要撑握呢。同样答案是“是的”。但你可以了解一些基础参数及基本原理,当你了撑握了这些基础参数及基本原理,再结合一些模块单元的例程进行综合地分析和理解。在这一学习过程中你会不断地将这些参数及原理存储在你脑海中。当你有一定的基础后,你会发现不断又有新疑问;那么这时候这些疑问就会促使你自己去寻找答案。你可能会不断的翻书本和资料,同时也可能促使你在开发板上进行你的疑问和验证...。
在上面的过程中,就是熟悉和撑握这些模块的过程。在这个“学”和“练”的过程中很多都是靠你个人的。当你请教前辈时,人家只会告诉你一些参考思路或方向;往往里面的内容都要自己亲身去验证的。学习当中会往往存在着很“乐事”和“苦事”,相信很多成功的工程师们都会有这样的体会。
当然,我们很欢迎将你的“学、练”过程中的苦与乐与我们在微控论坛中分享。
【WDT看门狗定时器】
很有趣,相信新手们会看到很例程中开头都有“WDTCTL = WDTPW + WDTHOLD;”语句。这是CUP执行关闭定时器的意思。在这里我建议非常新手暂时不要去理会这个定时器应用。在刚入门阶段,建议跳过这章节。此时你只要大概地知道他的作用就好了。看门狗定时器一般是用于防止程序失效而存在的,一般是用于完整的程序中使用。主程序中可不断地清除看门狗定时器的计数值,以防定时器的值自动计满后使CPU复位而重新开始工作。当程序发生错误时,无法正常清除看门狗的定时值时则看门狗定时器计数溢出而产生CUP复位。对于看门狗定时器的使用,建议在应用进阶阶段中学习。
【IO模块】
对于IO模块建议分为入门必学与学习进阶两部分,可以不必同一时段内进行理解。
入门必学:
[1]初学者必需了解几个常用寄存器使用如P1OUT,P1IN,P1DIR,P1SEL寄存器。
[2]理解MSP430 IO口常用编程语法,这些都可以查看参考例程。
[3]结合书本介绍和你的个人理解,然后在开发板上进行实验。例如比如LED、响声之类的初级实验。
学习进阶:
对于IO模块的进阶主要是了解如何使用IO中断,和IO中断相关寄存器的使用。如果不太必要,你可以跳过IO中断使用这部分去学习其他章节的基础部分;当你其他章节基础学习到一定程序时再回过头来学习这部分。另外,IO模块部分你需要搞清楚在什么时候IO为高阻状态?高阻状态时的漏电流为多少?IO驱动电流能力如何?等等时常关注的参数你应如何查找答案,你能很快地查找到这些参数吗?我提出来这些问题的因原是促使你尽快学会习惯主动查看器件手册。
【时基模块】
时基模块是提供整个单片机中各模块的时钟发生源,初学者若要使用到片中某模块时几乎都要使用不同的时钟。所以这章节是非常强调地要去认真理解的。
[1]必须理解DCO,SMCLK,MCLK,ACLK这4个时钟信号是由那部分产生的。
[2]DCO,SMCLK,MCLK,ACLK各个时钟有什么优点和点。
[3]4个时钟信号中,每个时钟的通常频率范围是多少。
[4]常规的时基控制寄存器设置和时钟如何从引脚输出等等。
最后,学习进阶你要理解在不同低功耗模块下,那些时钟源信号还在活动那些已关闭。
【TimaA模块】
入门必学:
[1]初学者需要搞清TimerA的三个不同工作模式中TA、CCR1、CCR2与CCR0之间的关系。
[2]搞清楚TA、CCR1、CCR2与CCR0之间的中断向量关系。
[3]综合上面的理解,建议结合TimerA的例程来进行相关验证,只有通过亲自的操作才能有效地记住。
学习进阶:
如利用TimerA实现PWM信号输出、利用捕获/比较功能实现捕获信号等等。
【结束语】
非常新手只要经过上述四个单元有条理地认真学习的话,我相信基本对MSP430单片机入门已有一定感性认识了。有了这些基础,接下要继续学习其他相关的模块应用也不难了。只要你了解到尽多模块中,在你的实际中不一定能用上;就算用上了这些模块也未必能全部应用他的全部功能。那么你可以 按需而用,需要的你就要去理解他和应用他。不必要的可以暂时放下。
但前提的就是你需要熟悉几个常用模块基础应用,以使用量最多的14x系列为例。初学者入门必学有IO模块、时基模块、定时器模块等,往后你将可继续强化学习如ADC12模数转换、UART串行异步通讯模块、比较器A模块等等。
应用在于理论与实操的结合,这些老话我就不想多说了。假期该结束了,祝大家好运...