MSP430功能模块详解系列之——FLASH存储器

发布者:ByteChaser最新更新时间:2016-08-15 来源: eefocus关键字:MSP430  FLASH存储器 手机看文章 扫描二维码
随时随地手机看文章
一、MSP430单片机FLASH存储器模块特点 

1.8~3.6V工作电压,2.7~3.6V编程电压;
擦除/编程次数可达100000次:
数据保持时间从10年到100年不等:
60KB空间编程时间<5秒:
保密熔丝烧断后不可恢复,不能再对JTAG进行任何访问;
FLASH编程/擦除时间由内部硬件控制,无任何软件干预;


二、FLASH存储器的操作

由于FLASH存储器由很多相对独立的段组成,因此可在一个段中运行程序,而对另一个段进行擦除或写入操作。正在执行编程或擦除等操作的FLASH段是不能被访问的,因为这时该段是与片内地址总线暂时断开的。

对FLASH模块的操作可分为3类:擦除、写入及读出。而擦除又可分为单段擦除和整个模块擦除;写入可分为字写入、字节写入、字连续写入和字节连续写入

1.FLASH擦除操作:对FLASH要写入数据,必须先擦除相应的段,对FLASH存储器的擦除必须是整段地进行,可以一段一段地擦除,也可以多端一起擦除,但不能一个字节或一个字地擦除。擦除之后各位为1。擦除操作的顺序如下:


选择适当的时钟源和分频因子,为时序发生器提供正确时钟输入
如果Lock=1,则将它复位
****BUSY标志位,只有当BUSY=0时才可以执行下一步,否则一直****BUSY
如果擦除一段,则设置ERASE=1
如果擦除多段,则设置MERAS=1
如果擦除整个FLASH,则设置RASE=1,同时MERAS=1
对擦除的地址范围内的任意位置作一次空写入,用以启动擦除操作。
在擦除周期选择的时钟源始终有效
在擦除周期不修改分频因子
在BUSY=1期间不再访问所操作的段
电源电压应符合芯片的相应要求

对FLASH擦除要做4件事

对FLASH控制寄存器写入适当的控制位
****BUSY位
空写一次
等待


2.FLASH编程操作。对FLASH编程按如下顺序进行:


选择适当的时钟源和分频因子
如果Lock=1,则将它复位
****BUSY标志位,只有当BUSY=0时才可以执行下一步,否则一直****BUSY
如果写入单字或单字节,则将设置WRT=1
如果是块写或多字、多字节顺序写入,则将设置WRT=1,BLKWRT=1
将数据写入选定地址时启动时序发生器,在时序发生器的控制下完成整个过程

块写入可用于在FLASH段中的一个连续的存储区域写入一系列数据。一个块为64字节长度。块开始在0XX00H、0XX40H、0XX80H、0XXC0H等地址,块结束在0XX3FH、0XX7FH、0XXBFH、0XXFFH等地址。块操作在64字节分界处需要特殊的软件支持,操作如下:


等待WAIT位,直到WAIT=1,表明最后一个字或字节写操作结束
将控制位BLKWRT复位
保持BUSY位为1,直到编程电压撤离FLASH模块
在新块被编程前,等待trcv(编程电压恢复时间)时间


在写周期中,必须保证满足以下条件:

被选择的时钟源在写过程中保持有效
分频因子不变
在BUSY=1期间,不访问FLASH存储器模块

对FLASH写入要做4件事

对FLASH控制寄存器写入适当的控制位
****BUSY位
写一个数据
继续写一直到写完


3.FLASH错误操作的处理:在写入FLASH控制寄存器控制参数时,可引发以下错误:


如果写入高字节口令码错误,则引发PUC信号。小心操作可避免
在对FLASH操作期间读FLASH内容,会引发ACCVFIG状态位的设置。小心操作可避免
在对FLASH操作期间看门狗定时器溢出。建议用户程序在进行FLASH操作之前先停止看门狗定时器,等操作结束后再打开看门狗
所有的FLASH类型的MSP430器件0段都包含有中断向量等重要的程序代码,如果对其进行擦除操作,将会引起严重的后果
不要在FLASH操作期间允许中断的发生


4.FLASH操作小结

对FLASH的操作是通过对3个控制字中的相应位来完成的,只有控制位的唯一组合才能实现相应的功能。下表给出了正确的控制位组合:

功能

BLKWRT WRT Meras Erase BUSY WAIT

Lock

字或字节写入 0 1 0 0 0 0 0
块写入 1 1 0 0 0 1 0
段擦除并写入 0 0 0 1 0 0 0
擦除A和B以外段 0 0 1 0 0 0 0
全部擦除并写入 0 0 1 1 0   0

三、FLASH寄存器说明

允许编程、擦除等操作首先要对3个控制寄存器(FCTL1、FCTL2、FCTL3)的各位进行定义。它们使用安全键值(口令码)来防止错误的编程和擦除周期,口令出错将产生非屏蔽中断请求。安全键值位于每个控制字的高字节,读时为96H,写时为5AH。

