当前位置:首页 > 单片机 > 单片机
[导读] 硬件介绍:要对Flash读写,首先要了解MSP430的存储器组织。430单片机的存储器组织结构采用冯诺依曼结构,RAM和ROM统一编址在同一寻址空间中,没有代码空间和数据空间之分。一般430的单片机都统一编址在

  1. 硬件介绍:

    要对Flash读写,首先要了解MSP430的存储器组织。430单片机的存储器组织结构采用冯诺依曼结构,RAM和ROM统一编址在同一寻址空间中,没有代码空间和数据空间之分。

    一般430的单片机都统一编址在0-64k地址范围中,只有少数高端的型号才能突破64k(如:FG461x系列)。绝大多数的msp430单片机都编址在64kB范围内。地址的大概编码方式如下:

    这是msp430f425的存储器分配图,其他在64k范围内的存储器的单片机编址方式与此类似:低256B是寄存器区,然后是RAM;空白;1000H到10FFH是信息Flash区;大于1100H-0FFFFH是主存储器区(从0FFFFH开始往低地址有单片机的主Flash,多余的部分空白)。

    MSP430F14x的Flash分布:

    MSP430F16x的Flash分布:

    主Flash部分和信息Flash部分如下(60kB Flash对应的单片机,如msp430f149、msp430f149):




    主Flash分为以512B为段的单位,0段是单片机中断向量等程序入口地址,使用时不要擦除此段或改写此段,若要擦除或是改写,请先保存内容到RAM或其他段;主Flash各段内容均要避免写入或擦除,以免造成不可预料的后果。

    信息Flash分为两段:段A和段B,每段128B;可以保存用户自己的内容(主Flash也可以但是要避免与程序代码区冲突);这里就把信息Flash的两段称为InfoA(1080H-10FFh)和InfoB(1000H-10FFH)。

    Flash的操作包括:字或字节写入;块写入;段擦除;主Flash擦除;全部擦除。任何的Flash操作都可以从Flash或从RAM中运行。

    Flash操作时需要时序发生器,Flash控制器内部含有时序发生器用以产生所需的Flash时钟,Flash时钟的范围必须在257kHz到476kHz之间。时序发生器的框图如下:

    时序发生器可以选择ACLK、MCLK、SMCLK作为时钟源,通过分频获得所需的257kHz到476kHz之间的Flash操作时钟。如果时钟频率不再这个范围内,将会产生不可预料的结果。

    擦除:擦除之后,存储器中的bit都变为1;Flash中的每一位都可以通过编程写入有1到0,但是要想由0变为1,必须通过擦除周期。擦除的最小单位是段。有三种擦除模式:

    MERASERASEEraseMode
    01Segmenterase
    10Masserase(allmainmemorysegments)
    11Eraseallflashmemory(mainandinformation.segments)

    可以通过MERAS、ERASE位来设置擦除的模式:段擦除,主Flash擦除,全部擦除。

    对要擦除段内的一个地址空写入启动擦出周期:空写入可以启动时序发生器和擦除操作。空写入后BUSY位立即变高直到擦除周期结束,这一位变为低(0)。BUSY, MERAS和 ERASE位在擦除周期结束后会自动复位。擦除周期的时间和要擦出的Flash大小无关,每次擦除的时间对于MSP430F1xx系系列单片机来说,所需时间是一样的。擦除的时序如下:

    当空写入到的地址不在要擦除的段地址范围内的时候,空写入无效,直接被忽略。在擦除周期内,应该关中断,直到擦除完成,重新开中断,擦除期间的中断已经置标志位,开中断后立即响应。

    从Flash中启动的擦除操作:擦除操作可以从Flash中启动或是从RAM中启动。当操作是从Flash中启动的时候,Flash控制器控制了操作时序,CPU运行被暂停直到擦除结束。擦除周期结束后,CPU继续执行,从空写入之后的指令开始运行。当从Flash中启动擦除操作时,可以擦除即将运行的程序所在的段,如果擦除了即将运行的程序所在的Flash段时,擦除结束后,CPU的运行不可预料。

    从Flash启动时擦除周期如下:

    用户指南里面的示例汇编程序如下:

    ;SegmentErasefromflash.514kHz

    从RAM中启动擦除操作:任意擦除周期都可以从RAM启动,这时CPU不再暂停而是继续从RAM中运行接下来的程序。CPU可以访问任何Flash地址之前,必须检查BUSY位以确定擦除周期结束。如果BUSY = 1访问Flash,这是一个访问冲突,这时ACCVIFG将被设置,而擦除的结果将是不可预测的的。

    从RAM中启动擦除操作时,过程如下:

    要在擦除之前确认没有访问Flash,然后擦除完成之前不允许访问Flash。

    ;SegmentErasefromRAM.514kHz

    写Flash操作:写入的模式由WRT和BLKWRT位来确定:

    BLKWRTWRTWriteMode
    01Byte/wordwrite
    11Blockwrite

    这两种模式中块写入大约是字或字节写操作时的两倍快,因为在块写入完成之前,变成电压一直维持直到块写入完成。同一个位置不能在擦除周期之前写入两次或以上,否则将发生数据损坏。写操作时,BUSY位被置1,写入完成后,BUSY被自动清零。如果写操作是从RAM发起的,在BUSY=1时,程序不能访问Flash,否则会发生访问冲突,置位ACCVIFG,Flash写入操作不可以预料。

    字或字节写入:字或字节写入可以从Flash内部发起,也可以从RAM中发起。如果是从Flash中启动的写操作,时序将由Flash控制,在写入完成之前CPU运行将被暂停。写入完成后CPU将继续运行。

    操作时序如下:

    若是从RAM中启动写Flash,程序将继续从RAM中运行。CPU再次访问Flash之前必须确认BUSY位已经清零,否则会发生访问冲突,置位ACCVIFG,写入的结果将不可预料。

    字或字节写入模式下,内部产生的编程电压时适用于完整的64个字节块的写入
    Inbyte/wordmode,theinternally-generatedprogrammingvoltageisapplied
    tothecomplete64-byteblock,eachtimeabyteorwordiswritten,for32ofthe
    35fFTGcycles.Witheachbyteorwordwrite,theamountoftimetheblockis
    subjectedtotheprogrammingvoltageaccumulates.Thecumulative
    programmingtime,tCPT,mustnotbeexceededforanyblock.Ifthecumulative
    programmingtimeismet,theblockmustbeerasedbeforeperformingany
    furtherwritestoanyaddresswithintheblock.

    从Flash发起写字节或字时:

    ;Byte/wordwritefromflash.514kHz0FF1EhMOV#FWKEY,&FCTL1;Done.ClearWRTMOV#FWKEY+LOCK,&FCTL3;SetLOCK...;Re-enableWDT?EINT;Enableinterrupts

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

