历史上的今天
返回首页

历史上的今天

今天是:2025年05月08日(星期四)

正在发生

2020年05月08日 | MSP430 flash 操作

2020-05-08 来源:eefocus

关于flash具体说明,可以参照msp430 user guide中的具体章节。


介绍

一般,在单片机中的flash是用于存放程序代码的,属于只读型存储器(ROM)。但是在许多单片机中内部,都会专门留有一小段flash控制区,用于存放重要的配置参数,使得这些参数在掉电后仍然可以保存在单片机上面。


硬件介绍

430单片机的存储器组织结构采用冯诺依曼结构,RAM和ROM统一编址在同一寻址空间,没有代码空间和数据空间之分。


一般430的单片机都统一在0-64k地址范围中,只有少数高端的型号才能突破64k。地址的大概编码方式见msp430 user guide。(msp430f22x4的是在P310处)

以msp430f22x4为例,它的information memory大小为256个字节,分成4端,分别为segment A、B、C、D。对应的地址从0x010ff-0x01000。每块64个字节。

flash操作包括:字或字节写入;字符串写入;段擦除;主flash擦除。

flash操作时需要把flash时钟的范围控制在257kHz到476kHz。如果不在这个范围内,将会产生不可预料的结果。


擦除:擦除的最小单位是段,有三种擦除模式

    MERAS    ERASE    Erase Mode
    0        1        Segment erase
    1        0        Mass erase(all main memory segments)
    1        1        Erase all flash memory(main and information segments)

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

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

BLKWRT    WRT    Write Mode
    0        1    Byte/word write
    1        1    Block write

这两种模式中块写入要比字或字节写入操作速度大约快两倍,因为在块写入完成之前,变成电压一直维持直到块写入完成。


程序实现

设置Flash时钟,初始化Flash控制器

void flash_init(void)
    {
        FCTL2 = FWKEY + FSSEL_2 + FN1;    //默认SMCLK/3
    }

擦除函数

void flash_erase(unsigned int addr)
    {
        unsigned char *paddr;
        paddr = (unsigned char *)addr;
        FCTL1 = FWKEY + ERASE;
        FCTL3 = FWKEY;
        DINT;
        *paddr = 0;
        flash_wait_for_enable();
        EINT;
    }
    
    void flash_wait_for_enable(void)
    {
        while((FCTL3&BUSY)==BUSY);    //Busy
    }

写入字节

void flash_write_char(unsigned int addr,char data)
    {
        unsigned char * paddr;
        paddr = (unsigned char *)addr;
        FCTL1 = FWKEY + WRT;
        FCTL3 = FWKEY;
        DINT;
        *paddr = data;
        flash_wait_for_enable();
        EINT;
        FCTL1 = FWKEY;
        FCTL3 = FWKEY + LOCK;
    }

读取字

unsigned char flash_read_char(unsigned int addr)
    {
        unsigned char data;
        unsigned char *paddr = (unsigned char *)addr;
        data = *paddr;
        return data;
    }

实际使用事项

向information memory中写入字时,必须是偶数地址,奇数地址会写在这个地址的前一个偶数地址。

程序可以在flash中运行,也可以在RAM中运行,如果在RAM中运行,那么要把程序先从flash中移到RAM中,然后跳转到RAM中运行。(在430这款单片机中,没有必要将程序移到RAM中)

推荐阅读

史海拾趣

Amphenol RF公司的发展小趣事