1.FCTL1 控制寄存器1(用于控制所有写/编程或者删除操作的有效位),各位定义如下:

15~8 7

6

5

4

3

2

1

0

安全键值,读时为96H,写时为5AH BLKWRT WRT 保留 MERAS ERASE  

BLKWRT——段编程位。如果有较多的连续数据要编程到某一段或某几段,则可选择这种方式,这样可缩短编程时间。在一段程序完毕,再编程其它段,需对该位先复位再置位,在下一条写指令执行前WAIT位应为1。


0:未选用段编程方式
1:选用段编程方式


WRT——编程位


0:不编程,如对FLASH写操作,发生非法访问,使ACCVIFG位置位;
1:编程


MERAS——主存控制擦除位


0:不擦除
1:主存全擦除,对主存空写时启动擦除操作,完成后MERAS自动复位


ERASE——擦除一段控制位


0:不擦除
1:擦除一段。由空写指令带入段号来指定擦除哪一段,操作完成后自动复位


2.FCTL2 控制寄存器2(对进入时序发生器的时钟进行定义),各位定义如下:

15~8 7

6

5

4

3

2

1

0

安全键值,读时为96H,写时为5AH SSEL1 SSEL0 FN5 FN4 FN3 FN2 FN1 FN0

SSEL1、SSEL0——选择时钟源


0:ACLK
1:MCLK
2:SMCLK
3:SMCLK


FN5~FN0——分频系数选择位


0:直通
1:2分频
2:3分频
......
63:64分频


3.FCTL3 控制寄存器3(用于控制FLASH存储器操作,保存相应的状态标志和错误条件),各位定义如下:

15~8 7

6

5

4

3

2

1

0

安全键值,读时为96H,写时为5AH     EMEX Lock WAIT ACCVIFG KEYV BUSY

EMEX——紧急退出位。对FLASH的操作失败时使用该位作紧急处理


0:无作用
1:立即停止对FLASH的操作


Lock——锁定位,给已经编程好的FLASH存储器加锁


0:不加锁,FLASH存储器可读、可写、可擦除
1:加锁,加锁的FLASH存储器可读、不可写、不可擦除


WAIT——等待指示信号,该位只读。


0:段编程操作已经开始,编程操作进行中
1:段编程操作有效,当前数据已经正确地写入FLASH存储器,后续编程数据被列入计划


ACCVIFG——非法访问中断标志。当对FLASH阵列进行编程或擦除操作时不能访问FLASH,否则将使得该位置位


0:没有对FLASH存储器的非法访问
1:有对FLASH存储器的非法访问


KEYV——安全键值(口令码)出错标志位


0:对3个控制寄存器的访问,写入时高字节是0A5H
1:对3个控制寄存器的访问,写入时高字节不是0A5H,同时引发PUC信号
KEYV不会自动复位,须用软件复位


BUSY——忙标志位。该位只读。每次编程或擦除之前都应该检查BUSY位。当编程或擦除启动后,时序发生器将自动设置该位为1,操作完成后BUSY位自动复位


0:FLASH存储器不忙
1:FLASH存储器忙

关键字:MSP430  FLASH存储器 引用地址:MSP430功能模块详解系列之——FLASH存储器

上一篇:MSP430与PCF8576驱动程序(可以借鉴IIC的使用方法)
下一篇:msp430一段有关AD数模转换 参考电压设置的c程序

推荐阅读最新更新时间:2024-03-16 15:05