中国北京(2025年9月10日)—— 业界领先的半导体器件供应商兆易创新GigaDevice(股票代码 603986)亮相于深圳国际会展中心举办的第26届中国国际光电博览会(展位号:12C12),全面展示GD25 SPI...

关键字: 光通信 MCU Flash

在嵌入式系统中,Flash存储器因其非易失性、高密度和低成本特性,成为代码存储和关键数据保存的核心组件。然而,MCU驱动Flash读写时,开发者常因对硬件特性理解不足或操作流程疏忽,陷入性能下降、数据损坏甚至硬件损坏的陷...

关键字: MCU驱动 Flash

深圳2025年4月24日 /美通社/ -- 4月23日,2025上海国际车展盛大启幕,全球汽车产业的目光聚焦于这场科技与创新的盛宴。在众多展示亮点中,汽车AI+应用无疑是最大的热点之一,“驾控超级大脑”技术概念、车机交互...

关键字: GB EMMC Flash PS

在自动驾驶、机器人与工业检测领域,激光雷达作为环境感知的核心传感器,其技术路线正从机械式向固态化演进。MEMS、OPA与Flash作为固态激光雷达的三大主流架构,分别通过微机电系统、光学相控阵与泛光面阵技术实现扫描与探测...

关键字: MEMS OPA Flash

在嵌入式系统开发中,外部存储介质的选择和管理至关重要。SPI Flash以其高容量、低功耗、高速率等特点,成为众多嵌入式设备的首选存储方案。然而,如何高效管理SPI Flash存储,避免数据丢失、提高读写性能,是开发者必...

关键字: 嵌入式SPI Flash LittleFS

STM32单片机作为一种高性能、低功耗的嵌入式微控制器,广泛应用于各种电子设备中。在实际应用中,为了扩展存储空间或实现数据的持久化存储,经常需要使用外部FLASH存储器。本文将详细介绍STM32单片机如何读写外部FLAS...

关键字: STM32 Flash

在嵌入式系统和存储设备领域,Flash和EEPROM(电可擦可编程只读存储器)因其非易失性存储特性而被广泛应用。这些存储设备能够在断电后保持数据,对于需要长期保存配置参数、程序代码或用户数据的应用来说至关重要。然而,关于...

关键字: Flash EEPROM
关闭