(1)MSP430F5529学习入门

  为想学MSP430单片机的初学者,或者,你是刚转到电子硬件嵌入式开发,如果你的电子基础课程已经完成,想尽快掌握MSP430单片机,又纠结于怎样尽快闯入MSP430学习过程的问题,现总结整理出新手开始学习MSP430的一些问题,和学习中有关注意事项和方法。 供有心学习MSP430单片机的童鞋参考吧。

  当然,闯入MSP430学习,你需要有一些单片机的理论基础,和比较强的C语言功底,学习MSP430单片机最好的方法是文武并进:“文”指学好片内模块的资源知识;“武”则指动手能能力。基础知识+动手实操,是一个非常有效的学习方法。文武并进必能学有所成。

  进入各个电子产品公司的网站,招聘里面嵌入式占据了大半工程师职位。 广义的嵌入式无非几种:传统的什么51单片机、 MSP430称做嵌入式微控制器;ARM是嵌入式微处理器;当然还有DSP;FPGA。我们现在就不说别的,就说MSP430单片机,多数想学MSP430的童鞋,对89C51内核系列的单片机是很熟悉的,为了加深对MSP430 系列单片机的认识吗,迅速闯入MSP430学习过程,就必须彻底了解MSP430单片机,我们不妨将51单片机和MSP430两者进行一下比较。

  第一点, 51内核单片机是8 位单片机。其指令是采用的被称为“ CISC ”的复杂指令集,共具有111 条指令。而MSP430 单片机是16 位的单片机,采用了精简指令集( RISC )结构,只有简洁的27 条指令,大量的指令则是模拟指令,众多的寄存器以及片内数据存储器都可参加多种运算。这些内核指令均为单周期指令,功能强,运行的速度快

  第二点,MCU主要分为两种工作模式:待机与执行。51内核单片机正常情况下消耗的电流为mA级 ,在掉电状态下,其耗电电流仍约为3mA左右 ;即使在掉电方式下,电源电压可以下降到2V ,但是为了保存内部RAM 中的数据,还需要提供约50uA的电流。

  而430单片机功耗是在uA级的工作电流极小,并且超低功耗,关断状态下的电流仅为0.1μA,待机电流为0.8μA,常规模式下的(250μA/[email protected]),端口漏电流不足50 nA,并可零功耗掉电复位(BOR)。另外,该芯片属低电器件,仅需1.8~3.6V电压供电,因而可有效降低系统功耗。MSP430将低功耗模式扩展为7种,分别对应不同应用场合及任务的低功耗方式。以睡眠模式为例,包括深度睡眠模式RTC:只有时钟在跑而其他都不动,目前,TI宣布其MSP430在RTC模式下最低功耗仅为360nA。同时也包括诸如液晶显示驱动等需要几十毫秒刷新一次的间歇性睡眠模式。所以,MSP430 的超低功耗更适合应用于使用电池供电的仪器、仪表类产品中。

  第三点, 51内核单片机由于其内部总线是8 位的,受其结构本身的限制很大,模拟功能控制功能受限制。MSP430 系列其基本架构是16 位的,同时在其内部的数据总线经过转换还存在8 位的总线,在加上本身就是混合型的结构,因而对它这样的开放型的架构来说,无论扩展8 位的功能模块,还是16 位的功能模块,即使扩展模/ 数转换或数/ 模转换这类的功能模块也是很方便的。

  第四点,典型MCU的存储结构有两种。诺依曼结构——程序存储器和数据存储器统一编码哈佛结构——程序存储器和数据存储器;MSP430系列单片机属于前者,而常用的51内核单片机系列属于后者。

第五点,就是在开发工具上面。对51内核单片机来说,不少适合我们使用的开发工具。但是如何实现在线编程还是一个很大的问题。对于MSP430 系列而言,由于引进了Flash 型程序存储器和JTAG 技术,不仅使开发工具变得简便,而且价格也相对低廉,并且还可以实现在线编程。

