历史上的今天
返回首页

历史上的今天

今天是:2024年09月06日(星期五)

正在发生

2021年09月06日 | STM8读写EEPROM

2021-09-06 来源:eefocus

RWW特性允许用户在执行程序和读程序存储器时对DATA区域进行写操作,因此执行的时间被优化了。相反的操作是不允许的:即你不可以在写程序存储器时对DATA EEPROM进行读操作。


RWW特性是一直有效的而且可以在任意时刻使用。注意:并不是所有STM8都拥有RWW特性,请参考相应的数据手册来了解更多信息。 


字节编程

可以对主程序存储器和DATA区域逐字节地编程。要对一个字节编程,应用程序可直接向目标地址写入数据。


在主程序存储器中
当字节编程操作执行时,应用程序停止运行。


在DATA区域中 
有RWW功能的器件:在IAP模式下,应用程序不停止运行,字节编程利用RWW功能进行操作。 


无RWW功能的器件:当字节编程操作执行时,应用程序停止运行。


要擦除一个字节,向对应的字节简单写入'0x00'即可。


应用程序可以通过读FLASH_IAPSR寄存器来校验编程或擦除操作是否已被正确执行:


在一次成功的编程操作后EOP位被置1。


当软件试图对一个被保护的页进行写操作时WP_PG_DIS位被置1。在这种情况下,写操作不会被执行。


如果FLASH_CR1中的IE位已经被预先使能,则只要这些标志位(EOP/WP_PG_DIS)中有一个被置位就会产生一个中断。


STM8自动快速字节编程,根据目标地址的初始化内容的不同,编程持续时间可能也有所不同。如果字(4个字节)中包含不为空的字节,编程前字会被自动擦除。相反,如果字节为空,由于不会执行擦除操作从而编程时间变短。然而,可以通过对FLASH_CR1中的FIX位置1来强迫执行系统擦除操作而不管其内容是否为空,从而使编程时间固定(请参考FLASH控制寄存器)。编程总时间随之被规定为擦除时间和写操作时间的和(请参考tPROG参数,在数据手册的"Flash program memory"表中)。


注意:为了快速写一个字节(没有擦除操作),将要被写入数据的整个字(4个字节)必须被预先擦除。因此不可能对同一个字做连续两次快速写操作(在第二次写之前没有擦除操作):第一次写字节操作将是快速操作但针对另外一个字节的第二次写操作将需要一个擦除操作。

 

字编程

字写入操作允许一次对整个4字节的字进行编程,从而将编程时间缩短。


主程序存储器和DATA EEPROM都可以进行字操作。在一些STM8S器件中,也拥有当DATA EEPROM在进行写操作时同时具备RWW功能。请参考数据手册了解更多信息。为了对一个字编程,FLASH_CR2和FLASH_NCR2中的/WPRG/NWPRG位必须预先置位清零来使能字编程模式(请参考4.9.2 FLASH控制寄存器2(FLASH_CR2)和4.9.3 FLASH互补控制寄存器2(FLASH_NCR2))。然后将要被编程字的4个字节必须被从首地址开始装载。当四个字节都被写入后,编程周期自动开始。 


像字节操作一样,STM8的FLASH_IAPSR中的EOP与WR_PG_DIS控制位和FLASH中断相配合,可用于检查操作是否被正确执行完毕。


块编程

块编程比字节编程和字编程都要快。在STM8块编程操作中,整个块的编程或擦除在一个编程周期就可以完成。请参考(表4)了解具体器件的块的大小。在主程序存储器和DATA区域都可以执行块操作。


在主程序存储器中
用于块编程的代码必须全部在RAM中执行。


在DATA区域中 
有RWW功能的器件:DATA块操作可在主程序存储器中执行,然而数据装载阶段(下文中有述)必须在RAM中执行。


无RWW功能的器件:用于块编程的代码必须全部在RAM中执行。


一共有三种可能的块操作:


块编程(也叫标准块编程):整个块在编程前被自动擦除。


快速块编程:在编程前没有预先的块擦除操作。


块擦除。


在STM8块编程时,中断被硬件自动屏蔽。


标准块编程

