MCU工程师炼成记:我和MSP430单片机(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-21 05:56:11

点击下载

作者:丁武锋

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

MCU工程师炼成记:我和MSP430单片机

MCU工程师炼成记:我和MSP430单片机试读:

前言

如何学习、掌握单片机技术以及如何成为一名合格的电子工程师是广大初学者非常关心的事情,这方面的书籍、文章其实也不算少,但在“信息爆炸”的时代,真正有效的东西却并不多见,这也是令初学者最感困惑和无奈的事情。

参与这本书算是机缘巧合。在一次电话中向农和我谈起打算推出一本专门面向初学者的单片机入门指导书,内容方面同时兼顾技术、入门方法以及给新人提供一些初步的职场生存建议等。以她的想法,这本书并未打算聘请资深的技术专家来专门写作,而是由三个不同阶段的“过来人”跟初学者们交流一下自己的成长经验。书的内容上不求高深,只求真实、易懂、接地气,重点虽然仍旧放在让读者掌握一门单片机开发技术上,但同时也兼顾可以复制的学习方法和职场生存经验,这是一种少有的尝试,不可谓不大胆。

在单片机的入门学习平台方面,本书选择了TI的MSP430单片机,除了单片机本身的必要技术资料之外,本书的重点在于讲解如何从零开始逐步理解单片机的基本结构和具体的编程方法以及电路设计方法。初学者们可以一步步地照着书中内容学习和操作,在认真学习完本书内容后,应该可以大致具备初步的单片机应用设计能力。同时,本书给初学者特别是那些即将走进职场的高校学生们提供了一些基本的职场生存建议,希望可以帮助大家更快、更好地适应自己的工作,并成为一名合格的电子工程师,这就是我们编写本书的终极目标。

本书总体上分为三部分。第一部分主要通过动手引导用户掌握MSP430单片机及其外设的使用。这部分主要由一些入门级的实验组成,让读者通过学习这些实验学会MSP430单片机的基本开发方式。第二部分主要通过具体项目锻炼读者的工程技能,考虑到一部分读者是学生,第8章用一章的内容帮助学生读者分析电赛题目,分享电赛经验。最后,三位作者分别从自己的角度讲了他们对MCU工程师修炼的看法。因为这部分内容相对独立,而且基本上算是他们的“一家之言”,更像是三篇独立的文章,我们将这作为第三部分内容放在了附录里。相信其中的真知灼见必定会引起读者的共鸣。

因时间和精力的关系,本书的撰写和完稿有些匆忙,未尽及错漏之处敬请谅解,同时欢迎大家在EEWORLD论坛上继续展开讨论与交流,内容不限于这本书,不限于MSP430。周春阳 2013年6月第一部分

 预备篇

第1章 单片机改变世界

第2章 改变世界从MSP430开始

第3章 吃透MSP430单片机的构架

第4章 熟悉MSP430开发工具

第5章 熟悉硬件平台:LaunchPad

第6章 解剖MSP430单片机第1章单片机改变世界1.1 把iPhone变成一台心电图仪

今天,每个人都有一部手机,这部手机可能是iPhone,也可能是Android手机,还有可能是Windows手机。无论是哪一种智能手机,其实都是一款功能强大的开发平台,吸引了众多的软件应用开发者。面对这样一个平台,我们是否可以换个思路,不局限于设计各种软件应用,而是再添加一些硬件外设,做出更大胆的功能拓展。答案是肯定的!

图1-1展示iPhone心电图仪,只增加少量的硬件外设就把一部iPhone变成了一台心电图仪。图 1-1 iPhone心电图仪

下面我们来看看如何一步一步实现将一部iPhone变成便携式心电图仪。首先要考虑的问题是,增加的硬件外设如何与iPhone相连。iPhone提供给外界的接口是它独特的数据接口以及耳机接口,其他的手机一般可以提供USB接口和耳机接口。因此,实际上在手机上最通用的接口是耳机接口,而不是各种数据接口。

让我们看看手机上的耳机接口的定义,看看它能否完成硬件外设与手机通信的功能。耳机接口有4个信号线,分别是左声道、右声道、接地和麦克风,如图1-2所示。接口中各信号的方向是固定的,左声道和右声道用于驱动耳机,所以对于手机就是输出;麦克风是采集语音信号的,所以对于手机其方向为输入。总体上讲,手机耳机孔接口提供了两个输出通道和一个输入通道,可以满足手机和硬件外设的双向通信的要求。图 1-2 iPhone耳机接口的定义

如果使用耳机接口作为外设电路与iPhone之间唯一的连接,那么电路必须从耳机接口取电,也就是需要依靠音频芯片输出的能量来驱动电路。

iPhone的音频输出功率有多大呢?是否能够驱动外部电路呢?带着这些疑问,可以先测试iPhone手机一个声道的输出功率。图1-3是利用iPhone 3GS输出20~20KHz的信号在不同的负载阻抗下测试得到的输出电压有效值和输出电流以及输出功率的关系。其中抛物线形的曲线是输出电压与输出功率的关系,带圈的曲线是输出电流与输出电压的对应关系。输出功率在输出电压为240mV的时候达到峰值,这个时候输出功率达到15.6mW,输出电流约为66mA。图 1-3 iPhone 3GS单声道输出电压与输出电流及功率的关系

音频输出的最高功率达到15.6mW,如果能够设计出低功耗的电路,这个功率能够支撑电路工作。有了能量保障,采集心电信号需要哪些功能电路呢?

心电信号非常微弱,而且受到的干扰非常严重,直接采集会淹没在噪声之中,所以必须设计降噪放大电路完成心电信号的调理。心电信号从模拟域到数字域的转换,就需要数模转换器来完成。除此以外,还希望电路具备一定的数字处理能力,完成心电信号的预处理以及与iPhone的通信。综合以上这些要求,可以选择一款具备数模转换等功能的低功耗单片机。

提到低功耗单片机,就会让人想起一款经常使用水果电池供电做演示超低功耗单片机——MSP430单片机。MSP430单片机很长时间以来一直作为低功耗单片机的标杆产品,那么它的功耗到底有多低呢?

可以做一个计算,假如使用3V的银锌纽扣电池CR2032供电,电池的容量为200 mAh。单片机使用MSP430F20xx系列,在看门狗工作的待机模式下其消耗电流为0.6μA,在CPU工作频率为1MHz的活动模式下消耗电流为300μA。在实际的低功耗应用中,单片机一般情况下处于待机模式,中断请求到达时被唤醒,处理完中断请求后再次进入待机模式。因此,单片机在大部分状态下都处于待机模式,下面分别以1%和0.1%的工作时间对其进行评估。

工作时间为1%的情况下,电流消耗的平均值为:

I=06.μA×0.99+300μA×0.01=3.594μAavg

工作时间为:

工作时间为0.1%的情况下,电流消耗的平均值为:

I=0.6μA×0.999+300μA×0.001=0.8994μAavg

工作时间为:

MSP430单片机在1%和0.1%的工作时间下,工作时间分别达到了6.34年和25年,其低功耗的特性也得到了充分体现。

MSP430单片机除了低功耗的特点,还有哪些特征呢?

MSP430经过多年的发展已经有超过450个型号,相互之间具备非常好的兼容性。MSP430大部分器件工作电压在1.8~3.6V,低的工作电压可以方便使用在单节电池供电的环境中。平均工作电流为200μA/MIPS,最高CPU工作频率可以达到25MHz。提供MCLK、SMCLK和ACLK3个时钟系统,具备5种低功耗模式。片上外设非常强大,具备数字和模拟两大类外设。数字外设包括数字I/O口,具备捕2获和比较功能的定时器,支持UART、IC和SPI的硬件串行接口,USB接口,DMA,硬件乘法器,看门狗,RTC等数字外设。模拟外设主要包括10位ADC、12位ADC、16位SD、24位SD、12位D/A、模拟比较器、电源监测BOR,运算放大器OPA等。可以根据具体应用选择所需要的外设,进而选取对应型号的MSP430单片机。

丰富的外设能够帮助简化电路的设计,但是会不会引起MSP430功耗的上升呢?在实际应用中可能用不到所有的外设,MSP430可以选择关闭不使用的外设,这样就避免了功耗上升的风险。

制作iPhone心电图仪的硬件外设选用了MSP430F1611单片机。有了低功耗的单片机,下面来看看整个外设电路如何实现。

第一步实现能量的采集,从图1-3中的曲线数据可以知道输出电压有效值为240mV时,音频输出功率最大,这个时候负载阻抗为:

240mV的电压较低,需要升压才能作为单片机的供电电压。但是240mV的电压还不足以让boost升压电路工作。必须使用一种有效的升压方式,音频信号为交流信号,因此可以采用如图1-4所示的变压器电路,利用1:20的变压器将音频信号升压。图 1-4 升压整流电路

为达到高效的能量传输,负载和音频源端输出阻抗匹配。已知源端阻抗为3.6Ω,变压器初级线圈的电感为25μH,就可以根据电感的感抗计算公式获得最佳的音频频率。

如图1-4所示使用右声道传输能量,那么最佳的音频频率为22.9KHz。由于变压器还有约为0.2Ω的直流电阻,升压后电压约为4.2V。然后经过MOS管组成的整流电路,将电压变为直流信号。采用MOS管做直流整流电路,原理上与常见的二极管全波整流电路相似,但是具备更低的管压降,所以效率更高。整流滤波后的直流信号约为4V,MSP430的供电电压可以选定为3V,所以最后还需要降压电路。该降压电路最好选用DC-DC降压电路,以取得较高的效率。

获得了电源,还要完成单片机电路和心电信号的调理电路,心电信号调理电路会在后面的章节中详细介绍。下面再看MSP430是如何完成与iPhone通信的。iPhone的耳机接口中右声道已经被用作供给能量,就剩下左声道和麦克风。左声道可以用作iPhone向MSP430传输数据,而麦克风可以用作MSP430向iPhone传输数据。MSP430和iPhone之间都是交流耦合,所以直接传输数字电平信号是行不通的。这里可以借用无线传输中的一种方式,通过FSK调制传输数据,简单来说就是将数字信号调制到一个更高的载波信号上,数字信号的0和1分别用不同频率的载波信号,根据接收到的载波频率可分为0和1。看似困难的调制与解调过程可以依赖于MSP430的片上外设轻松完成。

完成FSK调制,需要使用到MSP430的I/O口中断,通用异步、同步收发器UASRT,定时器的比较输出功能。整个过程除了一处简单的电路连接,其他的过程都可以编程实现。FSK的调制的实现过程如图1-5所示。图 1-5 MSP430实现FSK调制

单片机与iPhone之间完成的异步通信,可以将片上外设UASRT的配置为UART接口来实现,需要发送的数据直接写入UASRT既能够自动封装为符合串口标准的数据格式。接着将UASRT的输出管脚TXD输出的信号接至片上具备I/O口中断功能的I/O口管脚,P1端口和P2端口的各8个管脚都可以选用。I/O口管脚发现TXD管脚的电平变化就会发生中断,并在中断中修改定时器的定时周期,进而输出不同频率的PWM信号,输出的PWM信号如图1-6所示。图 1-6 FSK调制波形

由于iPhone和MSP430之间是交流耦合,所以PWM信号经过低通滤波并隔离直流分量,输出至麦克风接口被手机采集。手机具备很强的数值计算能力可以利用软件无线电算法处理采集到的FSK信号并解调出MSP430发送的数字信号。

由iPhone发往MSP430的调制信号,也可以充分利用片上外设解调,实现框图如图1-7所示。图 1-7 MSP430实现FSK解调

iPhone左声道传输的FSK信号也是交流信号,先使用电阻分压电路将该信号抬升至中点电平,即1/2 V。利用MSP430片上的模拟电CC压比较器,将输入的信号与1/2 V进行比较,比较后的信号交由定CC时器进行捕获计数,测量FSK信号的周期。最终CPU根据信号周期判决解调出数字信号,解调波形如图1-8所示。图 1-8 FSK解调波形

通过以上方法就可以解决供电和通信两大难题,再配合iPhone上的应用软件就能够成功地将一部手机转换为心电图仪。

从上面的介绍中可以看到大部分处理任务通过MSP430单片机片上外设就能完成,利用MSP430单片机强大的功能实现了单芯片解决方案。MSP430单片机是一款资源丰富的超低功耗单片机,在后面的章节中我们将逐步向大家介绍。1.2 成为改变世界的单片机工程师

单片机的学习者有初入职场的菜鸟工程师,有渴求知识的在校大学生,也有迫于项目需求的电子工程师。迫于项目需求转换开发平台的电子工程师往往具备其他类型单片机的使用经验,学习新类型的单片机并不会有太大的障碍,但是菜鸟工程师和在校大学生就是真正的“初学者”。初学者在开始学习单片机的时候都有一个相同的问题那就是“怎么才能尽快地学会使用单片机?”

菜鸟工程师由于身边有“老兵”的指导,加之有目的明确的工程项目的驱动,在单片机学习上并不会走太多的弯路。在校大学生在学习之初,首先要面对的就是“迷茫”,空有一腔热情,却不知如何下手。

在学习单片机之初应当有一些基础知识准备。单片机是电子技术发展到一定程度才出现的产物,本身就是众多电子技术的结晶,对其中一些知识的了解是学习单片机所必需的,所以网络上经常出现的“零基础”学习单片机是不客观的说法。在学习单片机之初,应该具备基础的电路知识,主要包括基本的数字电路和模拟电路知识。比如,在学习单片机的I/O口时,就会涉及数字电路知识中I/O口电平、施密特触发器等内容;在学习单片机的ADC通道时肯定会涉及信号带宽等模拟电路方面的内容。在学习单片机之前不苛求必须有深厚的电路功底,但是常识性的电路知识是不可或缺的。

学习单片机的很大一部分工作是学习单片机的编程,简单地讲就是编写代码控制单片机的工作流程。目前,绝大部分的单片机开发工具都能够支持C语言,并作为单片机的开发语言,也有人推崇使用汇编语言作为单片机的开发语言。不可否认使用汇编语言可以获得更高的执行效率和代码密度,但是汇编语言在开发效率和代码的可读性上比C语言要差。事实上,C语言编译器效率已经提高到了相当高的水平了,C语言编写的代码编译后在执行效率和代码密度上跟汇编语言相比并没有太大的差距,C语言早就成为单片机开发的绝对主力。所以初学者掌握基本的C语言知识即可,无须在开发语言的抉择上花费太多的时间。

准备的最后一点就是学会使用最基本的实验设备,这里列举一般的实验室都能提供的4种设备:万用表、稳压电源、示波器和信号发生器。这些设备的熟练使用将对学习中遇到的调试(bebug)有非常大的帮助。

有了以上的准备,就可以正式开始单片机的学习了。初学者最好选用一款性能稳定,范例丰富并且推广较好的单片机作为学习目标。性能稳定,避免在学习过程中遇到由于芯片本身的设计失当导致的一些无法解决的问题;范例丰富,大量的示例供用户阅读和借鉴,更容易理解单片机的操作机理;推广较好,意味着学习的受众面较广,有很好的学习氛围和学习资料,并且有容易获得的学习开发板。从这3点出发,MSP430系列单片机就是一个很好的选择。首先,该单片机目前在电子行业已经使用多年,一直都作为低功耗单片机的标杆产品;其次,该单片机所有的型号都具备官方范例代码,而且有较多的参考案例;最后,MSP430单片机在中国通过大学计划推广了多年,大量的大学生使用这款单片机完成实验、参加竞赛,积累了很多的书籍教材和网络资料,开发板类型也很丰富,TI提供售价约为几十元人民币的LaunchPad开发板。单片机都有相似性,学会使用一款单片机,再过渡到另一款就不太困难了。

学习单片机可以从学习单片机的开发环境开始,当前的单片机都有自己对应的集成开发环境(IDE,Integrated Development Environment),并有免费版本供初学者下载使用。集成开发环境可以完成代码的编辑、编译和调试过程,使用起来比较方便。TI推出的CCS5还可以完成MSP430单片机的图形化配置。对于初学者,集成开发环境的基本使用没有障碍,但是特别要注意的是开发环境中对应的开发工程的属性配置。

熟悉开发环境的开发流程后,就可按照引导教材或者用户手册,逐一了解单片机的各功能模块的特性并完成对应的功能模块的实验操作。逐个模块熟悉下来,基本上一款单片机即可学会使用。这样一个流程下来,能够掌握单片机的基本操作。希望熟练掌握则需要进一步通过完成更为复杂的实验或者项目来锻炼。

前面的介绍中也强调了实验的重要性,实际上大多数学习单片机的初学者都会陷入一个误区,过度的重视实验,把绝大部分精力放在调试上,却忽视了单片机使用原理的学习。这种情况在大学生身上非常明显,很多情况下还没有能够理解单片机功能模块或者外设的使用原理和方法,就急切的展开实验。大多数情况下,编写的代码还存在缺陷甚至错误,无法达到预期的效果,就进入到了无尽的盲目修改和调试中。最典型的情况就是刚开始接触一个外设,连工作方式和寄存器的功能还没有弄清楚,就开始粘贴示例代码,并编译下载。反复调试不能成功,心态就开始变的浮躁,进而厌恶单片机。如果一直调试未果,学习热情被消耗殆尽,对单片机的使用产生恐惧感,最终就会放弃单片机的学习。细究这种情况的原因,其实就是急功近利的心态在作祟。初学者都急切的希望自己的代码可以跑起来,所以重心就从“学”偏移到了单纯的“做”上。这种心态我要特别提出来,希望能够告诫初学者必须保持平稳的心态,先仔细地浏览教材或者用户手册,理解工作原理,之后再调试代码完成实验。

单片机学习过程中每个人都会遇到各种各样的难题并且遭遇长时间的调试过程。遭遇到这样的情况,就需要冷静下来查找问题成因。一方面,可以借助于网络,查找是否有相似的问题并借鉴其他人的分析及解决方案,这是一个比较直接高效的方法;另一方面,反复地查阅单片机的数据手册或者用户手册,逐个分析列举可能的原理,并设置对应的测试来解决,一些“莫名其妙”的问题,往往需要通过这样的手段来解决。当然,能够获得有使用经验的老师或工程师的指导则是最直接、最有效的方法。随着单片机学习以及使用的深入,遇到的问题将越来越复杂化,这时候外界因为缺乏对此项目的深入了解,所能起到的协助作用就会减弱,这个时候独立的定位问题以及解决问题的能力就必须具备。所以在学习的整个过程中,都应该有意识地培养这种能力。

当熟悉单片机的使用之后,就应该完成一个视野转换的过程。这个时候关注范围则应该由单片机扩展到整个单片机系统上,不仅仅关心单片机上代码的实现,还需要考虑如何构建以单片机为核心的电子系统。单片机工程师一般会对一个或者若干个类型的单片机非常熟悉,比如,非常熟悉MSP430单片机。在得到工程项目需求时,能够快速地评估系统所需要的单片机控制核心,在满足需求的前提下一般会尽量采用最熟悉的单片机,合理设计划分系统电路功能模块,尽可能高效利用单片机片上的外设,以达到最优化的设计。如果评估发现使用的单片机不合适,则还需要更换单片机平台。在工业应用上,还必须考虑单片机系统所需要面对的严苛工作环境,保证系统能够顺利通过相应工业标准的测试。最终完成由点到面的扩展,逐步朝单片机工程师方向迈进。第2章改变世界从MSP430开始2.1 MSP430系列微控制器的发展和应用

MSP430系列微控制器最早诞生于1992年2月14日,但是当时的MSP430是作为ASSP(ASSP.Appliction Specific Stardard Parts,简称专用标准产品,是为在特殊应用中使用而设计的集成电路)器件使用在热表中。在1996年诞生了MSP430的第一代产品3xx系列MSP430,该系列MSP430使用ROM或者OTP(One Time Programmable)作为其非易失存储器,其计算能力低于4 MIPS,工作电压范围2.5~5V,提供LCD驱动器、ADC、定时器等外设。3xx系列又被分为大概3个子系列,分别是x31x、x32x和x33x。3xx全系列都能够提供LCD驱动器,在x32x系列中引入了14位AD,x33x引入了硬件乘法器、16位定时器TimerA和通用同步异步收发器(USART)。3xx系列因为受当时非易失存储器工艺的限制,采用了ROM、OTP或者EPROM作为其非易失存储器。在FLASH出现后3xx系列MSP 430就逐渐被淘汰,现在的TI器件列表里面也看不到该系列的身影。

2000年开始推出基于FLASH的1系列MSP430,该系列的MSP430最大的特点是采用了FLASH作为其非易失存储器,可以反复编程。微控制器性能也有所提高,达到了8 MIPS。

2002年开始推出4系列MSP430器件,该系列MSP430增加了LCD驱动模块,以加强其显示功能,性能上与1系列相近。

2005年开始推出2系列MSP430产品,CPU性能有了大幅度的提高,达到16 MIPS。待机功耗进一步降低,并减少了唤醒时间。

2009年开始推出5系列MSP430器件,该系列器件具备更大的FLASH空间和RAM容量。CPU性能达到了25 MIPS,为目前最高性能的MSP430系列产品。器件工作功耗进一步降低。

2010年开始推出value line系列MSP430,即为MSP430G2系列产品。该系列产品价格极为低廉,基本与8位的微控制器相当,但是能提供16位的性能。MSP430G2系列能够提供16 MIPS的计算能力,代码与其他系列兼容,但是在外设上有所删减。

2012年开始推出MSP430FR59xx系列MSP430产品。FR59xx系列属于MSP430的新一代“金刚狼”产品,该系列使用铁电存储器(FRAM)替代了FLASH,并采用超低漏电工艺技术。功耗只有上一代产品的一般,而且其FRAM写入速度相比较FLASH快100多倍。

MSP430一直以来都作为超低功耗微处理器的标杆产品,在便携式检测控制仪器、数据采集系统、智能仪表、医疗仪器、节能设备等方便都取得了广泛的应用。2.2 MSP430系列微控制器产品概况

目前的MSP430产品主要包括1系列、2系列、G2系列、4系列、5系列、6系列、FRAM系列、低电压系类和RF片上系统系列,有超过450种可供选择的器件。每个系列都有各自的特点,可以通过MSP430的器件标号解析每款微控制器的具体特性。下面以一个器件标号来解析其代表的含义,比如一款2系列的MSP430微控制器产品标号为:MSP430F2618ATZQWT-EP。

MSP:代表是混合信号处理器(Mixed Signal Processor)。这里的标号还可能出现其他两种情况,分别是CC和XMS。CC代表是带射频模块的片上系统系列;XMS代表该型号还在硅片实验阶段,尚未正式发布。

430:即代表的是430系列微控制器。

F:该位代表单片机类型。F代表的是FLASH;C代表的是ROM;FR代表的是铁电存储器(FRAM);G代表的是FLASH,但是为经济型产品;L代表没有片上非易失存储器;FG代表用于医疗应用的FLASH器件;CG代表用于医疗应用的ROM器件;FE代表用于电力测量的FLASH型器件;FW代表用于电子流量表的FLASH器件;AFE代表模拟前端器件;BT代表具备蓝牙的预编程器件;BQ代表用于无接触供电应用的器件。

2:代表器件所属的系列。1代表1系列,计算能力可以达到8 MIPS;2代表2系列,计算能力可以达到16 MIPS;3代表3系列,已经停产;4代表4系列,具备液晶驱动器,计算能力可以达到16 MIPS;5代表5系列,计算能力可以达到25 MIPS;6代表6系列,具备液晶驱动器,计算能力可以达到25 MIPS;0代表0系列,为低电压系列。

6:代表器件家族型号。

18:代表器件序号。

A:如果器件有版本更改,可能会出现这个标号用于表明不同的版本。

T:该位代表器件工作温度范围。S为0~50℃;I为-40~85℃;T为-40~105℃。

ZQW:该位代表器件封装。

T:该位代表器件分发的过程中的包装方式。

EP:该位是表示使用温度范围的扩展位。EP代表温度增强型,可以在-40~125℃的范围使用;Q1代表为汽车级器件;HT代表极限温度器件,可以在-55~150℃范围使用。

了解器件标号解析可以方便的明确器件的特性,下面来分别介绍各个系列MSP430产品的特点。

1系列MSP430工作电压为1.8~3.6V,能够提供8MIPS计算能力。该系列提供1~60KB的FLASH空间或1~16KB的ROM空间,具备512B~10KB的RAM。通用I/O口管脚数目有14、22和48三种。1系列片上外设包括10位或者12位的SAR型ADC、12位的DAC、模拟比较器、DMA、16×16硬件乘法器、16位定时器、通用同步、异步收发器(USART,支持UART和SPI接口)等,其特征框图如图2-1所示。1系列器件在低功耗模式下,RAM保持状态消耗电流为0.1μA,实时时钟状态消耗电流为0.7μA。从待机模式下唤醒耗时6μs,工作状态消耗电流为200μA/MIPS。图 2-1 1系列MSP430器件特征框图

2系列MSP430工作电压为1.8~3.6V,能够提供16 MIPS计算能力。该系列提供高达120 KB的FLASH空间,具备128 B~8 KB的RAM。通用I/O口管脚数目有更多的选择,具备10、16、24、32、48或者64个I/O口管脚。2系列MSP430片上还集成了极低功耗振荡器VLO,可以提供12kHz的振荡。2系列的I/O口管脚增加了内部上下拉功能。

片上外设新增了16位和24位的Sigma-Delta型ADC和片上运算放大器。通信接口方面新增了通用串行通信接口(USCI)模块,可以2支持SPI、IC、LIN、IrDA和UART接口。其特征框图如图2-2所示。2系列器件在低功耗模式下,RAM保持状态消耗电流为0.1μA,实时时钟状态消耗电流为0.7μA。在新增的VLO活动情况下待机消耗电流为0.3μA。从待机模式下唤醒耗时减少,仅需要不到1μs的时间。工作状态消耗电流为220μA/MIPS。图 2-2 2系列MSP430器件特征框图

G2系列MSP430是针对经济型应用而推出的MSP430产品,外设上相对其他系列器件稍有精简,但是价格上有大幅降低,基本与8位微控制器相当。G2系列器件仍然可以提供高达16 MIPS的计算能力,工作电压在1.8~3.6V。存储空间上可以提供512B~16KB的FLASH空间,RAM有128B、256B、512B三档可选。在存储器上较其他系列有所减少。外设方面可以提供10位的SAR型ADC、模拟比较器、定时器等。G2系列器件能够提供的I/O口管脚相对比较少,有4、10、16和224管脚四种,串行接口可以支持IC、SPI和UART。器件特征框图如图2-3所示。G2系列还具备非常有特色的电容触摸I/O口,可方便的用于触摸按键的设计。G2系列的低功耗性能基本与2系列产品相当。图 2-3 G2系列MSP430器件特征框图

4系列MSP430器件种类比较多,继推出1系列MSP430后就陆续有各种4系列器件推出。4系列产品最大的特点是一般都具备LCD驱动器,系列下面还有较多针对低功耗计量和医疗应用的优化型号。CPU性能上,该系列器件可以提供8 MIPS或者16 MIPS的计算能力。除了MSP430常见的基本外设外,该系列器件引入了RTC时钟和32×32位乘法器等新的外设。其器件特征框图如图2-4所示。4系列器件低功耗性能基本与1系列相当。图 2-4 4系列MSP430器件特征框图

5系列产品和6系列产品比较接近,6系列增加了LCD驱动器。这两个系列是MSP430中性能最高的两个系列,能够提供高达25 MIPS的性能。存储空间上可以提供高达256 KB的FLASH空间和18 K的SRAM。在外设方面新增高分辨率的PWM模块、增加USB通信接口、具备5V驱动能力的I/O口、24位精度的Sigma-Delta型ADC。这两个系列的器件片上管脚数目较多,片上外设非常丰富,同一类型外设在片上具备多个。两个系列的特征分别如图2-5和图2-6所示。这两个系列的产品将MSP430的工作功耗降到了165/μA/MIPS,唤醒时间不大于5μs。图 2-5 5系列MSP430器件特征框图图 2-6 6系列MSP430器件特征框图

FRAM系列是MSP430新一代基于铁电存储器的产品,铁电存储器相比较于FLASH进一步降低了功耗,加快了读写速度,特别是写的速度提高了100倍以上。FRAM系列器件能够提供24MHz的CPU工作速率。存储空间上,能够提供4~16K的FRAM作为非易失存储器,还可提供1~2K的SRAM。外设方便跟其他系列相近,如图2-7所示,由于FRAM的使用引入了存储器保护单元(MPU)。FRAM的使用让MSP430的工作功耗降低至82μA/MHz,相比较上一代产品降低了50%。图 2-7 FRAM系列MSP430器件特征框图

低电压系列MSP430是针对1.5V单节电池供电推出的超低电压微控制器,能够在0.9~1.65V范围内工作。CPU工作速率为4MHz,内部的非易失存储器只有ROM,可以通过外部存储器加载代码。器件的管脚数目较少,只提供11个I/O接口。外设方面提供定时器、看门狗和APOOL模块,特征框图如图2-8所示。APOOL模块集成了参考电压、8位ADC、8位DAC、比较器和电源电压检测的功能。低电压系列具备极低的工作功耗,在供电电压为1.3V的情况下工作功耗为45μA/MHz,待机模式电流消耗为6μA。图 2-8 低电压系列MSP430器件特征框图

CC430是集成有射频模块的SoC(片上系统)器件,实际是将5系列MSP430的内核与1 GHz以下射频通信芯片CC1101整合在一起。该系列器件能够提供最高20MHz的CPU运行速度,8~32K的FLASH空间以及2~4K的SRAM。外设方面更能提供MSP430通用的外设,如图2-9所示。工作功耗为180μA/MIPS,RAM保持电流为1μA。图 2-9 射频SoC系列MSP430器件特征框图

以上对MSP430的各个常见系列的特征做了简要的介绍,MSP430系列微控制器具备非常多的选择,可根据实际需求选择合理的器件。第3章吃透MSP430单片机的构架3.1 MSP430总体构架

MSP430是一种超低功耗的16位微控制器,其构架框图如图3-1所示。MSP430片上提供独特时钟的模块,为CPU和外设提供不同频率的时钟以达到最小化功耗的特点。MSP430是使用16位精简指令集的CPU,其数据总线和地址总线都是16位的。片上提供JTAG调试逻辑,所以支持在线调试。片上的非易失存储器、RAM、看门狗和16位的外设都是通过16位的系统总线访问。片上的非易失存储器主要包括ROM、FLASH和铁电存储器(FRAM),ROM主要是针对最早的3系列MSP430,FLASH是目前绝大多数MSP430所采用的存储器,FRAM是MSP430最新的FR系列和下一代金刚狼系类采用的非易失存储器。MSP430上不仅有16位的外设,还包括8位的外设。内部16位的数据总线通过8位转换电路,转换为8位数据总线完成对8位外设的访问。图 3-1 MSP430微控制器构架框图3.2 CPU结构和特点

MSP430微控制器采用的16位架构,提供16个高度灵活、可完全寻址的单周期操作16位CPU寄存器,分别是R0~R15。CPU采用精简指令集,仅采用了27条指令与7种统一寻址模式。MSP430 CPU(简称CPU),其CPU寄存器都为16位,所以其寻址空间有64KB。

随着MSP430的发展,其CPU扩展了寻址空间,达到了1MB。CPU结构也略有变化,CPU寄存器扩宽到了20位。这种新的CPU为MSP430X CPU(简称CPUX),MSP430X CPU向后兼容MSP430 CPU。二者的区别如图3-2所示,两种CPU数据总线的宽度仍然保持为16位,但是CPUX的地址总线扩展到了20位。CPUX的算术逻辑单元(ALU)也可以完成20位的计算。

CPUX虽然地址总线扩展,但是其中断向量表(参考中断系统)里存储的中断服务函数的其起始地址仍然是16位的,所在中断服务函数依旧是在地址空间的低64KB的范围,这一点也是和CPU兼容的。图 3-2 CPU和CPUX结构示意图3.3 存储空结构和地址空间

MSP430采用了冯·诺依曼结构,所以具备统一的地址空间。内部的特殊功能寄存器、外设、随机存储器(RAM)和FLASH共用一个地址空间。图3-3为MSP430x1xx系列MCU地址空间结构图,图3-4为MSP430x2xx系列MCU地址空间结构图。可以明显地看到二者之间的16区别,MSP430x1xx系列MCU寻址空间是标准的64 KB(2),而MSP430x2xx系列MCU寻址空间达到了128 KB。对于2xx系列、4xx系列、5xx系列和6xx系列的MSP430都出现了寻址空间超过64 KB的情况。这主要是因为新的MSP430引入了CPUX,CPUX扩展了寻址空间,使得寻址空间达到了1 MB。MSP430数据能够以字(2Byte)和字节(1Byte)的方式寻址,指令的寻址地址一般在偶地址。图 3-3 MSP430x1xx地址空间图 3-4 MSP430x2xx地址空间

对于FLASH不大于60KB的MSP430,FLASH的结束地址是0xFFFF;如果FLASH的大小超过了60KB,FLASH的会占用0xFFFF以上的地址空间。在FLASH地址空间的最高部分的地址从0xFFE0开始至0xFFFF被中断向量表占据(目前很多器件的中断向量表占据更大的空间,从0xFFC0到0xFFFF)。如果器件没有使用其中的一些中断向量,那么这部分中断向量占用的空间可以作为普通FLASH供数据或者代码使用。地址空间的0x0200为起始地址,往高地址增长是RAM占用的地址空间,RAM占用空间的大小跟具体的器件直接相关。RAM部分可以用来存储数据和指令。

地址空间的0x00FF到0x01FF是16位外设占用的地址空间,这部分空间必须使用字访问指令才能正确读取。如果错误的使用了字节访问指令,只会读取到偶地址的数据,高位的奇地址数据读取值一直为0。

地址空间的0x0010到0x00FF是8位外设占用的地址空间,这部分地址空间必须是用字节访问指令。如果错误地使用了字访问指令,读取字的高8位值不可预知。

地址空间最低的16个地址0x0000到0x000F,是特殊功能寄存器占用的地址空间,同样的该地址空间也必须使用字节访问指令进行读写。

下面通过两种不同资源的MSP430地址空间的对比验证以上的介绍。表3-1是MSP430G2553和MSP430F2619的地址空间对比。其中MSP430G2553具备(16K+256)字节FLASH和512字节RAM资源,其FLASH尺寸未超过60KB;MSP430F2619具备(120K+256)字节FLASH和4 K字节RAM资源,FLASH尺寸超过60KB。其中MSP430G2553的FLASH地址空间从0xC000开始,以0xFFFF为结束地址;MSP430F2619的FLASH容量超过60KB,所以地址空间还占用了比0xFFFF高的地址。MSP430G2553的RAM严格的遵守了从0x0200起始的规则,MSP430F2619则占用了0x010FF~0x01000地址段。外设和SFR部分则与之前的规则一致。3.4 时钟系统3.4.1 时钟源

MSP430典型的时钟源有4种,分别是低频振荡器LFXT1CLK、高频振荡器XT2CLK、数控振荡器DCOCLK和低频低功耗振荡器VLOCLK。其中LFXT1CLK和XT2CLK需要外部晶体或者谐振器组成振荡器,DCOCLK和VLOCLK是片上时钟源。

LFXT1CLK需要配合外部晶体(无源晶振)或者谐振器,组成一个完整的振荡器。配合外部晶体的情况下,LFXT1CLK能够构成一个低频的振荡器,一般情况下配合32 768Hz的晶体使用,并集成有补偿电容。G2xxx系列最大的振荡频率为50kHz。也可以利用外部时钟源向LFXT1CLK通过XIN管脚输入时钟,此时时钟频率可以在400 kHz~16MHz的范围内变化。

XT2CLK是一个高频时钟源,可以配合外部晶体或者谐振器使用,也可以从XIN管脚输入外部时钟源,工作的频率范围在400kHz~16MHz。

DCOCLK是集成在MSP430片上的数控振荡器,能够在一个非常宽的频率范围内工作,以G2xxx系列为例,可以高达16 MHz。DCO频率可以使用MSP430片上FLASH信息区的校准信息进行校准。

VLOCLK是片上集成的低功耗低频振荡器,典型的振荡频率为12 KHz。VLOCLK受工作电压和温度的影响较大,频率电源电压漂移约为4%/V,频率温度漂移为5%/℃。

时钟系统原理框图如图3-5所示。图 3-5 时钟系统的原理框图

VLOCLK的选用通过基本时钟模块控制寄存器BCSCTL1的LFXT1选择位XTS和BCSCTL3的低频时钟选择位LFXT1Sx位完成。XTS=0选择在低频模式下,LFXT1Sx=10选中VLO。VLO如果没有被选用,则会自动关闭以减少电流消耗。状态寄存器SR的OSCOFF位可关闭VLO。

LFXT1振荡器内部包括两个可变的补偿电容,由基本时钟模块控制寄存器BCSCTL3的XCAPx位配置,可在1~12.5pF的范围内分4档变化。XTS位会选择LFXT1振荡器工作在低频模式或者高频模式。选择工作在高频模式,则LFXT1Sx选取工作的频率范围;选取工作在低频模式,LFXT1Sx设置为00以选取LFXT1使用32 768 Hz的晶体。如果LFXT1CLK的频率低于设置值,则LFXT1振荡器错误标志位LFXT1OF位(在BCSCTL3寄存器中)会置位,以阻止CPU将LFXT1CLK作为时钟源。状态寄存器SR的OSCOFF位可关闭LFXT1振荡器。无论在高频模式还是低频模式,设置LFXT1Sx=11,OSCOFF=0,XCAPx=00,则选择使用XIN管脚外部时钟源。

XT2振荡器没有补偿电容,需要在外部电路添加。它由基本时钟模块控制寄存器BCSCTL1的XT2OFF选择使能或者禁用。基本时钟模块控制寄存器BCSCTL3的XT2Sx位选择工作的频率范围。如果XT2CLK的频率低于设置值,XT2振荡器错误标志位XT2OF(在BCSCTL3寄存器中)也会置位,用于禁止CPU将XT2CLK作为时钟源。状态寄存器SR的OSCOFF位可关闭XT2振荡器。

DCOCLK是MSP430微控制器自身认为是最可靠的时钟源,MSP430启动的时候将DCOCLK作为CPU的时钟源,看门狗(下个小结将介绍)也将DCOCLK作为时钟失效后的备用时钟源。DCO的关闭通过将状态寄存器SR的SCG0置1来实现。DCO频率的设置由3部分寄存器来完成,基本时钟模块控制寄存器BCSCTL1的RSELx位,选择16个标称频率范围;DCO控制寄存器DCOCTL的DCOx位,用于选择在每个标称范围内8个档次的微调。频率步进关系如图3-6所示。图 3-6 RSELx和DCOx的频率步进关系

DCOCTL的频率调整位MODx用于两个微调频率档次之间的频率调整,调整后的32个时钟周期的时间长度为t=(32-MODx)×tDCO+MODx×t。由频率调整模块调整后的时钟频率在f到fDCO+1DCOxDCOx+1之间,相当于实现了进一步的频率微调。MODx清零可以禁用该功能。MSP430上电后默认的DCO振荡频率约为1.045MHz。

DCO频率也会受温度和电源电压的影响产生漂移,在MSP430的FLASH信息段中存储着出厂校准数据供用户使用,用这些数据可以直接配置DCOCTL和BCSCTL1。可按照下面的方式配置:

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载