那么说了以上这些,作为新手,到底怎么学习430这种16位低功耗的单片机呢?或者说有什么有什么效果比较好的方法吗,答案是肯定。

  网上有很多介绍MSP430单片机学习的方法,一定要结合自己的学习特点,集百家之长,善于总结别人的、自己的学习方法和效果,积极实践。当然学习的方法都是相通的。大概对这些方法简单总结,也就是下面几点:

  1. 作为430新手,首先看我们是否准备好以下几样硬件:电脑(带有并口)1台,MSP430FET仿真器1套,MSP430开发实验板1套,和一些MSP430教程或电子教程资料等。
  2. 选用MSP430仿真器。购买现成的MSP430JTAG仿真器如TI-MSP430JTAG
  3. 选用MSP430开发板或目标板是学习一个重要的工具,建议购买一个开发板或目标板,同时也会得到很好的技术支持。如果自己制作的话也行,也未尚不可,那就看个人水平了。
  4. 软件工具,因为现在都有学习板的工具软件,如IAR的EW430学习版,430GCC软件还是免费的。建议还是使用IAR软件较方便,因为使用的人群较多,有问题还可请教,容易解决。
  5. MSP430学习资料及教程,<<MSP430系列16位超低功耗单片机原理与应用>> 清华大学出版社和一本关于430C语言编程应用的书本<<MSP430系列单片机实用C语言程序设计>>。
  6. MSP430系列中硬件源资是非常丰富的。有看门狗(WDT)、定时器A (Timer_A)、定时器B(Timer_B)、比较器、串口0(USARTO)、串口1(USART1)、硬件乘法器、液晶驱动器、10位/12位ADC, 14位ADC,数十个可实现方向设置及中断功能的并行输入输出端口、基本定时器(Basic Timer)
  7. 以下几部分模块硬件资源是作为初学者必须要了解学习的。
    ①WDT看门狗定时器: 新手们会看到很多编程实例中,开头都有“WDTCTL = WDTPW + WDTHOLD;”语句。这是CUP执行关闭定时器的意思。在刚开始,我们没必要关心这个,可以跳过这章节,只要大概地知道他的作用就好了。看门狗定时器一般是用于防止程序失效而存在的,一般是用于完整的程序中使用。主程序中可不断地清除看门狗定时器的计数值,以防定时器的值自动计满后使CPU复位而重新开始工作。当程序发生错误时,无法正常清除看门狗的定时值时,则看门狗定时器计数溢出而产生CPU复位。

    ②IO模块:对于IO模块可分为初级与提高两阶段,可以不必同一时段内进行理解。
     a初学者必需了解几个常用寄存器使用如P1OUT,P1IN,P1DIR,P1SEL寄存器。
     b理解MSP430 IO口常用编程语法,这些都可以查看参考例程。
     c结合书本介绍和个人理解,然后在开发板上进行实验。例如比如LED、响声之类的初级实验。
     d对于IO模块:了解如何使用IO中断,和IO中断相关寄存器的使用。如果不太必要,可以跳过IO中断的使用,而是去学习其他章节的基础部分;当其他章节基础学习到一定程序时回过头再来学习这部分。另外,我们需要搞清楚IO模块在什么时候为高阻状态?高阻状态时的漏电流为多少?IO驱动电流能力如何?等等一些常关注的参数时,我们都需要养成主动查看器件手册的习惯。

   中断是430处理器的一大特色,因为几乎每个外围模块都能产生,430可以在没有任务时进入低功耗状态,有事件时中断唤醒cpu,处理完毕再次进入低功耗状态。整个中断的响应过程是这样的,当有中断请求时,如果cpu处于活动状态,先完成当前命令;如果处于低功耗,先退出,将下一条指令的pc值压入堆栈;如果有多个中断请求,先响应优先级高的;执行完后,等待中断请求标志位复位,要注意,单中断源的中断请求标志位自动复位,而多中断的标志位需要软件复位;然后系统总中断允许位SR.GIE复位,相应的中断向量值装入pc,程序从这个地址继续执行。这里要注意,中断允许位SR.GIE和中断嵌套问题。如果当你执行中断程序过程中,希望可以响应更高级别的中断请求时,必须在进入第一个中断时把SR.GIE置位。 其实,其他的外围模块时钟沿着时钟和中断这个核心来执行的。具体的结构我也不罗索了,可以参考430系列手册。
  ③时钟模块:系统时钟是一个程序运行的指挥官,时序和中断也是整个程序的核心和中轴线。430最多有三个振荡器,DCO内部振荡器;LFXT1外接低频振荡器,常见的32768HZ,不用外接负载电容;也可接高频450KHZ-8M,需接负载电容;XT2接高频450KHZ-8M,加外接电容。初学者若要使用到片中某模块时几乎都要使用不同的时钟。时钟模块是提供整个单片机中各模块的时钟发生源,所以这章节是非常强调地要去认真理解的。
  ⑴.必须理解430有几种时钟信号:MCLK系统主时钟,可分频1 2 4 8,供cpu使用,其他外围模块在有选择情况下也可使用;SMCLK系统子时钟,供外围模块使用,可选则不同振荡器产生的时钟信号;ACLK辅助时钟,只能由LFXT1产生,供外围模块。

  ⑵.DCO,SMCLK,MCLK,ACLK各个时钟有什么优点和缺点。
  ⑶.4个时钟信号中,每个时钟的通常频率范围是多少。
  ⑷.常规的时基控制寄存器设置和时钟如何从引脚输出等等。
  ④TimaA模块:⑴.初学者需要搞清TimerA的三个不同工作模式TA、CCR1、CCR2与CCR0之间的关系。⑵.搞清楚TA、CCR1、CCR2与CCR0之间的中断向量关系。⑶.综合上面的理解,我们可以结合TimerA的例程来进行相关验证,只有通过亲自的操作才能有效地记住。⑷.利用TimerA实现PWM信号输出、利用捕获/比较功能实现捕获信号等等

  1. 另外多大学习430学习单片机论坛上, 和网友交流,咨询,多看别人出现的问题的解决方法。

