访问手机版页面
你的位置:老古开发网 > 单片机 > MSP430单片机 > 正文  
MSP430单片机Flash存储器的特性及应用
内容导读:
MSP430单片机Flash存储器的特性及应用* 浙江大学生物医学工程及仪器科学学院潘卫江胡大可 摘要MSP430F1121是TI公司的16位低功耗单片机,它的Flash存储器可以用作数据的在线写入和非易失性保存,与片内比较器结合可以方便地实现数据掉电保护功能。 关键词MSP430Flash存储器掉电保护 概述 以单片机为核心的仪表常要考虑发生突然掉电时的数据保存问题,一般有两种对策:一是用后备电源维持单片机持续工作,称为硬保护;另一种是在检测到掉电后,在电源完全失效前保护现场数据,上电后再恢复工作,称为软保护。本文主要讨论后者。 目前,设计掉电软保护功能时,数据存储介质常选用两类:一类是E2PROM,但写入时间较长,难以写入较多数据;另一类是带有后备电池的小容量SRAM构成的非易失性存储器,写入速度快,但增加了电路的复杂性。掉电电压的检测电路可用分立元件构成,也可用专用芯片来实现。前者增加了电路复杂性且降低了系统可靠性;后者增加了成本。 TI公司的Flash型单片机MSP430F11x1系列、MSP430F13x系列和MSP430F14x系列具有片内的Flash存储器。可以用于实现仪表的掉电数据保护,同时可以简化系统结构,提高系统可靠性。 本文采用TI公司的Flash型16位超低功耗单片机MSP430F1121,利用其片内的Flash存储器和模拟比较器,只需外接1组分压电阻进行分压取样,即可实现系统的掉电软保护。 一、 MSP430F11x1、MSP430F13x 和MSP430F14x简介MSP430F11x1为20引脚,采用SOWB封装,如图1所示。它有14位具有中断功能的I/O端口;有1个16位的WatchDog,可用作系统故障复位或定时器;有1个带有3组捕捉/比较寄存器的16位定时器Timer_A。有1个模拟电压比较器Compare_A;它的定时器和比较器功能丰富,可以实现多种用途。例如,外接电阻和电容后可以构成1个高精度的A/D转换器。 图1MSP430F1121引脚封装MSP430F13x和MSP430F14x同为64引脚,采用PQFP封装,芯片为1cm2的正方形,如图2所示。它有48位I/O端口;有1个16位的WatchDog;有2个带有多组捕捉/比较寄存器的16位定时器Timer_A、Timer_B;有1个模拟比较器Compare_A;有1~2个串行接口;有1个12位的多通道A/D转换器。F14x还具有1个硬件乘法器,可实现16位乘16位的操作。 图2MSP430F14x引脚与封装二、 Flash存储器特性 15[]0〖9〗SEG WRT〖〗WRT〖14〗MEras〖〗EraseFlash型单片机的工作电压为1.8~3.6V。可外接32kHz~8MHz晶振,并由内部DCO振荡器实现主时钟。有5种低功耗模式,在2.2V、32kHz晶振、1MHz主频、活动模式时工作电流为160μA;当仅保持RAM数据时为0.1μA。它的Flash存储器使用尤为方便。 F1121片内除256B RAM外,还有4KB+256B的Falsh存储器。Flash存储器为分段结构,分为主存储器(main memory)和信息存储器(information memory),如图3所示。F13x和F14x的片内存储容量更大,RAM在256B到2KB之间,Flash储存器在8KB到60KB之间,也包含主存储器和信息存储器,分段方法及控制方法与F1121相同。 Flash存储器主要用作程序存储器,可经JTAG接口下载程序。程序运行时能对其中的1段或多段进行擦/写操作,因此兼有数据存储器功能。Flash 0FFFFH[]0FE00H 0FDFFH[]0FC00H 0FBFFH[]0FA00H 0F9FFH[]0F800H 0F7FFH[]0F600H 0F5FFH[]0F400H 0F3FFH[]0F200H 0F1FFH[]0F000H 010FFH[]01080H 017FFH[]01000H[]0段 中断向量1段2段3段4段5段6段7段A段B段[]Flash主存储器 信息存储器图3MSP430F1121r Flash存储器结构 存储器的擦/写次数为105次,数据在室温下可保存100年。 以下针对具体的应用,详细介绍F1121的Flash存储器用法。 1. F1121 Flash存储器结构 Flash存储器按段分布:主存储器每段为512个字节,共8段(0~7段);信息存储器每段为128个字节,共2段(A,B段)。最小擦除单位为1段。 主存储器和信息存储器的特性除分段大小外基本相同。 2. Flash存储器控制寄存器 有3个16位控制寄存器:FCTL1,FCTL2,FCTL3。为了防止误操作,写入时高字节必须为0A5H,但读出时为096H。 (1) Flash控制寄存器1(FCTL1) 定义对Flash存储器的擦/写操作。 Erase 和MEras 位控制擦除操作,置位后,往定义的区域范围内任一地址进行写操作(写入任意数)后该段即被擦除。前者每次只擦除一段,后者擦除所有段。 WRT和SEG WRT位控制写操作:前者每次写1个字节,后者可在段内连续写入。 15[]0〖9〗SSEL1〖〗SSEL0〖〗FN5〖〗FN4〖〗FN3〖〗FN2〖〗FN1〖〗FN0(2) Flash控制寄存器2(FCTL2) 定义Flash时钟发生器的时钟源和频率,一般可取上电复位时的缺省值。 15[]0〖11〗EMEX〖〗LOCK〖〗WAIT〖〗ACCV IFG〖〗KEYV〖〗BUSY(3) Flash控制寄存器3(FCTL3) 指示对Flash存储器操作过程中的出错状态。 其中,较重要的是BUSY位,置位表示不能对Flash存储器操作;否则会出错。在每次进行擦/写操作前都要测试该位。 3. Flash存储器擦除、读和写操作 进行擦/写操作的编程电压(VPP)由片内产生;擦/写时钟由Flash时钟发生器产生。 在擦/写时不能有中断产生,也不能执行位于将被擦/写区域的程序。如果想要保留原数据,应在擦除前先把数据转存入RAM中,擦除后再写回。 擦除时,先在FCTL2中设定时钟;如果没有特殊要求,可用上电时的缺省值。然后测FCTL3的BUSY位。等到BUSY复位,在FCTL1中设定Erase(1段擦除)或MEras位(多段擦除),再往目标地址范围内任一地址写入任意数据后,即完成对这一段的擦除。 写入操作类似于擦除操作,只是往目标地址中写入的是实际值。 对Flash存储器的读操作与RAM和ROM完全一样。 四、 掉电保护应用实例 1. 硬件设计 掉电保护功能是针对一个工业时间继电器设计的,有关部分的电路如图4所示。电源电压为5V,稳压电压为3.3V加至F1121的VCC。比较器A的反向输入端(P2.4)取自分压电阻(图中分压值为20V);同向输入端为参考电压,设为内部电压(由软件设定,这里为VCC/2,即1.65V)。正常工作时比较器A输出为低,由图中参数可算出。当电源电压降为4.125V时,VCC仍稳定在3.3V;但比较器A输出将翻转,产生中断。 Flash存储器写入时电压必须保持在2.7~3.6V,因此2.7V是处理的下限。1段(512个字节)的写入时间为3ms。据此,可选择合适的电容,由RC放电电路可得: V(t)=V0 e-t/τ 式中,V0= 3.3V,V(t)=2.7V,t=3ms,R=5MΩ,则: τ=RC=-t / ln\[V(t)/V0\] C=0.075μF 图4应用实例经实际测试,在取C=1μF时即能正常工作。为可靠起见,可取C=10μF。如果写入的数据较多,需要更长的处理时间,可以加大电容容量,并在供电回路中串接二极管,以限制反向放电。 从正常工作状态到临界状态,电压有0.875V(5.0V-4.125V)的缓冲,因此,电源电压的变动将不会引起误操作。 2. 软件设计 程序分为上电复位初始化程序和掉电中断处理程序,如图5及图6所示。图5初始化程序程序初始化时,必须先读取掉电保护标志来决定程序流向,然后把掉电标志复位。在中断处理程序中,对Flash存储器写入数据前都应先擦除标志所在区域;但为节省中断处理时间,可在初始化时预先进行擦除操作,以备下一次的掉电处理写入。 掉电处理程序中必须完成两件事:掉电保护标志置位(也应写在Flash存储器中);将待保护数据写入Flash存储器中。一般可把数据存入信息存储器中,如果数据量大,可写入没有被程序占用的主存储器中。写入时要关闭所有中断,同时对原系统当前执行的程序作相应的现场保护处理。 应用掉电保护功能的工业时间继电器,需保存16字节预置参数和16字节掉电瞬间运行状态参量以及1字节的掉电保护标志,即总的保存数据为33图6掉电保护中断服务程序字节。其中,16字节的预置参数在运行过程中设定,同时已写入B段中。因此,中断处理程序只须将17字节的状态参量写入A段中。经多次实际断电试验,工业时间继电器均能在重新上电时正确恢复断电时的保护数据。MES 参考文献 1胡大可MSP430系列超低功耗16位单片机原理与应用.北京:北京航空航天大学出版社,2000
标签:
来源:单片机与嵌入式系统应用 作者:浙江大学生物医学工程及仪器科学学院 潘卫江 胡大可 时间:2006/2/12 0:00:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