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.