可以说,只要经过上述方面认真折腾学习的话,其实MSP430单片机编程应用就有了基本入门阶段,可以说已经闯入MSP430单片机有效学习过程,接下要继续学习其他相关的模块应用也不难了。那么剩下的一些模块可以按需而用,按需而学。 但前提的就是需要熟悉几个常用模块基础应用,以使用量最多的14x系列为例,初学者入门必学有IO模块、时基模块、定时器模块等,以后可继续强化学习如ADC12模数转换、UART串行异步通讯模块、比较器A模块等等。

  文章摘录于:http://blog.lehu.shu.edu.cn/879836630/A448888.html

时间: 03-19

(1)MSP430F5529学习入门的相关文章

OPEN(SAP) UI5 学习入门系列之一:扫盲与热身(下)

1 UI5代码结构 上一次我们一起用了20秒的时间完成一个UI5版的Hello World.应用打开后有一个按钮,按钮的文字是Hello World,点击这个按钮之后,按钮会慢慢的消失掉(Fade out). 那我们这次就来看一看为了实现这么一个简单的功能,OpenUI5框架至少需要提供哪些内容,或者说我们通过这么一个简单的应用来看一下一个最简单的UI5的应用程序的结构. HTML部分应该不用多说,我们只看和UI5相关的代码,第一部分我们称为Bootstrap,包含以下代码段: <!-- 1.)

模拟电路学习入门的建议(综合整理)

转载自:http://bbs.eetop.cn/viewthread.php?tid=170164 ”模拟电路学习入门“ "如何才算学好模电,数电"一帖引来大家的关注.这里把各位DX的意见整理了一下,便于大家参考.真正掌握一门技术不容易,大家从不同的侧面和经验谈谈自己的体会,对从事这行业的工程师会有点启迪. 找些實用線路集錦或電子製作書看看,有感興趣的就找找理論資料,然後動手練練,很快就是門內漢(or女)了! 先看基本书,再动手练习练习 Razav 如果有耐心看大头英文最好,翻译也很不

