大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家讲的是英飞凌MirrorBit工艺NOR Flash的扇区架构设计

  NOR Flash 大家都很熟悉,其内部按组织从小到大分为 Page(128B/256B/512B)、Sector(4KB)、Block(32KB/64KB/128KB/256KB)、Chip,其中 Page 是编程单元,Sector/Block/Chip 是擦除单元(一个 Block 由多个 Sector 组成,一颗 Chip 由多个 Block 组成)。关于擦除,Flash 提供了不同大小的单元粒度,也是为需要数据和参数存储的应用程序提供更大的灵活性。

  最近痞子衡在支持 RT1170 客户过程中就在英飞凌 NOR Flash S25HL512T 擦除上遇到了一些问题,后来翻看 Flash 数据手册,才发现它的擦除单元设计有特别之处,今天痞子衡就给大家介绍一下:

一、英飞凌NOR Flash系列

  我们先来看一下目前英飞凌主流 NOR Flash 系列,从接口上看有 Parallel/QSPI/Octal/HyperBus 四种,从工艺上看有 45nm MB/65nm MB/65nm FG 三种:

  其中属于 65nm FG 工艺(也称 ETOX)下的 QSPI Flash S25FL064L 算是我们比较耳熟能详的型号,这和大家常用的 Winbond/GigaDevice/MXIC 家的 NOR Flash 差别不大(这三家的产品也是基于 FG 工艺,一个基本存储单元 CELL 仅存储一个比特位),无需特别注意。

  其它 Flash 均是 45/65nm MB 工艺下的产物,MB 是 MirrorBit 的缩写,这是 Spansion 公司主推的一种闪存技术,其与英特尔的 MLC 方案非常类似,它也是通过让一个基本存储单元 CELL 存储两个(或更多)比特位,实现容量增倍的目的。

  MB 工艺和 FG 工艺各有优缺点,MB 工艺的优点是容量大、价格便宜、擦写快,缺点则是可靠性较差,高温下容易发生 bit 反转导致数据错误(当然这也可以通过增加 ECC 特性来改善)。

二、MirrorBit下不一样的扇区架构

  我们就以英飞凌 S25HL512T 型号为例介绍其扇区架构设计,其余 MirrorBit 工艺下的 Flash 扇区设计也类似。

  S25HL512T 数据手册开篇就直接点明了工艺特性以及扇区架构设计,这其实就是提醒用户这里要特别注意,扇区一共有三种不同的配置选项,用户可根据项目实际情况按需配置(设置 Flash 相应配置寄存器)。

  和扇区架构配置相关的 Flash 寄存器位分别是 CFR3[3]、CFR1[6]、CFR1[2]:

2.1 配置选项一:仅第一个Block能拆分出Sector

  如果 CFR3[3]、CFR1[6]、CFR1[2] 均为 0,这也是 Flash 出厂的默认配置,这种情况下 Flash 第一个 Block(256KB) 里会包含 32个 4KB Sector,即 0x00000000 - 0x0001FFFF 区域可用 Sector Erase 命令(0x20/0x21)去擦除,其余 Block 则无法拆分。

2.2 配置选项二:仅最后一个Block能拆分出Sector

  如果仅将 CFR1[2] 设为 1,这种情况下 Flash 最后一个 Block(256KB) 里会包含 32个 4KB Sector,即 0x03FE0000 - 0x03FFFFFF 区域可用 Sector Erase 命令(0x20/0x21)去擦除,其余 Block 则无法拆分。

2.3 配置选项三:第一个和最后一个Block能拆分出Sector

  如果仅将 CFR1[6] 设为 1,这种情况下 Flash 第一个和最后一个 Block(256KB) 里均会包含 16个 4KB Sector,即 0x00000000 - 0x0001FFFF、0x03FF0000 - 0x03FFFFFF 区域可用 Sector Erase 命令(0x20/0x21)去擦除。

2.4 配置选项四:所有Block均无法拆分

  如果将 CFR3[3] 设为 1,那么 Flash 里所有 Block(256KB) 均无法拆分,此时擦除也只能用 Block Erase 命令(0xD8/0xDC)。

  现在我们知道 MirrorBit 工艺下的 Flash 扇区架构相比 FG 工艺 Flash 在粒度划分上要粗糙得多,灵活性降低了,这在做程序设计、下载算法时均需要特别考虑。

  至此,英飞凌MirrorBit工艺NOR Flash的扇区架构设计痞子衡便介绍完毕了,掌声在哪里~~~

欢迎订阅