Amphenol RF 是 Amphenol 公司的一个子公司,专注于设计、制造和销售射频连接器和组件,在电子行业中占据重要地位。以下是关于 Amphenol RF 公司发展的五个相关故事:

  1. 创立与早期发展:Amphenol RF 公司的历史可以追溯到20世纪40年代,当时被称为RF Connector Division。最初,公司主要致力于生产射频连接器和组件,为通信、航空航天、军事和工业市场提供射频连接解决方案。随着射频技术的发展和市场需求的增长,Amphenol RF 逐渐壮大成为射频连接器领域的重要参与者。

  2. 技术创新与产品多样化:Amphenol RF 公司在射频领域持续进行技术创新,并不断推出新型的射频连接器和组件产品。公司致力于提升产品的性能、可靠性和适应性,满足客户对高频射频应用的需求。除了传统的射频连接器,Amphenol RF 还推出了一系列新型产品,如微波连接器、同轴连接器、板对板连接器等,拓展了产品线的多样性。

  3. 客户合作与定制化解决方案:Amphenol RF 公司与客户建立了紧密的合作关系,共同开发定制化的射频连接器和组件解决方案。公司的工程团队与客户密切合作,根据客户的需求和应用场景,设计和制造符合特定要求的产品。这种定制化解决方案能够满足客户个性化的需求,为客户提供更加专业和完善的服务。

  4. 质量控制与认证标准:Amphenol RF 公司高度重视产品质量控制,并严格遵循国际质量管理体系标准。公司的生产工艺和质量管理体系符合ISO 9001质量管理体系认证标准,以确保产品质量的稳定性和可靠性。此外,Amphenol RF 公司的产品还通过了各种行业和应用领域的认证标准,如航空航天领域的MIL-SPEC标准等,确保产品符合行业标准和规定。

  5. 全球市场拓展与合作伙伴关系:除了在美国的生产基地外,Amphenol RF 公司还在全球范围内设有多个销售办事处和代理商网络,拓展了国际市场份额。公司与全球各种行业领先企业建立了长期稳定的合作关系,共同推动产品的创新和市场拓展。通过全球市场拓展和合作伙伴关系,Amphenol RF 公司不断扩大业务规模,增强了在射频连接器领域的市场竞争力。

这些故事展示了 Amphenol RF 公司从成立初期到如今在技术创新、产品多样化、客户合作与定制化解决方案、质量控制与认证标准以及全球市场拓展与合作伙伴关系等方面取得的重要进展。

Electron Products Inc公司的发展小趣事

EPI一直非常重视产品的品质管理。公司建立了严格的质量管理体系,从原材料采购到产品生产、检测、包装等各个环节都进行严格把控。此外,EPI还注重持续改进,不断引入先进的生产技术和设备,提升产品的质量和性能。这些举措使得EPI的产品在市场上享有很高的声誉和口碑。

光大芯业公司的发展小趣事

面对全球经济的不确定性和市场竞争的加剧,光大芯业始终保持着清醒的头脑和坚定的信念。他们积极应对各种挑战,通过优化管理、提升效率、降低成本等措施,不断提高自身的竞争力。同时,公司还加大了对新技术、新产品的研发投入,以保持在市场上的领先地位。正是这种不断进取的精神和坚定的信念,让光大芯业在电子行业中不断发展壮大。

客益(Guestgood)公司的发展小趣事

在快速发展的过程中,光大芯业始终重视人才的培养和团队的建设。公司拥有一支来自国内外顶尖半导体设计公司的资深专家组成的核心技术团队,他们具备丰富的产品开发经验和创新理念。同时,公司还注重本地优秀设计人才的培养和引进,为公司的长远发展提供了坚实的人才保障。

EA Elektro-Automatik公司的发展小趣事

随着产品的不断优化和市场的不断扩大,EA Elektro-Automatik开始将目光投向国际市场。公司积极寻求与全球知名企业的合作机会,建立长期且稳定的战略合作关系。通过参与各类国际展会和交流活动,EA Elektro-Automatik的产品和技术得到了更广泛的推广和应用。如今,EA Elektro-Automatik的产品已经出口到全球多个国家和地区,为当地的市场和客户提供了优质的解决方案。

爱浦电子(AIPULNION)公司的发展小趣事