OPEN(SAP) UI5 学习入门系列之四:更好的入门系列-官方Walkthrough

好久没有更新了,实在不知道应该写一些什么内容,因为作为入门系列,实际上应该更多的是操作而不是理论,而在UI5 SDK中的EXPLORER里面有着各种控件的用法,所以在这里也没有必要再来一遍,还是看官方的用法更地道. 看一下基于最新的库所推荐的项目结构. 另外,我觉得对于初学者来说是一个非常好的消息,就是UI5版本从1.28更新到1.30以及更高之后,Tutorial系列有了重大更新,之前的Get Started->Tutorials->Application Best Practice现在改为

JSON--JSON学习入门(了解什么是JSON)

JSON格式化工具:tool.oschina.net/codeformat/json JSON定义 JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.可在不同平台之间进行数据交换.JSON采用兼容性很高的.完全独立于语言文本格式,同时也具备类似于C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)体系的行为.这些特性使JSON成为理想的数据交换语言. JSON基于Ja

MySQL快速学习入门

#MySQL快速学习入门 #MySQL选择数据库(USE) USE test; #MySQL表字段类型 #INT - 正常大小的整数,可以带符号.如果是有符号的,它允许的范围是从-2147483648到2147483647.如果是无符号,允许的范围是从0到4294967295.可以指定多达11位的宽度. #TINYINT - 非常小的整数,可以带符号.如果是有符号,它允许的范围是从-128到127.如果是无符号,允许的范围是从0到255,可以指定多达4位数的宽度. #SMALLINT - 小的整

oracle学习入门系列之二 数据库基础知识

oracle学习入门系列之二 数据库基础知识 本篇蛤蟆要梳理下那些被淡忘的数据库基础知识,也许根本就没被人记住过.不管是哪种情况,该记住的必须记住,记不住就把他记下来吧. 首先问几个问题如下: 数据库基础知识是什么? 好吧,蛤蟆直接吐后而不亡,看目录开始吧. 本人邮箱:[email protected] 微信公众号:HopToad 欢迎各界交流 1      基本概念 概念就是概念,大伙对这些名词不要死磕,但是对定义一定要理解,理解方能领悟,领悟方能运用自如后创新. 1.1      数据 数据

oracle学习入门系列之一 数据库发展与历史

oracle学习入门系列之一 数据库发展与历史 这个oracle学习入门系列是根据本人工作中的一些笔记.项目进行回忆.整理.一方面是自己知识积累,便于技能提升:另一方面是和小伙伴们共进退互通有无,做一个爱分享的好公民.当然最后也夹杂着自己的一个小心愿,改掉自己重理不重文的臭毛病.想想读书考试的时候,当时如果语文英语多个几分,现在可能就不会落到如此...(咳咳~~),做IT也挺好.那就这样开场白切入吧. 既然学习数据库,就不能不抛几个问题了. 1.        为什么需要数据库,什么是数据库 2

Python学习入门笔记(一):Python文件类型

1.源代码 扩展名:.py,由Python程序解释,不需要编译. --创建hello.py源文件 # cat hello.py  print 'Hello World!' --执行hello.py [[email protected] study]# chmod a+x hello.py  [[email protected] study]# python hello.py  Hello World! [[email protected] study]# ./hello.py  ./hello.

Python学习入门笔记(二):Python运算符

1.算术运算符 "+"加法:3+2=5 "-"减法:3-2=1 "*"乘法:3*2=6 "/"实数除法:3/2=1,3.0/2=1.5 "//"整数除法:5.6//2=2.0 "%"求余数:17%6=5 "**"求幂运算:2**3=8 2.赋值运算符 "="等于:x=3 "+="加等于:x+=2 "-="减等