文章会同时发布到我的 博客园主页CSDN主页知乎主页微信公众号 平台上。

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:英飞凌MirrorBit工艺NOR Flash的扇区架构设计的更多相关文章

  1. 痞子衡嵌入式:16MB以上NOR Flash使用不当可能会造成软复位后i.MXRT无法正常启动

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT上使用16MB以上NOR Flash软复位无法正常启动问题的分析解决经验. 痞子衡这几天在支持一个i.MXRT1050客户项 ...

  2. 痞子衡嵌入式:串行NOR Flash的DQS信号功能简介

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是串行NOR Flash的DQS信号功能. 串行NOR Flash在嵌入式里的应用相当广泛,既可用作数据存储也可以用作代码(XiP)存储, ...

  3. 痞子衡嵌入式:串行NOR Flash的Continuous read模式下软复位后i.MXRT无法启动问题解决方案之RESET#

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT上使能NOR Flash的Continuous read模式在软复位后无法正常启动问题的解决经验. 前一篇文章 <在i ...

  4. 痞子衡嵌入式:串行NAND Flash的两大特性导致其在i.MXRT FlexSPI下无法XiP

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串行NAND Flash的两大特性导致其在i.MXRT FlexSPI下无法XiP. 在嵌入式世界里,当我们提起XiP设备(支持代码原地 ...

  5. 痞子衡嵌入式:串行NOR Flash的页编程模式对于量产时间的影响

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是串行NOR Flash的页编程模式对于量产时间的影响. 任何嵌入式产品最终都绕不开量产效率话题,尤其是对于主控是非内置 Flash 型 ...

  6. 痞子衡嵌入式:国内外串行NOR Flash厂商官网Cross Reference功能使用体验

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是国内外串行NOR Flash厂商官网Cross Reference功能. 串行 NOR Flash 是一个相对发展稳定的市场,目前全球市场 ...

  7. 痞子衡嵌入式:存储器大厂Micron的NOR Flash芯片特殊丝印设计(FBGA代码)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是存储器大厂Micron的NOR Flash芯片特殊丝印设计(FBGA代码). 痞子衡之前写过一篇文章 <J-Flash在Micron ...

  8. 痞子衡嵌入式:MCUBootUtility v2.3发布,这次不再放过任何一款Flash

    -- 痞子衡的 NXP-MCUBootUtility 开源项目自2018年8月27日第一笔提交至今已有21个月,目前累计代码已近50000行.相信这个工具为大家开发 i.MXRT 项目提供了一些便利, ...

  9. 痞子衡嵌入式:kFlashFile v1.0 - 一个基于Flash的掉电数据存取方案

    大家好,我是痞子衡,是正经搞技术的痞子.今天给大家带来的是痞子衡的个人小项目 - kFlashFile. 痞子衡最近在参与一个基于 i.MXRT1170 的项目,项目有个需求,需要在 Flash 里实 ...

  10. 痞子衡嵌入式:轻松为i.MXRT设计更新Segger J-Link Flash下载算法文件

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是为i.MXRT设计更新Segger J-Link Flash下载算法文件. 想要在Flash中调试,基本是离不开Flash下载算法的,毕 ...

随机推荐

  1. 呼吁 《上海市卫生健康&ldquo;信息技术应用创新白皮书》改正 C# 被认定为A 组件是错误认知

    近日,<上海市卫生健康"信息技术应用创新"白皮书>(以下简称<白皮书>)正式发布,介绍了"医疗信创核心应用适配方法.公立医院信息系统及全民健康信息 ...

  2. 在Linux驱动中使用gpio子系统

    reference: https://blog.csdn.net/shiyongyue/article/details/75103446 http://blog.rongpmcu.com/gpiozi ...

  3. C#中?.、??、?:、及?等符号用途

    1.可空类型修饰符(?)   众所周知,在C#中引用类型可以使用一个null引用来表示一个不存在的值,比如 string str = null 是正确的: 但是值类型却不能为空,比如 int k = ...

  4. makedown 笔记

    前言 记录一下自己经常忘的makedown指令,不断更新. makedown 添加空格  

  5. python实用总结

    Python3 常用工具 1. 命令行快速搭建本地http服务器 python3 -m http.server 8000 在命令行中输入此命令,就会在当前目录下搭建http服务器,可以通过访问http ...

  6. DownUnderCTF 2024 - Forensics

    DownUnderCTF 2024 - Forensics Baby's First Forensics 他们整个上午都在试图破坏我们的基础设施!他们正试图获得更多关于我们秘密袋鼠的信息!我们需要您的 ...

  7. SeaweedFS + TiKV 部署保姆级教程

    在使用 JuiceFS 时,我们选择了 SeaweedFS 作为对象存储,以及 TiKV 作为元数据存储,目前在 SeaweedFS 上已经存储了近1.5PB 的数据.关于 SeaweedFS 和 T ...

  8. 全网最适合入门的面向对象编程教程:03 类和对象的Python实现-为自定义类添加属性

    摘要: 本文主要介绍了,当使用 Python 创建自定义类时,如何为其添加属性,包括为类和实例添加属性两种,以及如何获取自定义的属性等内容. 往期推荐: 学嵌入式的你,还不会面向对象??! 全网最适合 ...

  9. Django 自定义创建密码重置确认页面

    要实现上述功能,你需要修改模板文件以添加"忘记密码"链接,并创建新的视图函数来处理密码丢失修改页面.验证和密码修改.下面是你可以进行的步骤: 1. 修改模板文件 在登录页面的表单下 ...

  10. 在Django中查找重复项目

    在Django中查找重复项目通常涉及使用查询集(QuerySet)和模型(Model).假设你有一个模型,比如Item,你想查找其中重复的项目,可以通过以下步骤来实现: 确定重复的标准: 首先需要确定 ...