随着公司业务的不断扩展,爱浦电子于XXXX年成立了广州优联电气科技有限公司作为其分支机构。这一举措不仅进一步扩大了公司的业务范围和市场影响力,还为公司提供了更多的发展机遇和合作伙伴。广州优联电气科技有限公司在爱浦电子的业务开拓、经营及配套服务方面发挥了重要作用,推动了公司整体业务的快速发展。

这五个故事只是爱浦电子发展起来的一部分缩影,它们展现了公司在技术创新、市场拓展、服务升级、创新引领以及分支机构成立等方面的努力和成就。正是这些不懈的努力和持续的进步,使得爱浦电子在电子行业中脱颖而出,成为一家备受瞩目的高新技术企业。

问答坊 | AI 解惑

大学生Vs.混混:残酷现实

张二狗是偶的同学。一直以来,偶们都是被人拿来作为对比的两个极端,偶曾经是他的梦魇,现在他却是偶的梦魇。现将偶和他的人生历程列出来,再一次深刻感受风水轮流转这一永恒真理。      1、小学入学第一天,偶对老师说会背301首唐诗做100以 ...…

查看全部问答>

让手机五千年都不用充电 美国研发超级核电池

生活中,你肯定在为你的手机电量是否充足、是否要马上充电等问题而操心劳神,所以,如果给你一块几个月都不需要充电的电池,你马上会高兴起来,如果给你一块你一辈子都不用充电的电池,你会不会惊讶万分?如果给你一块几百代人都不用充电的电池,你 ...…

查看全部问答>

启动的时候是用sram 做stack吗? DRAM初始化后要不要把stack转到dram

启动的时候是用sram 做stack吗? DRAM初始化后要不要把stack转到dram …

查看全部问答>

我是单片机初学者

请问谁能指点下,该如何学好单片机,特别是使用51单片机板子,应该参考那些资料?…

查看全部问答>

模电新人的小问题恳请大神们指教~

我还是个在校学生,刚学模电没多久,很喜欢,但每天也有很多这样那样的问题...         在提到多级放大电路的耦合时有一种说法,阻容耦合的低频特性限制了其集成化...这是为什么啊?…

查看全部问答>

技巧:大牛用灯泡控制马达的电流大小

replyreload += \',\' + 1460671;我的微信公共账号是 \"电子设计思路\", 微信号 eedesign, 每周发一到两个最好的设计电路,这几天明明放假,但是还有好多人关注,难道电工清明节都上班? 在汽车电路中,没有蒸汽,没有压缩机,怎样控制管子口的叶 ...…

查看全部问答>

关于酒精传感器输出模型的问题

我用的是ME3的电化学酒精传感器,但是厂家给的datashit非常简单,所以不知道他的输出模型是否包含结电容,可能会使之后电路的输入端带有容性,哪位大神能说一下ME3的输出模型是不是容性的?@wyzh1994 ,@wangzs611 …

查看全部问答>

【晒样片】TPS65980已到货

差不多一周多的时间就已经收到TI的样片,相当的高效。TPS65980 是一款直流/直流开关稳压器,此稳压器由电压范围介于 2.5V 至 15.75V 之间的 Thunderbolt™ 或 Thunderbolt™ 2 电源总线供电,并且生成 3 个独立 3.3V 电源输出。TBT_OUT ...…

查看全部问答>

vxworks开发环境

vxwork的开发环境谁有啊????请大侠们指条下载的道,或者传给我(QQ303949042    邮箱:whwshiyuan@126.com   有偿)。 万分感谢!!!!!!!!! …

查看全部问答>

分享TMS320F2812 DSP编程之AD采样精度的校准算法

F2812内部集成了ADC转换模块。该模块是一个12位、具有流水线结构的模数转换器,内置双采样保持器(S/H),可多路选择16通道输入,快速转换时间运行在25 MHz、ADC时钟或12.5 Msps,16个转换结果寄存器可工作于连续自动排序模式或启动/停止模式。在实 ...…

查看全部问答>