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