MSP430F149的串口RS232接口
1、 概述 具有同步串口模式(SPI),异步通信模式(UART)。 作异步通信时,P3.4,P3.5,P3.6,P3.7第二功能分别是UTXD0, URXD0, UTXD1, UTXD2 2、 使用方法概述 2.1 程序架构 配置寄存器设置工作模式 { 设置IO口为第二功能作为串口收发引脚; 使能串口收发功能; 选择每帧数据位为7或8; 选择波特率发生器时钟源; 配置波特率(查表得出值再配置UxBR0, UxBR1,UxMCTL); 软件清除串口复位位(SWRST); 若采用中断方式则使能接受、发送中断 } 编写接受/发送程序,可采用查询方式或中断方式。同51单片机不同的是,UTXIFG,
[单片机]
基于MSP430的FSK 调制与解调制技术
首先,讲讲什么是FSK?FSK(Frequency -Shift keying)中文你翻译过来就是頻移键控,它是利用载波的频率变化来传递数字信息。 FSK可以将频率信息转换成数字信息,这个叫做FSK的解调制;而将数字信息转换成频率信息,就叫做FSK的调制。那么FSK能干嘛?FSK有一个很 酷 功能 可以与音频口通讯。无论是安卓系统的手机还是iOS系统的手机,统统可以通过FSK调制与解调制技术实现与手机的数据通讯。安卓系统还好,还可以通过USB口直接通讯,而苹果的iOS却没有开发USB协议,如果想与iphone等苹果产品直接进行数据通讯,除了花大量时间与金钱去做MFI认证,那也只能通过音频了。前阵子很火的 卡拉卡 ,就是走的这种方案
[单片机]
基于<font color='red'>MSP430</font>的FSK 调制与解调制技术
基于MSP430单片机的SVS(电源电压监控器)模块设计
电源电压 监控 对于 单片机 来说,也是经常要用的模块。当需要稳定的工业级产品时,经常要对电源电压监控,以保证单片机系统工作于正常环境或范围中。 MSP430 F16x提供了一个现成的电源电压监控器模块SVS,方便检测电源电压或者是外部电压,可以设置为电压过低时复位 或置标志位。本程序即完成SVS的设置使用的程序库(msp430f14x没有此模块)。 硬件介绍: MSP430单片机含有的SVS模块可以很方便的监控电源电压或外部电压。 电源电压监控器(SVS)是用于监控AVCC电源电压或外部电压。 SVS的可配置当电源电压或外部电压下降到低于用户选择的电压级别时设置一个标志,或产生POR复位。 SVS模块有以下特点:可以监控
[单片机]
基于<font color='red'>MSP430</font>单片机的SVS(电源电压监控器)模块设计
如果你是MSP430初学者,希望这些问题的解答可以帮助你
  1-问:JTAG 与 I/O 功能之间的 MSP430 引脚复用   答: 四个引脚 P1.7 - P1.4 在 20 与 28 引脚 MSP430F1xx 器件上均同时具有 I/O 与 JTAG 功能。这些引脚的默认功能是,当器件通电时具有 I/O 功能。当测试引脚拉高时,则将这些引脚选为 JTAG。当使用交互式系统内调试程序时,这些器件的 FET 会将这些引脚处于 JTAG 模式下。如欲了解有关在使用调试程序时从 JTAG 模式发布引脚的信息,敬请参阅《FET 工具用户指南》。   注:如果将外部电路附加到共享引脚上,则必须考虑 JTAG 信号对引脚的相互影响。   如果通过 JTAG 对该器件进行系统内交互式编程或调试,
[单片机]
基于MSP430的湿度计及定标
对于商业应用FPGA还远没有达到取代单片机,甚至完全取代DSP的程度。随着FPGA的普及,学DSP的人越来越少,MCU又五花八门,ARM/CorteX有计算机的抢饭碗,学电子的大多都会选择FPGA。真正能接触到科技前沿的毫无例外全是FPGA,大多数人只能停留在商业层面。话虽如此,不过现今赚钱才是硬道理,行行都能出状元。其实单片机也有大智慧,不必一味的追求高科技。 实物图如下: 上位机软件GUI界面: 系统功能概述:该湿度计由湿度采集和显示两部分组成,显示部分通过串口排线与采集部分相连,并采用7段式LED显示湿度值,定标所需的最小二乘法直线拟合参数由上位机软件计算完成并将参数发回湿度计进行定标处理。软件的定标也分手动和自
[单片机]
基于<font color='red'>MSP430</font>的湿度计及定标
MSP430-GRACE 实战(一):LED流水灯
Grace 是 Graphical Code Engine 的缩写,是 TI 为了方便用户开发 MSP430 提供的图形化代码配置工具,但是目前只有部分 MSP430 的型号支持 Grace,如 G2 系列 本系列文章使用 Grace 配置 MSP430 外设,快速实现功能,帮助大家进一步了解 MSP430 文章侧重点是功能的使用,寄存器原理只有部分的阐述,适合有一定基础同学(不论是 STM32还是MSP430基础),深入的原理需要自行探索 一、开发平台 1.1 硬件平台 MSP430G2553 口袋实验平台: 1.2 软件平台 是 TI 公司推出的集成开发环境:CCS V5.5(Code Composer Stu
[单片机]
<font color='red'>MSP430</font>-GRACE 实战(一):LED流水灯
lcd12864驱动程序 用于MSP430
LCD函数库,可用于MSP430 单片机源程序如下: /* * LCD_BASIC_LIBRARY.C * * Created on: 2017年7月20日 * Author: Hasee */ #include msp430.h typedef unsigned char uchar; typedef unsigned int uint; #define LCD_DataIn P8DIR=0x00 //数据口输入模式 #define LCD_DataOut P8DIR=0xFF //数据口输出模式 #define LCD2MCU_Data P8IN //LCD向芯片输入数据 #define MCU2
[单片机]
MSP430 MCU eZ430 开发工具新添高速ADC与高精度FIR滤波器目标板
2007 年 1 月 15 日,北京讯 日前,德州仪器 (TI) 宣布推出两款针对 eZ430 开发工具的全新目标板 T2012 与 MSP-Mojo,为从事便携式应用的电池供电设计人员提供了更高灵活性与增强的功能,构建了功能齐备的低成本开发环境。T2012采用 MSP430F2012 超低功耗 MCU,并集成了高性能 200 ksps 10 位 ADC,包含三个目标板,而售价仅为 10 美元。大受欢迎的 eZ430 评估与开发工具采用超小型 U 盘形状设计,该产品不仅使新用户能够在数分钟内快速评估 MSP430 MCU架构,而且还能自始至终为经验丰富的开发人员提供完成整个 MSP430F20xx 项目所需的全部资源。
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved