原创 【博客大赛】MSP430MSP430学习笔记--FLASH

2013-7-16 21:23 6911 12 13 分类: MCU/ 嵌入式

     MSP430的FLASH存储区可以按位,字节,字寻址并且可编程。FLASH 模块控制器有3个寄存器,一个定时发生器和一个电压产生器来提供编程和擦除的电压。FLASH的默认模式是读模式。


    FLASH存储区可按为,字接,字写入,FLASH memory的特点:
      1,Flash memory分为主存储区(main memory)和信息存储区(information memory)。主存储区分为n段(segment),每段为512bytes(因为MSP430F149的Flash memory为60KB+256 Byte即main memory为60KB,information memory为256 Byte),MSP430f149的主存储区分为120段。信息存储区分为SegmentA和SegmentB,每段大小为128Bytes。
      2,Segments 0-n 可以一步全部擦除也可以每段单独擦除。
      3, Segments A和B可以单独擦除也可以和Segments 0-n一起擦除。
20130716102839557.jpg20130716164537368.jpg
 
 

Flash模块的结构框图:
 
20130716103110377.jpg
      
 
   FALSH的时钟频率必须在257KHZ-476KHZ之间。
20130715140622803.jpg
分频公式为 :32*FN5 + 16*FN4 + 8*FN3 + 4*FN2 + 2*FN1 + FN0 + 1
 
FLASH模块寄存器:
 
FCTL1
 
20130715141335192.jpg
 
FRKEY/FWKEY:安全密匙,读出096h,写入时必须是0A5h否则产生一个上电复位信号。
BLKWRT:按块写入模式。按块写时WRT必须置位。当EMEX置位时BLKWRT自动复位。
         1:打开按块写模式;0,关闭按块写模式。
WRT:选择写模式。当EMEX置位时WRT自动复位。
    1,打开写模式;0,关闭写模式。
MERAS,ERASE:选择擦除模式。
 
 
FCTL2:
 
20130715143842403.jpg
 
FWKEYx:安全密匙,读出096h,写入时必须是0A5h否则产生一个上电复位信号。
FSSELx:FLASH控制器时钟源选择。
FNx:Flash控制器时钟分频。
 
FCTL3:
20130715144228167.jpg
 
FWKEYx:安全密匙,读出096h,写入时必须是0A5h否则产生一个上电复位信号。
EMEX:紧急退出位。为1时,立即停止对Flash的操作。
LOCK:1,对Flash不能进行写和擦除操作。
WAIT:1,Flash模块已经准备好了下一次操作;0,没有准备好
ACCVIFG:1,有非法访问标志。
 
 
擦除:
 
20130716110024489.jpg
 
   所有的擦除过程都要用户先进行一个伪写入,指针指向要擦除段的受地址,用户写入数据。伪写入启动flash的定时发生器和擦除操作。当擦除整个过程完成时,BUSY,MERAS和ERASE会自动清零。MSP430F1xx的擦除操作时间是相同的,和擦除区的大小没有关系。
   擦除操作时序图:
20130716111632411.jpg
     
 启动擦除的方式要看擦成程序在哪一块。
  1,程序代码在Flash存储区中,CPU取出指令执行,CPU被悬停直到擦除操作完成flash唤醒CPU,然后CPU取出对应擦除指令下面的指令执行。这种擦除启动方式有可能将后续要执行的程序指令擦除,那擦除之后的CPU执行变不可预测了。
  流程图:
 
20130716164615417.jpg
 
 
     2,代码从RAM中取得,CPU不会进入休眠状态。
 
20130716164717542.jpg
 
 
 
     写入:
20130716164944451.jpg
 
 
1,字节/字写入和擦粗相似,可以从flash或RAM启动,CPU工作方式相同。
2,块写入,可加快flash编程速度。但是每次块写入时间不能超过累计编程时间(通常为4ms)。块写入代码只能从RAM中执行
时序图:
20130716165736931.jpg
 
 
  流程图:
20130716170148729.jpg
 
例程,写入Segment A,再将其复制到Segment B.
20130716212149148.jpg
20130716212209642.jpg
20130716212225403.jpg
 
 
 
 
 

文章评论1条评论)

登录后参与讨论

345002072_353389109 2013-7-17 00:03

好详细的笔记。。不错
相关推荐阅读
用户1629625 2013-10-23 11:35
【博客大赛】mini2440串口助手测试
mini开发板上的CON1,2 ,3分别对应cpu的UART0,1,2,3。因为只有UART0已经转换为RS232电平。为了避免麻烦就直接用UART0测试。 连接好PC,打开开发板 上的“串口...
用户1629625 2013-10-22 19:45
【博客大赛】win7安装超级终端连接mini2440
win7没有xp自带的超级终端,必须自己安装。 其实就可以直接使用xp自带的超级终端文件,可下载:http://download.csdn.net/detail/kimherojae/6337...
用户1629625 2013-10-21 20:46
【博客大赛】mini2440 fedora9建立交叉编译
    在LINUX平台下,要建立交叉编译环境。  1 将  资料中linux中的arm-linux-gcc-4.4.3.tar.gz复制到 某个 目录下如/tmp,然后进入该目录并解压 ...
用户1629625 2013-10-10 09:48
【博客大赛】mini2440和PC机虚拟机ping
连接好开发板附带的网线连好mini2440开发板和PC机,查看pc机和开发板IP。 查看PC机IP方法1,win+r,cmd,ipconfig(即菜单->运行cmd进入界面输入ipcon...
用户1629625 2013-10-01 20:30
【博客大赛】虚拟机 fedora9上网设置
桥连接(briged方式) 1 禁用VMware Network Adapter VMnet1和VMware Network Adapter VMnet8 打开网络共享中心,点击更改适配器...
用户1629625 2013-08-08 20:27
【博客大赛】MSP430MSP430学习笔记--USART的同步模式SPI
   当MSP430F149的USART模块控制器UxCTL的SYNC位置位时,串行模块工作在SPI模式,通过4线(SIMO,SOMI,UCLK及STE)或者3线(SIMO,SOMI,UCLK)同...
我要评论
1
12
关闭 站长推荐上一条 /2 下一条