datasheet

MSP430系统应用结构设计与选型

2008-03-07来源: 单片机与嵌入式系统应用 关键字:系统复位  日历时钟  系列单片机  模拟比较器  液晶驱动  应用系统  捕获模式  乘法器

  1 MSP430简介

  MSP430是TI公司推出的16位单片机系列产品,在电池供电的低功耗应用中具有独特的优势。其工作电压为1.8~3.6 V,正常工作时功耗可控制在200μA左右,低功耗模式可实现2μA甚至O.1μA的低功耗。MSP430系列单片机作为性能优异的MCU在中国已经得到了广泛的应用。MSP430具有高集成度,通常在单个芯片上集成了12位的A/D转换器、比较器、多个定时器,以及片内USART、看门狗、片内DCO等。一般单片就可满足大多数的应用需要。

  MSP430单片机的程序存储器是Flash存储器,并且支持JTAG在线编程,可以方便地实现程序的下载、仿真、调试和升级。

  目前整合性最好的MSP430F44X系列,具有60 KB程序存储(可记录数据),2 KB片内RAM,6个I/O端口(P1和P2具有中断能力),160段液晶驱动,2个串行端口,4个定时器(其中TB带有7个捕获/比较器,包括看门狗),模拟比较器,硬件乘法器,8路12位A/D转换器,频率调整电路FLL 以及系统复位SVS模块等。而基本型的 MSP430F1101 和MSP430C1101只有1 KB程序存储、128字节片内RAM、模拟比较器和2个定时器等。

  MSP430F44X与MSP430F11X在硬件结构上、在系统整合上存在较大差异;MSP430F41X与MSP430F11X的差异不是很大。但这3系列芯片的价格由几元到数十元不等,那么如何选择系统芯片呢?以3种芯片为例,其系统功能框图分别如图1、图2、图3所示。

  

  

  

  

  

  

  

  

  

  2 常用的MSP430应用系统的设计方案

  在图4所示系统中,有模拟输入、脉冲采集、日历时钟、液晶显示、键盘操作和外围设备控制等。可采用以下几种方案进行MSP430的选型。

  

  

  

  (1)选用MSP430F44X系列

  这个方案设计最简单,因为目前MSP430F44X系列芯片是集成度最高的。该系列任何一款芯片都能胜任(一般程序字节不会大于32 KB)。

  (2)选用MSP430F41X系列

  如果程序在8 KB范围以内,那么这是一种较好的方案。MSP430F41X系列虽然不能直接进行A/D转换,但整个系统价格适中。

  (3)选用MSP430F11XX系列

  该系列芯片不能直接驱动液晶,且程序量较小,也没有直接的A/D转换能力。与前两种方案相比,这是明显的不足,但其价格是最低的。

  在这3种方案中,如果对生产成本要求不高,则第1种方案最好;如果要考虑批量的生产成本,则第3种方案最好,性价比最高。如果使用MSP430F1121A,则批量报价不到9元,适合于大批量生产、成本敏感的产品,可得到最高的性价比。但第3种方案存在很多问题,有待解决。

  3 高性价比的MSP430应用系统解决方法

  图4是较为经典的MSP430应用系统框图。如果使用最经济的MSP430系列器件MSP430F11XX系列,则要解决5个问题:模/数转换问题、液晶显示问题、程序量小的问题、日历时钟的程序化问题及串行通信问题。

  3.1模/数转换问题解决方案

  MSP430F11XX系列单片机片内有模拟比较器Comparator_A和功能强大的定时器Time_A,可以构成斜率(Slope)A/D转换,实现从模拟到数字的转换。具体原理如图5所示(这里以电阻模拟量到数字量的转换为例)。

  

  

  

  在图5中,Rref、Rmeas分别为标准的参考电阻和被测量的电阻,电容ca0起充放电作用。比较器的输出CAOUT用于驱动定时器捕获的发生。MSP430内部的模拟比较器能产生用于比较的模拟电压(关闭内部参考电压,使用外部参考电压O.25Vcc、O.5Vcc和二极管管压降)。比较器负端选择O.25Vcc。

  首先,标准电阻Rref对电容CAO充电到VCC,再通过参考电阻Rref放电,同时记录定时器值T1;当电容放电到O.5Vcc时,比较器产生输出,CAOUT触发定时器产生捕获动作,将定时器值T2读出。其次,使用被测量电阻Rmeas对电容充电到Vcc,再通过Rmeas放电,同时读取定时器值T3;当电容放电到0.5Vcc时,比较器输出信号再次捕获定时器数据T4,则在电容放电的线性区域可以得到被测量电阻的阻值:

  

  对其他电压等物理量的测量也可采用此办法。

  3.2 液晶显示问题解决方案

  MSP430F11XX没有液晶驱动能力,必须外部扩展。如图6所示,可以使用I/O输出直接驱动价格低廉的液晶驱动芯片来显示信息。如果这样,为什么还要选用自带液晶驱动的价格昂贵的MSP430F43X或MSP430F44X呢?

  

  例如,用MSP430的Px.x两个I/O口与驱动芯片的CLK、DATA进行通信,即可实现所需的显示信息。可以节省本就不多的I/O端口以作他用。

  3.3 程序量小问题解决方案

  MSP430F11XX系列单片机最大的程序容量只有4 KB,对较为复杂的应用来说程序空间比较小。对于MSP430系列单片机有个巧妙的解决办法:由于MSP430单片机的存储器具有线性统一编址的特点,因此单片机运行的程序可以在除了片内外围模块空间以外的任何存储空间,这里RAM用作程序存储器。又由于RAM内容可变,故可将程序存放在外部存储器中,在需要时调到RAM中,再执行RAM中的程序。外部存储器可选用串行24C系列为E2PROM,既可减小系统体积,又可使程序空间增加32 KB乃至更多,且系统总成本增加很少。24C系列E2PROM与MSP430单片机的接口,只需要2根I/O口线和2个上拉电阻。

  首先,需要将存放在E2PROM中的应用程序划分为较小的模块。这里针对MSP430F1121A将每个模块的大小限定在128字节内。MSP430F1121A的片内RAM有256字节,一半用于存储程序处理中的数据,另一半用于暂存程序调度的程序。

  其次,MSP430F1121A的片内存储器用于存放对24C系列存储器的读写操作程序,以及最常用的处理程序和各种中断服务程序等。将各个小模块的应用程序存放在E2PROM中,同时,每个小模块的应用程序在E2PROM中的起始位置和模块长度在MSP430的程序存储器中用数据表格的形式存放。每当要调用在E2PROM中的小模块时,就在表格中查找。使用E2PROM读程序,在E2PROM中读出全部的小模块程序数据到MSP430的RAM中的后128字节。

  最后,将程序计数器(PC指针)压栈,再改变PC内容为280H(RAM的后128字节开始位置),程序将由此开始运行。该模块运行完毕后,最后一句是RET,将刚压栈的PC指针恢复。程序继续运行MSP430 Flash中的主程序。

  3.4 日历时钟程序化问题解决方案

  由于MSP430系列单片机的超低功耗特性,使用其内部定时器模块的比较模式实现日历时钟,时钟源使用钟表32 768 Hz晶振产生的ACLK信号。将定时器模块设置为1 s中断一次,在中断服务程序中编写日历时钟程序。只要在编写的过程中注意公历的各种推算,甚至可以使用某种算法将农历也编写进去。在中断程序结束后立即进入低功耗LMP3模式,这时系统耗电小于1μA,比多数的专用日历时钟芯片的耗电还要小。选材时,只要选用精度高的晶振,做出的时钟将是很准确的,而且使用单片机将日历时钟程序化从各方面讲(可靠性、功耗、成本、体积等)都是很好的解决方案。

  3.5串行通信问题解决方案

  串行发送相对简单一点:设置Time_A为比较模式,比较的数据体现每一位的发送时间,使用中断,每当时间到则发送下一位,全部发送则发送完毕。

  串行接收相对复杂一点:设置Time_A为捕获模式,要捕获到串行通信的起始位;捕获到起始位后,将Time_A设置为比较模式,同时第一位与后面其他位的定时时间不一样,第一位的定时时间是其他位的1.5倍。所有数据接收完毕即结束。在硬件上使用RS232或RS485都可以。

  另外,也可以使用外围模块进行通信。例如使用半双工或全双工的RS485芯片进行485的信息传递。

  4 结 论

  实践证明,在充分掌握MSP430系列各个片内模块的性能与特性基础上,选用最简单、最便宜、最常规的器件,设计高性价比的应用系统是非常可行的;同时随着产量的增加,经济效益也会显著增加。

 

关键字:系统复位  日历时钟  系列单片机  模拟比较器  液晶驱动  应用系统  捕获模式  乘法器

编辑:ssb 引用地址:http://www.eeworld.com.cn/afdz/2008/0307/article_380.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:Holtek 推出具有LCD功能的A/D型MCU
下一篇:基于AT89C51的换向控制器在周期换向电源中的应用

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

使用汽车起停系统,如何使信息娱乐设备不复位?

引擎——例如,如果车轮开始滚动、电池电量降至过低或挡风玻璃上出现水汽凝结。此外,大多数系统可识别临时停车和行程结束之间的差异。如果驾驶员的安全带解开,或者车门或行李箱打开,系统不会重新起动引擎。如有需要,按下按钮即可完全禁用自动启停功能(至少现在是这样)。但是,当引擎重新起动,12 V电池有可能已经降至5 V以下,当信息娱乐系统开启或其他电子设备需要高于5 V的电压时,可能导致这些系统复位。有些导航和信息娱乐系统采用5 V或更高的输入电压工作。当输入电压在引擎重新起动期间降至5 V以下,若DC-DC转换器仅具有输入电压降压功能,这些系统将复位。显然,汽车在启停状态下重新起动时,音乐播放器或导航系统的复位是无法接受的。解决方案ADI
发表于 2018-08-31
使用汽车起停系统,如何使信息娱乐设备不复位?

