芯成 IS25WP128 是一颗很典型的四线 QSPI NOR Flash,其写入(编程)时序是符合 JEDEC216 标准的。简单来说,一个完整的写时序包含三个独立子时序:Write Enable 时序 + Page Program 时序 + Read Status 时序。

  先来看打头阵的 Write Enable 子时序,NOR Flash 内部的状态寄存器会有一个位叫 WEL (Write Enable Latch),这个位控制着 Flash 的擦写权限,默认值是 0(即不允许擦写)。如果想要写入 Flash,必须先通过 Write Enable 命令将 WEL 位临时设为 1(这个位会随着当前的擦写命令结束后自动恢复到 0)。

  置位了 WEL 后,便可以传输 Page 数据给 Flash,这个子时序便是 Page Program。Page Program 按命令地址和数据传输方式不同分为三种:一线 SPI,四线 SPI,QPI,下面是常用的四线 SPI 的时序图,命令和地址通过 IO0 传输,数据通过 IO[3:0] 传输。

  通常来说,在这个时序里,传入的地址应该是 Page 首地址,写入数据长度应该是一个完整的 Page 大小。但从非 Page 首地址处写入小于一个 Page 长度的数据也是可以的,但有一个注意点就是不要在这个时序里出现跨页的现象(如果出现,超出当前页的数据会被放回到该页起始地址处)。

  Page Program 子时序结束后,数据还并未真正写入 Flash 内存体中,Flash 内部控制器只是开始处理数据,这时候会有一个等待时间(大概0.2ms),Flash 内部的状态寄存器有一个位叫 WIP (Write In Progress),这个位标志着数据写入状态(默认值是 0,当 Page Program 子时序结束后,WIP 立即跳为 1),用户需要通过 Read Status 子时序来实时读取状态寄存器的值从而获知数据处理情况。

  当 Flash 内部状态寄存器中的 WIP 位从 1 跳回到 0,便意味着一次完整的写时序结束了,主机可以发起下一次写时序。

Flash写操作流程相关推荐

  1. 解决STM32F0/F1内部FLASH写操作导致中断程序无法响应的问题

    必看链接:试图搞懂MDK程序下载到flash(二)–分散加载文件scatter 参考链接:STM32F10x单片机Flash写操作导致中断不响应问题 最近本人在写STM32F0系列的FLASH写操作的 ...

  2. STM32F10x单片机Flash写操作导致中断不响应问题

    昨天遇到一个问题,在写入数据到STM32F103单片机的Flash中时会出现串口中断接收数据丢失现象,但是我设置的串口接收中断优先级是最高的,并且没有哪里将全局中断关闭很长时间(除了操作系统部分内核代 ...

  3. 一个 NAND flash写函数

    一个刚看到时有点晕晕的flash的写函数,后来仔细看了后明白了:附上我的草稿图 int tls_fls_write(u32 addr, u8 *buf, u32 len) { u8 *cache; i ...

  4. CSR86XX ROM版 操作EEPROM,FLASH的操作流程

    工具软件的安装: (安装时需要网络,可能要下载windows组件,请安装在C盘下) 安装InstallBlueSuite_2_5_8,安装完成后需要重启. 安装CSRXX_ROM_ConfigTool ...

  5. Flash之SM25QH128M、JFM25F32A读写操作FPGA Verilog实现

    JFM25F32A Flash写操作流程如图1所示,对于Flash类型的存储器,向已经存在数据的单元写入数据时,直接写入是无法写入的,在写入之前必须先执行擦除命令,再进行写入即可:如果待写入的单元为新 ...

  6. GD32的flash读、擦除、写操作

    GD32的flash特征 1.在flash的前256K字节空间内,CPU执行指令零等待:在此范围外,CPU读取指令存在较长延时: 2.对于flash大于512KB(不包括等于512KB)的GD32F1 ...

  7. Flash----读写外部Flash

    目录 前言 Flash相关API Flash工程 首先定义下flash扇区大小 定义下扇区操作编号及定义了将要写入flash数据的数组和用来缓存flash数据的数组 接下来我们从0x77000地址起, ...

  8. STM32F4xx系列使用HAL库配置SPI-读写FLASH

    SPI协议简介 SPI物理层特点    SPI协议层 QSPI协议简介 SPI框图 Flash写入与EEPROM有点相似,不同的是FLASH写入需要软件手动擦除,而EEPROM不用 SPI配置流程 1 ...

  9. STM32系列内部Flash擦写程序

    stm32内部Flash擦写流程,对于FLash必须按页擦写,不同型号的flash页大小不同,需要根据实际修改 #define FLASH_PAGE_SIZE 2048 //定义Flash页大小,RC ...

最新文章

  1. 关于Jvm知识看这一篇就够了
  2. 关于第十六届大学生智能汽车竞赛 华南赛区补赛办法
  3. Ubuntu12.04安装jdk1.6.0
  4. 【转】iphone - ios app maximum memory budget
  5. DbgPrint 格式字符串
  6. 大年初一,给大家发1000红包!
  7. 量词逻辑量词里面的v表示?_知识表示能力问答中的人工智能量词(MCQ)
  8. 多线程压测_京东618压测时自研中间件暴露出的问题,压测级别数十万/秒
  9. php++仿网页版微信,【原创】html5高仿微信网页版|h5仿微信聊天实战
  10. CodeBlocks新手安装以及汉化(20,03版本)
  11. Python-torch.optim优化算法理解之optim.Adam()
  12. html中首行缩进两个字符
  13. CentOS7安装oh-my-zsh(github start Top 10)
  14. 腾讯邮箱比阿里邮箱好,腾讯邮箱还是阿里邮箱?
  15. Word2019表格文字一直无法上下对齐的解法
  16. P3918 [国家集训队]特技飞行
  17. Ubuntu系统迁移至固态硬盘(生产环境勿用)
  18. 悬赏任务h5系统源码接单发单平台支持游戏试玩签到
  19. 《演讲的本质》:如何做好一次公开演讲?
  20. 在word中如何在不同的章节中插入不同的页眉、页脚

热门文章

  1. mysql安装,数据库连接
  2. 专题:Web App与Native App技术点大整合
  3. const与volatile
  4. 处理 ODBC, OLE DB, 和 SQL Server .NET Provider 中的异常
  5. 关于properties.load()出现的空指针异常
  6. socket网络编程 java_Java Web 基础(一) 基于TCP的Socket网络编程
  7. html xpath java_Java根据XPath提取HTML
  8. python编写一个程序、计算字符串中子串出现的次数_急求。。。C语言实现,计算字符串中子串出现的次数,就是先输入一个字符串,再输入一个上面字符串中存在...
  9. 这是一篇很好的文章,学verilog的可以好好看看
  10. SQL-Server使用点滴(二-系统表)