0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

写flash芯片时为什么需要先擦除?

工程师邓生 来源:未知 作者:刘芹 2023-10-29 17:24 次阅读

写flash芯片时为什么需要先擦除?

在讲解为什么需要先擦除Flash芯片之前,先来了解一下Flash芯片的基本概念和组成部分。

Flash芯片是非易失性存储器,内部由多个块组成,每个块都是一定数量的页(Page)组成,每页又可以分成若干个扇区(Sector),扇区是Flash芯片的操作基本单位,通常为512字节或1K字节大小,而整个Flash芯片的容量则可以达到数个GB以上。Flash芯片的特点是擦写次数是有限的,每个扇区只能擦写数千次甚至更少次,而写入次数则几乎是无限的。

接下来我们就来探讨一下为什么在写入数据之前需要对Flash芯片进行擦除操作的原因。

一、Flash芯片的擦写操作是以扇区为单位进行的,每个扇区需要在擦写之前进行一次擦除,否则无法进行新的写入操作。

二、由于Flash芯片是非易失性存储器,写入和擦除操作的电压都较高,因此操作时需要耗费大量的能量,而对芯片的寿命也是有影响的。

三、每次擦写操作都会导致芯片内部原本被透明导体和钨多层结构堵塞的栅结相互打穿,这样就会导致芯片内部的漏电电流变大,从而会影响芯片的整体性能。

由于以上原因,我们就必须在进行写入操作之前对芯片进行擦除。Flash擦除操作的意义在于将芯片的闪存单元全部重置为1,相当于把Flash芯片格式化。擦除之后,扇区内的所有数据都被擦除,状态变为1,可以进行新的数据写入操作。因此,在对Flash芯片进行写入操作之前,我们就必须先对Flash芯片进行擦除操作。

擦除Flash芯片的方法可以分为硬件擦除和软件擦除两种方式:

一、硬件擦除

硬件擦除顾名思义是通过使用专门的设备,比如硬件编程器来进行擦除。硬件擦除的优点是擦除效率高、操作简单、擦除的每个扇区的状态都可以被直接检测到,然而硬件擦除也有一些缺点:

1.硬件擦除设备比较昂贵,不适合个人使用。

2.擦除操作只能通过特定的硬件设备来进行,不能在程序中使用。

二、软件擦除

软件擦除是通过CPU在程序中实现的一种擦除方式,需要注意的是,软件擦除需要对扇区内的每个字节进行擦除,操作的时间也相对较长。

软件擦除的优点是可以在程序中进行,不需要专门的擦除设备。缺点则是擦除效率相对较低,消耗的能量更大。

总结:

为了确保Flash芯片的长期可靠性和性能,我们必须在进行写入操作之前进行擦除操作。擦除操作可以通过从硬件设备到软件程序来进行,不同的擦除方式有各自的优缺点,需要根据实际需求选择合适的擦除策略。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1642

    浏览量

    148623
  • 非易失性存储器

    关注

    0

    文章

    107

    浏览量

    23486