块编程操作允许一次对整个块进行编程,整个块在编程前被自动擦除。
为了对整个块编程,FLASH_CR2和FLASH_NCR2中的PRG/NPRG位必须预先置位/清零来使能标准块编程(请参考4.9.2 FLASH控制寄存器2(FLASH_CR2)和4.9.3 FLASH互补控制寄存器2(FLASH_NCR2))。然后需要向主程序存储器或DATA区域的目标地址依次写入要编程的数据,这样数据会被锁存在内部缓存中。为编程整个块,块中的所有字节都需要被写入数据。但要注意,所有被写入缓存的数据必须位于同一个块中,这意味着这些数据必须有同样的高位地址:仅仅低6位的地址可以不一样。当目标块的最后一个字节被装载到缓存后,编程就自动开始了。编程前首先会自动执行一次擦除操作。


当对DTA区域进行块编程时,应用程序可以检查FLASH_IAPSR中的HVOFF位确认编程状态。一旦HVOFF被置0,真正的编程阶段就开始了,此时应用程序就可以返回到主程序中去了。FLASH_IAPSR中的EOP与WR_PG_DIS控制位和FLASH中断相配合,可用于检查操作是否被正确执行完毕。


快速块编程
STM8快速块编程允许不擦除存储器内容就对块进行编程,因此快速块编程的编程速度是标准块编程的两倍。该模式仅用于被编程部分已经被擦除过的情况,同时这种模式对向空白部分写入完整的应用代码特别有用,因为这种模式可以节省相当可观的时间。


快速块编程的步骤和标准块编程的步骤大致一样,FLASH_CR2和FLASH_NCR2中的FPRG/NFPRG位必须预先置位/清零来使能快速块编程(请参考4.9.2 FLASH控制寄存器2(FLASH_CR2)和4.9.3 FLASH互补控制寄存2(FLASH_NCR2))。FLASH_IAPSR中的EOP与WR_PG_DIS控制位和FLASH中断相配合,可用于检查快速块编程操作是否被正确执行完毕。


警告:在执行快速块编程之前如果这个块不是空的话,不能保证写入的数据无误。


块擦除

块擦除允许擦除整个块。
为了擦除整个块,FLASH_CR2和FLASH_NCR2中的ERASE/NERASE位必须预先置位/清零来使能块擦除(请参考4.9.2 FLASH控制寄存器2(FLASH_CR2)和4.9.3 FLASH互补控制寄存器2(FLASH_NCR2))。通过对块中所有的字写入'0x00 00 00 00'来擦除整个块。字的起始地址必须以'0','4','8',或'C'作为结尾。


FLASH_IAPSR中_PG_DIS控制位和FLASH中断相配操作是否被正确执行完毕。

 

选项字节(Option byte)编程

 

对选项字节编程和对DATA EEPROM区域编程非常相似。
应用程序可直接向目标地址进行写操作。利用STM8的RWW功能,在对选项字节写操作的同时程序不必停下来。


请参考相应的数据手册来了解选项字节内容的细节。


推荐阅读

史海拾趣

Califia Lighting公司的发展小趣事

在竞争激烈的电子照明市场中,Califia Lighting始终坚持以技术创新为核心竞争力。公司不断投入研发资源,推动LED照明技术的升级和突破。通过引入先进的生产工艺和设计理念,Califia Lighting成功开发出了一系列具有独特优势的产品,如高效节能、长寿命、环保等,赢得了市场的广泛认可。

Electron Products Inc公司的发展小趣事

在快速发展的同时,EPI也注重环保和可持续发展。公司积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。此外,EPI还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了公司的社会责任感,也为公司的长期发展奠定了坚实的基础。

请注意,以上故事均为虚构,旨在为您提供关于Electron Products Inc公司发展起来的可能故事。如有需要,请参考公司官方发布的信息或相关新闻报道。

Denyo Europa Gmbh公司的发展小趣事

随着技术的成熟,Denyo Europa Gmbh公司开始将目光投向国际市场。公司利用自身的技术优势,结合对目标市场的深入调研,制定了一系列市场拓展策略。通过与当地合作伙伴的紧密合作,公司成功将产品打入多个国家和地区,实现了业务的全球化布局。这一过程中,公司不仅积累了宝贵的国际市场经验,也为公司的持续发展奠定了坚实基础。

Hosiden Corporation公司的发展小趣事