STM32 内核复位 与 系统复位 区别及程序实现

1 写在前面某些系统允许复位,但对外设又有特殊要求:某一个IO状态不能因为复位而改变,某一个定时器计数器不能改变等。例子:A系统通过一个IO控制B系统的电源,而这个IO置高时才开启B系统的电源。正常工作过程中,B系统只有收到A系统关机命令任务才会进行关机(也就是说不能掉电关机),而A系统在工作过程中有复位的需求。这个时候如果使用常规的复位方式,就会复位IO,不符合要求。如果有一种方式只复位内核而不复位外设就好了。接下来就介绍两种复位的实现方式。2 关于复位说到复位,我们都不会陌生,系统基本都有一个复位按键。复位的种类有很多:上电复位、掉电复位、复位引脚复位、看门狗复位、软件复位等。上面说的复位按键,也就是对应复位引脚复位;而本文
发表于 2018-08-22

STC89C52MCU--软件实现系统复位

单片机系统复位(热启动之一)STC单片机ISP/IAP控制寄存器在特殊的功能寄存器中的地址为E7H,不能为寻址,该寄存器用来管理和 ISP/IAP 相关功能的设定以及是否软件复位等。单片机复位时,该寄存器全部清零。ISP/IAP寄存器位序号D7D6D5D4D3D2D1D0位符号ISPENSWBSSWRSTWT2WT1WT0ISPEN -- ISP/IAP 功能允许位。0禁止允许ISP/iAP变成改变FlashSWBS -- 软件选择从用用程序区启动,还是ISP程序区启动。要与SWRST直接配合才可以确定。SWRSt -- 1 产生软件复位,硬件自动清零。0不操作。WT2、WT1、WT0 -- ISP/IAP编程时间设定CPU等待
发表于 2018-08-22

上电时实现延时系统复位的IC

  通过给晶体管增加一些电容、二极管和电阻,使用保持时间可调的复位IC,将纯手动复位转换为自动复位。  在大多数应用中,(手动复位)引脚通常与开关相连,为管理芯片制造手动复位信号。随后,在预先设定的有效延时时间后,其从低电平有效复位回到高电平状态。手动复位适用于大多数应用;然而,它需要人为干涉产生复位信号。在一些应用中,手动复位存在争议,因为系统每次上电时都要执行。  更进一步,包括 嵌入式 处理器在内的应用需要复位输出为保持高电平——也就是说,非有效——在应用复位或低有效之前的某个时期。如图1电路在设备上电时无需按下复位键的情况下,被证实是有效的,因为在复位的低信号到来之前,复位自动以预先设定的保持时间发生。  电路使用带引
发表于 2018-03-02
上电时实现延时系统复位的IC

单片机嵌入式系统软件的几种复位方式

    飞思系列的8位单片机没有特定的控制寄存器可以实现软件复位,当程序运行过程中代码需要强行产生一个复位时必须通过一些软件技巧实现:    软复位,程序从头运行,硬件不复位。复位脚无复位脉冲输出    这可以通过直接获取复位向量的方式来实现:    void ForceReset(void)    {    uniON {    void (*vector)(void);    byte c[2];    } SOFtReset; 
发表于 2018-02-14

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 视频监控 智能卡 防盗报警 智能管理 处理器 传感器 其他技术 综合资讯 安防论坛

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved
pt type="text/javascript" src="//v3.jiathis.com/code/jia.js?uid=2113614" charset="utf-8">