基于FPGA的关于flash一些学习记录

使用 winbond 公司的 128Mbit Qual SPI 接口的 FLASH,芯号为 W25Q128BV, 支持 SPI, Dual SPI 和 Quad SPI 接口方式。在 Fast Read 模式,接口的时钟速率最大可以达到 104Mhz。FLASH 的容量由 65,536 个 256-byte 的 Page 组成。W25Q128 的擦除方法有三种,一种为 Sector 擦除(16 个 page,共 4KB),一种为 Block 擦除(128 个 page,共 32KB), 另一种为 Chip 擦除(整个擦除)。

△flash 编程芯片手册解析

SCK上升沿输入数据,下降沿输出数据。8bit方式。

SPI数据读取方式: (READ: 03h)

RDID:读身份信息  (RDID: 9Fh)

读设备ID: (READ_ID: 90h)

写命令使能: (WREN: 06h)  (WRDI: 04h)

读取状态寄存器:(RDSR: 05h)

写状态寄存器:(WRSR: 01h)

对整页进行数据编程:Page Program (PP: 02h)

扇区擦除:(SE: 20h, D8h)

块擦除: (BE: C7h, 60h)

命令汇总:

02H是带地址的命令,所以是可以跟随地址写数据的,只是写数据范围只在当前页里而已。

读状态寄存器:Read Status Register (RDSR: 05h)

模式0的读写时序:

△测试结果

ID读取正常。

数据读写测试正常。

△实测:

1,首先进行擦除

2,写入数据

3,读取数据成功

△flash的内存梳理

用的是256KB的。

1,每个设备有64个扇区,2,每个扇区有1024个页,3,每个页有256字节。

对应的地址位置:

设计思路:先只用一个扇区,后面再实现更多的。即地址只有:000000-03ffffh,有1024页,最多存下262143字节(=256*1024)的数据。262144/9=29127次!

如果只用一页的话,只有256字节,可存28次。

但要加末尾地址,不然断电后,不知道写到哪儿了,所以是一次写入12字节,256/12=21次。

△说明:

顶层向该层(Flash_top)提供命令数据(共9字节),起始存储信号(start_pp),读取flash数据信号(GetAllData)。

此模块的功能要求是:

①在检测到start_pp信号后,将9字节命令数据依次存入flash;每接收完STM32数据一次,就会有一个start_pp信号高电平脉冲。

②在接收到GetAllData信号后,将前面存储在flash中的数据,全部读出;数据输出接口拟为:output [7:0] Flash_Data。

附言:若要等到全部存完才可读取flash数据,在上位机视角,不知道该何时才能读取数据。所以还需实现功能②的要求。

△程序完善:

1,只写入temp=55是可以的。

2,变化的数写入与读取成功。

简单地梳理了下flash的使用,只做到初步的数据读写,后面要用起来,还要更多的研究和测试。

