FPGA 读写访问 Flash

目录

 

前言

1、AT25DF641A flash芯片简介

2、AT25DF641A flash读访问时序

3、AT25DF641A flash写访问时序

(1)关于Protect Sector

(2)关于Write Enable

(3)关于Erase

(4)关于状态寄存器

(5)写访问时序


前言

工作中,用到过两种flash:M25P32、AT25DF641A。

下面以这个串行Flash(AT25DF641A)为例,对Flash读写访问进行简单介绍。

1、AT25DF641A flash芯片简介

AT25DF641A flash芯片管脚封装

AT25DF641A flash芯片管脚封装

2、AT25DF641A flash读访问时序

按照芯片手册的读时序进行即可,没有特别需要注意的地方。

3、AT25DF641A flash写访问时序

有几点说明需要注意:

(1)关于Protect Sector

由下图芯片手册说明可知,该Flash芯片在上电后,会默认处于保护状态。

在Flash芯片处于保护状态下,是不允许写访问和擦除操作。

(2)关于Write Enable

首先需要知道,WEL bit 需要在写访问和擦除操作之前置1。

其次需要知道,WEL bit在写访问和擦除操作等成功后,会被自动清0。

(3)关于Erase

首先需要知道,写访问的地址空间必须是擦除过的地址空间。

其次需要知道,进行擦除操作之前,需要先将WEL bit置1.

最后需要知道,擦除操作成功后,Flash芯片会自动将WEL bit清零。

(4)关于状态寄存器

一般在所有数据全部写入Flash之后,会将Flash芯片置于保护状态。

(5)写访问时序

在发写指令和写地址之前,需要进行下面几个步骤:

  1. Write Enable,取消保护
  2. Write Enable,擦除对应地址空间
  3. Write Enable,等待写指令、写地址、写数据。

在上面3个步骤执行完之后,按照手册的写访问时序进行即可实现数据的写入操作。

Byte写访问和Page写访问,是没有太大区别的。因为他们发的写指令码是一样的。

详细的代码不再介绍,按时序图写Verilog代码即可。

>>点击这里返回导航页<<

参考文献

作者 博客
1、afishfly FPGA读写Flash模块 Verilog程序设计
2、lai-jian-tao 基于FPGA的SPI FLASH控制器设计
3、时间看得见 基于FPGA的关于flash一些学习记录
4、obi FPGA学习心得及(flash读写,+lwip+数据发送等问题)
5、张华山 FPGA verilog 基于SPI总线协议控制flash的项目升级
6、起魔 FPGA基础入门【8】开发板外部存储器SPI flash访问
   
   
   
发布了80 篇原创文章 · 获赞 77 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_22168673/article/details/103006569