收藏 人收藏

    评论

    相关推荐

    使用SIGMA STUDIO PLUS对连接在ADAU1452 SPI上的FLASH进行编程时,程序并不能成功的写入flash怎么解决?

    我尝使用SIGMA STUDIO PLUS 对连接在ADAU1452 SPI上的FLASH进行编程时,发现程序并不能成功的写入flash, 使用的FLASH芯片时M25P80,配置如下
    发表于 12-19 07:26

    Flash语音芯片相比OTP语音芯片的优势

    ‌。No.1可重复擦写Flash语音芯片的最大特点是支持多次编程和擦除,这意味着用户可以根据需要随时更新语音内容,实现定制化和灵活的语音交互。相比之下,OTP语音芯
    的头像 发表于 12-16 16:02 191次阅读
    <b class='flag-5'>Flash</b>语音<b class='flag-5'>芯片</b>相比OTP语音<b class='flag-5'>芯片</b>的优势

    Flash语音芯片相比OTP语音芯片的优势

    ‌。 1‌.可重复擦写‌:Flash语音芯片的最大特点是支持多次编程和擦除,这意味着用户可以根据需要随时更新语音内容,实现定制化和灵活的语音交互。相比之下,OTP语音
    的头像 发表于 12-16 15:44 187次阅读

    FLASH数据丢失的解决方法

    由于FLASH写入的特性是擦后,写入不会在原来位置重新数据,一般都是把原位置的数据标记为无效,再在新位置写入数据。如果在擦除中掉电或者
    的头像 发表于 11-21 16:21 559次阅读

    擦除flash的API函数esp_partition_erase_range(),擦除的扇区大小能否设置呢?

    使用esp_partition_write()函数保存一条条名单(每条名单128Byte)到分区表中,然后esp_partition_write()函数要求之前需要擦除该区域;我的
    发表于 06-20 06:26

    贴片式tf卡 Nand flash芯片试用体验

      雷龙发展Nand flash芯片试用体验   一、项目背景   最近自己开始准备了一个智能家居控制系统项目,需要包含室内的温湿度、空气质量、烟雾浓度以及气体含量,能够存储相应的数据,并进行显示
    发表于 06-05 17:57

    STM32G0B1RET6芯片FLASH擦除不了的原因?

    最近尝试用G0芯片FLASH进行擦除,发现擦除不了,代码如下: 从J-LINK回读结果来看,并未按照设想进行FLASH
    发表于 05-27 06:38

    STM32L476先用仿真器擦除FLASH后在程序中不成功怎么解决?

    STM32L476FLASH必须是64位(8字节),也就是double WORD,而且要先把要写的字节部分擦除掉。 问题来了,先把整片用仿真器
    发表于 03-28 08:44

    重新烧程序不是会擦除flash吗,为什么flash最后一页写入的字节还是存在?

    尝试了重新烧程序不是会擦除flash吗,但是flash最后一页写入的字节还是存在? 怎么回事?
    发表于 03-27 07:51

    stm32g473 flash擦除失败的原因?

    flash擦除的时候有需要注意的点没有注意到。 单步调试有时一进入HAL_FLASHEx_Erase( EraseInitStruct,PAGEError),就会引起SR寄存器报下面的错误
    发表于 03-26 08:11

    STM32G0B1RET6对FLASH进行擦除擦除不了的原因?

    最近尝试用G0芯片FLASH进行擦除,发现擦除不了,代码如下: 从J-LINK回读结果来看,并未按照设想进行FLASH
    发表于 03-11 07:37

    CW32L052 FLASH存储器

    CW32L052内部集成了64KB嵌入式FLASH供用户使用,可用来存储应用程序和用户数据。芯片支持对 FLASH 存储器的读、擦除操作
    的头像 发表于 02-28 17:43 774次阅读
    CW32L052 <b class='flag-5'>FLASH</b>存储器

    GD32的FLASH读、擦除操作

    一,GD32的flash特征1、在flash的前256K字节空间内,CPU执行指令零等待;在此范围外,CPU读取指令存在较长延时;2、对于flash大于512KB(不包括等于512KB
    的头像 发表于 02-19 12:46 4620次阅读
    GD32的<b class='flag-5'>FLASH</b>读、<b class='flag-5'>擦除</b>、<b class='flag-5'>写</b>操作

    NAND Flash的写入速度和擦除速度分别是多少

    NAND Flash的写入速度和擦除速度会受到多种因素的影响,包括Flash芯片的具体型号、制造工艺、以及操作环境等。因此,无法给出确切的数值。
    的头像 发表于 02-19 12:41 4422次阅读

    TC1728擦除FLASH需要关闭中断吗?

    TC1728擦除FLASH需要关闭中断吗
    发表于 02-04 06:57