基于FPGA的关于flash一些学习记录相关推荐

  1. 基于FPGA的SPI FLASH控制器设计

    1.SPI FLASH的基本特征 本文实现用FPGA来设计SPI FLASH,FLASH型号为W25Q128BV.支持3种通信方式,SPI.Dual SPI和Quad SPI.FLASH的存储单元无法 ...

  2. 基于jupyter notebook的简单爬虫学习记录

    目录 前言 一.基础理解 二.前期准备 三.爬虫实操[入门] 3.1.引入库 3.2.请求网页 3.3.解析网页 3.3.1.网页解读 3.3.2.熟悉部分BeautifulSoup语法规则 3.4. ...

  3. 基于API的ArrayList集合之学习记录

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.arraylist集合的出现 对象数组的使用 对象数组的缺点 为了弥补对象数组的缺点,出现了arraylist集合 二. ...

  4. 51单片机中断与定时器计数器,基于普中科技教学视频学习记录

    目录 寄存器 置位复位 中断系统 中断概念 中断系统 中断系统构造 外部中断 计时器.定时器中段 串口中断 中断允许控制(控制中断方式) 总中断 各个中断 中断请求标志(控制触发方式) 外部中断触发方 ...

  5. O‘relly 机器学习实战 基于Scikit-learn 、Keras和Tensorflow 学习记录-第一章

    @[TOC](这里写自定义目录标题) #第一章 机器学习概述 案例1.1: 使用Scikit-learn 训练并运行一个线性模型 import matplotlib.pyplot as plt imp ...

  6. FPGA 读写访问 Flash

    目录 前言 1.AT25DF641A flash芯片简介 2.AT25DF641A flash读访问时序 3.AT25DF641A flash写访问时序 (1)关于Protect Sector (2) ...

  7. 不逼自己一把都不知道自己还能这么优秀(小鹅通学习记录大批量队列同步)

    不逼自己一把都不知道自己还能这么优秀-小鹅通学习记录大批量队列同步实战日志 前言 一.编程语言介绍 1.php是世界上最好的语言 2.第三方API对接的苦恼 3.为什么说好的项目进度表都是画饼 二.炫 ...

  8. 基于全志A33开发板linux系统移植学习记录(Boot0)

    基于全志A33开发板linux系统移植学习记录 第一章 Boot0基于ARMGCC的编译与修改 文章目录 基于全志A33开发板linux系统移植学习记录 前言 一.全志A33简介以及上电引导流程 二. ...

  9. FPGA和USB3.0通信知识记录(3)——基于特权同学图书《Xilinx FPGA伴你玩转USB3.0与LVDS》

    PS FPGA和USB3.0通信知识记录(2)最后FX3驱动安装由于还未拿到开发板,后面再学习.我是个新人,请多多关照. 第四章 第一个例程与FPGA下载配置 4.1流水灯例程 介绍了Vivado创建 ...

  10. 野火STM32F103——Fat文件系统及Flash芯片W25Q64学习记录

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 文章目录 前言 一.Fatfs是什么? 二.W25Q64是什么 三.使用步骤 1.引入库 2.移植文件系统 文件简单读 ...

最新文章

  1. Block变量的的用法,使你的程序看起来清晰明了!
  2. 机器人学 —— 机器人感知(Kalman Filter)
  3. Linux从用户层到内核层系列 - GNU系列之glibc介绍
  4. 解决办法:error: item inner element must either be a resource reference or empty.
  5. 用Python【批量】生产【电子奖状】的方法请查收!
  6. android外接键盘打汉字,安卓手机外接键盘怎么切换输入法?
  7. Java泛型入门篇: 泛型类、泛型接口以及泛型方法
  8. 2021年终总结与展望
  9. html中的颜色代码详解及图示
  10. 快递单号查询api接口对接
  11. Smartbi大数据在金融业的应用案例
  12. 20172307 / 20172311 结对编程项目-四则运算 第三周总结
  13. java mongodb json_java向mongoDB中插入Json
  14. Visual Studio 程序集
  15. 狗狗40题~ (Volume C)
  16. 祝福我的家人朋友永远平安健康
  17. 求最大公约数与最小公倍数(C语言)
  18. 拒绝无用功,封装一个通用的 PopupWindow
  19. 如何在XP HOME版下设置共享文件夹及其权限?
  20. Ubuntu的man手册中英文切换

热门文章

  1. Python自动化下载模块
  2. python商业爬虫教程_python爬虫课程
  3. 外文参考文献去哪找和下载?
  4. python win32com 字体选择_用python的win32com模块替换word中的文字搞定批量打印奖状...
  5. ADS仿真 之 直流仿真示例
  6. php读取execl 实例,php读取excel的实例代码
  7. java毕业设计新能源汽车故障分析2021Mybatis+系统+数据库+调试部署
  8. 目标规划运筹学例题doc_第八章 运筹学 目标规划 案例.doc
  9. 电脑显示器黑屏|显示器突然黑屏|显示器闪黑屏
  10. 解决vscode中文乱码问题(不是改GBK,亲测有效)