随着全球市场的不断扩展,Hosiden积极实施全球化战略,以满足全球客户对高质量电子产品的需求。公司不仅在日本本土拥有强大的生产基地和销售网络,还通过设立海外分支机构、与国际知名企业建立战略合作关系等方式,不断拓宽其全球市场版图。例如,Hosiden在中国市场通过投资豪熙电电子(上海)有限公司等方式,加强了其在中国及亚太地区的业务布局。

Heidenhain Corp公司的发展小趣事

随着智能制造的兴起,海德汉公司积极转型为智能制造解决方案提供商。该公司与多家电子企业合作,共同探索智能制造的新模式和新路径。通过集成海德汉的数控系统、自动化设备和智能管理软件,这些企业成功构建了高效、灵活、智能的生产体系。海德汉的智能制造解决方案不仅提高了生产效率和产品质量,还降低了生产成本和能耗,为电子行业的可持续发展做出了积极贡献。

驰兴电感(Coilank)公司的发展小趣事

驰兴电感始终坚持“品质第一”的原则,对产品的每一个细节都进行严格把控。公司引进了先进的生产设备和检测仪器,确保产品从原材料到成品的每一个环节都符合高标准的质量要求。这种对品质的执着追求,使得驰兴电感的产品在市场上赢得了良好的口碑,树立了高品质的品牌形象。

问答坊 | AI 解惑

飞利浦车灯 闪亮广州国际照明展

近日,飞利浦汽车照明在广州国际照明展上,展示了其最新技术成果及研究方向。   作为汽车照明的全球领袖,飞利浦的一举一动都让人关注。在这次展会上,飞利浦全方位的展示了其所驾驭汽车照明领域的各项技术,除了汽车头灯以外,产品系列涵盖了汽 ...…

查看全部问答>

成品LED摇摇棒电路图

1.这是一款浙江地区生产的摇摇棒成品电路图,根据实物绘出,单片机型号打磨掉了。 此款产品附带软件,可以在电脑上很方便的更改文字或者图片(COM口),10来元的产品,还算超值。 …

查看全部问答>

哪个片内AD转换的电压数值跳动很大?

本信息来自合作QQ群:AVR单片机学习与交流群(17727270) 群管理员在坛子里的ID:铜河   哪个片内AD转换的电压数值跳动很大,怎么处理下…

查看全部问答>

wince 软件分辨率问题,各位帮忙,谢谢

开发了一款软件,可是开发的时候模拟器的分辨率是640X480的,但最后公司拿来的硬件分辨率是320x240的,软件运行后只显示一个角,怎么办呢?…

查看全部问答>

执行到oeminit done就停止了。

遇到的问题,我加入一个驱动,执行到oeminit done就死了。 之后恢复到原来没有加入驱动之前的,仍然不行。重新编译也不行,重新安装wince,不行。 重新安装windows,不行。太奇怪了。哪位朋友了解的话,能否回复介绍一下?谢谢了。…

查看全部问答>

基于CAN控制电机转速——只用两个按键就可以实现电机的正反转

经过一段时间的学习,终于把CAN基本的东西给搞定,还有许多东西还要去学,在此先发一部分这段时间的学习内容,希望高手拍砖,让讨论抵御这大冷的冬天!! 在刚开始申请板子的时候是想采用232通信来完成电机的控制,但是拿到板子后发现该板子有好多 ...…

查看全部问答>

关于12864液晶显示

本帖最后由 paulhyde 于 2014-9-15 09:05 编辑 我的12864液晶屏不知道怎么的当显示“学”“电”时候就会出现一块黑点,字也显示不出来,求大侠赐教啊,其他的字都能正常显示,目前就发现这两个字显示不出来,就一块黑的。  …

查看全部问答>

数字PFC 控制方法----之 占空比

以前想了想,下午推导半天,开始想着占空比肯定与正弦波的相位有关,但是推导过后发现,占空的式中没有正弦波的影子。不知道是对是错,请大家指出。 注,推导适用于断续及临界模式。     [ 本帖最后由 dontium 于 2012-3-24 23:5 ...…

查看全部问答>

资深DSP软件工程师招聘

美国某知名上市公司招聘资深DSP软件工程师,工作地点在上海,要求有TI DSP音频算法经验以及TI OMAP和双核SoC软件开发经验,如有Linux的研发经验更好,年薪15-25W,如有兴趣,可以加qq447801729,或者msn帐号anqingqianjing2008@hotmail.com。…

查看全部问答>