flash spi w25q128 w25q64 w25q32 w25q16 verilog ...

flash spi w25q128 w25q64 w25q32 w25q16 verilog fpga程序代码 fpga w25q128/64/32/16 verilog代码 资料包清单: 1.w25qxx_code_uart_top:altera工程代码,可移植ise,后续会出,话提前 2.功能说明书 注1:工程均带有激励testbench,工程安装好之后,仿真路径设置之后,打开,点击RTL Simulation即可开始仿真 注2:代码均为Verilog+fifo+pll组成 注3:代码注重功能应用,不提供详细的讲解 注4:给出的工程为quartus II 13.0,给出testbench代码,并且已经在电路板中验证过

基于串口的 W25Qxx FPGA 控制器

——功能说明与开发指南

(面向 v2.02 merged 版本)

------------------------------------------------

  1. 产品定位

------------------------------------------------

“基于串口的 W25Qxx FPGA 代码”是一套可移植、可裁剪的 SPI-NOR Flash 控制器 IP,运行于低成本 Cyclone-IV FPGA。

顶层交付形式为w25qxxcodeuart_top,对外仅留 UART(115200-8-N-1)和 4 线 SPI 两组管脚,开发者无需了解底层 SPI 时序即可在 1 分钟内完成「擦除-写入-读出」验证。

同时,IP 内部所有子模块均提供独立端口,可无缝剥离 UART,直接嵌入用户 FPGA 工程。

------------------------------------------------

  1. 系统架构

------------------------------------------------

图 1 整体框图(文字描述)

HOST-PC <==UART==> w25qxxcodeuart_top <==SPI==> W25Q128/64/32/16

├─ pll & reset

├─ uartrcv / uartxfer

├─ cmd_parser(状态机)

├─ w25qxx_core(纯逻辑)

│ ├─ cmd_dispatch

│ ├─ pagebufferfifo (8 kB)

│ ├─ spi_master (12.5 MHz)

│ └─ busypoll / idread

└─ rdfifo / wrfifo (各 8 kB)

------------------------------------------------

  1. 功能清单

------------------------------------------------

功能容量限制耗时(典型)备注
读 ID2 B0.5 ms返回 0xEF17
扇区擦除4 KB150 ms仅支持 4 KB Sector-Erase
页写入1-256 B0.8 ms自动拆分跨页
连续读出≤ 4096 B2.6 ms@4 kB内部 FIFO 决定
写 FIFO 缓存≤ 4096 B取决于 UART 速率先缓存后一次性编程

------------------------------------------------

  1. 串口帧协议(主机 → FPGA)

------------------------------------------------

所有指令采用「帧头-参数字节-返回字」模型,返回字与帧头相同,可简单 ACK。

1) 擦除扇区

帧头:CA A5 CA 5A

地址:2 B(高 12 bit 有效,低 12 bit 忽略)

返回:CA

2) 写 FIFO(仅缓存)

帧头:11 A5 11 5A

长度:2 B(N≤4096)

数据:N B

返回:11

flash spi w25q128 w25q64 w25q32 w25q16 verilog fpga程序代码 fpga w25q128/64/32/16 verilog代码 资料包清单: 1.w25qxx_code_uart_top:altera工程代码,可移植ise,后续会出,话提前 2.功能说明书 注1:工程均带有激励testbench,工程安装好之后,仿真路径设置之后,打开,点击RTL Simulation即可开始仿真 注2:代码均为Verilog+fifo+pll组成 注3:代码注重功能应用,不提供详细的讲解 注4:给出的工程为quartus II 13.0,给出testbench代码,并且已经在电路板中验证过

3) 写 Flash(把 FIFO 内容固化)

帧头:12 A5 12 5A

字节数:1 B(1-256)

地址:3 B(24 bit)

返回:12

4) 读 Flash

帧头:22 A5 22 5A

地址:3 B

长度:2 B(≤4096)

返回:22 + 长度字节

------------------------------------------------

  1. 典型操作流程

------------------------------------------------

Step-0 上电自检

FPGA 启动后自动读取 Flash ID,并通过 UART 返回 0xEF17,表示 IP 就绪。

Step-1 擦除

PC 下发:CA A5 CA 5A + 00 10 → 擦除 64 KB 物理地址 0x00001000

等待 150 ms 后收到 ACK 0xCA。

Step-2 写入

a) 先通过「写 FIFO」指令把 256 B 数据导入 FPGA;

b) 再下发「写 Flash」指令,指定起始地址;

c) IP 内部自动完成:Write-Enable → Page-Program → 轮询 Busy → 返回 0x12。

Step-3 校验

下发「读 Flash」指令,地址与长度与写入一致;IP 按字节通过 UART 回灌,PC 端进行 CRC/比对。

------------------------------------------------

  1. 性能指标

------------------------------------------------

  • SPI 时钟:12.5 MHz(100 MHz 主时钟 8 分频)
  • 页编程效率:≈ 320 kB/s(256 B / 0.8 ms)
  • 连续读效率:≈ 1.5 MB/s(受限于 UART 115200 时约 11 kB/s;若直接挂 AXI-SPI,可跑满 12.5 MHz)
  • 资源占用:Cyclone-IV EP4CE10 约 900 LE + 2 kB on-chip RAM(FIFO)

------------------------------------------------

  1. 移植与裁剪指南

------------------------------------------------

1) 去掉 UART

  • 例化w25qxxcode层,直接操作端口:
    w25q
    readiden→ 脉冲启动
    erasesectoren+erasesectoraddr[11:0]
    w25qwrdataen+w25qwraddr+w25qWRBYTENUM
    – 提供fifowrnbytewren&fifowrnbytewrdata
    – 监听*_done脉冲完成

2) 提升速度

  • spicmd*.vSPI_FREQ参数改为 4,即可得到 25 MHz SCK;
  • 确认 PCB 走线 ≤ 5 cm 并打开 Fast-IO。

3) 多片级联

  • 复制spicsspics0~n,在w25qxx_code顶层加片选译码即可;
  • 协议帧再增加 1 B 片选编号,命令解析器路由到不同cs信号。

------------------------------------------------

  1. 故障排查 FAQ

------------------------------------------------

Q1: 读 ID 返回 0x0000

  • 检查spi_miso是否上拉;
  • 用示波器看 SCK 频率,>20 MHz 时 W25Q128 会无响应。

Q2: 擦除后读出全 FF,但写入失败

  • 写入前必须擦除——IP 已强制检查,但用户若直接调用w25qxx_code绕过了擦除,需自行保证。

Q3: UART 返回乱码

  • 确认 115200-8-N-1;
  • FPGA 侧时钟 100 MHz 误差 < ±50 ppm,否则波特率漂移。

------------------------------------------------

  1. 版本履历

------------------------------------------------

v1.00 2020-05 基础 SPI 读写

v1.50 2021-03 增加 UART 命令帧

v2.02 2021-12 合并 fifo,支持 4096 B 缓存;增加忙检测与自动拆页;代码综合后 fmax 120 MHz

------------------------------------------------

  1. 声明与授权

------------------------------------------------

本说明文档对应 merged 版本源码,仅用于技术交流。

如需商用或二次发布,请遵循原始项目许可证(MIT/BSD 风格)并保留作者信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1178187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python+django+vue3基于协同过滤推荐算法的影视热门电影推荐系统

目录开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;开发技术路线 开发语言&#xff1a;Python 框架&#xff1a;flask/django 开发软件&#xff1a;PyCharm/vscode 数据库&#xff1a;mysql…

网页组件如何集成文件夹上传及分段功能?

大文件上传系统开发吐槽日记 甲方爸爸的需求清单 作为一个浙江苦逼的.NET程序员&#xff0c;最近接了个外包项目&#xff0c;甲方爸爸的需求让我差点当场表演"程序员暴毙"&#xff1a; 文件传输&#xff1a;要传20G的文件&#xff0c;还得是文件夹&#xff08;可能…

2026年AI搜索营销服务商实力排名:五大技术流派与增长模式深度数据报告 - 品牌推荐

当用户的搜索行为从输入关键词变为直接向AI提出具体问题,商业竞争的战场便发生了根本性转移。品牌能否在AI生成的答案中被理解、被引用、被优先推荐,直接决定了其在下一代流量生态中的生存空间。AI搜索营销,作为帮助…

配电网正常重构、孤岛划分及故障重构

配电网正常重构&#xff0c;孤岛划分及故障重构配电网自愈重构软件系统功能规格说明书&#xff08;V1.0&#xff09;一、定位与目标本系统面向 10 kV 及以下中压配电网&#xff0c;在故障发生后自动完成“孤岛划分 → 故障隔离 → 网络重构 → 供电恢复”全过程决策。核心目标&…

Python+django+vue3基于协同过滤推荐算法的超市商品推荐系统

目录 摘要关键词 开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 摘要 随着电子商务的快速发展&#xff0c;个性化推荐系统在提升用户体验和商业效益方面发挥着重要作用。本研究基于Python…

Python+django+vue3社区团购系统

目录PythonDjangoVue3社区团购系统摘要开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;PythonDjangoVue3社区团购系统摘要 社区团购系统基于PythonDjango后端与Vue3前端构建&#xff0c;采用…

网页控件怎么实现文件夹上传及分片?

政府大文件传输系统技术方案 一、技术架构设计 基于政府项目特殊需求&#xff0c;设计以下技术架构&#xff1a; #mermaid-svg-f5oQ8TM4emYZ0bxk{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame…

基于YOLO26算法的智慧农业橙子图像识别 橙子采摘识别 水果采摘识别 高清采摘过程图像识别 YOLO+voc格式数据集第10410期

智慧农业数据集README数据集核心概况 类别说明该数据集共包含 5 类目标&#xff0c;中文名称分别为&#xff1a;桶、橙子、人、剪刀、树类别覆盖日常物品与自然元素&#xff0c;无冗余交叉分类&#xff0c;贴合多场景目标检测的标注与训练需求数量说明总计包含 1300 张高质量标…

Python+django+vue3基于协同过滤推荐算法的零食商城食品推荐系统

目录基于协同过滤推荐算法的零食商城食品推荐系统开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;基于协同过滤推荐算法的零食商城食品推荐系统 该系统采用PythonDjangoVue3技术栈&#xff…

告别无效曝光:2026年适配不同增长阶段的五家AI搜索营销服务商全场景方案对比 - 品牌推荐

当前,生成式人工智能正以前所未有的深度重塑信息获取与商业决策的路径。AI搜索营销,作为连接智能生态与企业增长的关键桥梁,已成为企业布局未来、构建竞争壁垒的核心战略。为系统梳理行业前沿实践,精准识别具备自主…

液晶光栅PVG的衍射效率计算研究:胆甾相液晶技术的深度探索

液晶光栅PVG。 衍射效率计算。 (胆甾相)液晶光栅PVG&#xff08;偏振体积光栅&#xff09;这玩意儿在AR眼镜和全息显示里特别火&#xff0c;尤其胆甾相液晶那个螺旋结构&#xff0c;能把光的偏振玩出花来。今天咱们就掰开揉碎了说说它的衍射效率到底怎么算——别怕&#xff0c;…

Python+django+vue3科技文献推荐系统

目录科技文献推荐系统设计与实现技术架构与算法实现系统特色与创新点应用价值与展望开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;科技文献推荐系统设计与实现 该系统采用PythonDjangoVue…

汽车行业OA如何利用UEDITOR的跨平台特性导入PPT图表?

一个.NET程序员的外包奇遇记 大家好&#xff0c;我是一名安徽的.NET程序员&#xff0c;最近接了个CMS企业官网外包项目&#xff0c;客户突然提出个"让我头秃"的需求… 客户的需求清单&#xff08;让我瑟瑟发抖&#xff09; Word一键粘贴&#xff1a;要求像吃饭喝水…

国产化操作系统中,百度UE支持哪些格式的文档直接粘贴?

河北某国企项目负责人技术方案实施记录 一、需求分析与技术选型 作为项目负责人&#xff0c;我首先梳理了核心需求&#xff1a; 功能需求&#xff1a; Word粘贴&#xff1a;保留样式&#xff08;表格/字体/颜色&#xff09;&#xff0c;图片自动上传至二进制存储服务器&…

1.3 FreeRTOS简介与发展

1.3 FreeRTOS简介与发展 1.3.1 FreeRTOS的核心定义与设计哲学 FreeRTOS(Free Real-Time Operating System)是一个面向微控制器和小型微处理器的开源、可裁剪、跨平台的实时操作系统内核。其名称中的“Free”一语双关,既指“免费”(free in monetary terms),也指“自由”…

百度UE编辑器如何实现WORD文档带格式粘贴?前端开发者必看

【技术宅の毕业求生指南】CMS系统Word一键粘贴功能开发实录 &#xff08;附代码红包群安利内推彩蛋&#xff09; 背景 作为新疆某高校计算机科学与技术专业的大三狗&#xff0c;最近被导师逼着给CMS系统升级Word内容一键粘贴功能。要求支持Word/Excel/PPT/PDF导入、公式高清显…

Python+django+vue3仓库库存预警管理系统

目录系统概述技术架构核心功能创新点应用价值开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统概述 PythonDjangoVue3仓库库存预警管理系统是一个基于前后端分离架构的现代化库存管理解决…

Python+django+vue3企业任务分发管理系统

目录企业任务分发管理系统摘要开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;企业任务分发管理系统摘要 该系统基于PythonDjangoVue3技术栈开发&#xff0c;旨在为企业提供高效、可视化的任…

芯片设计企业如何通过百度富文本编辑器实现公式云端同步?

日期&#xff1a;2023年X月X日 角色&#xff1a;北京XX软件公司 全栈开发工程师 项目背景&#xff1a;客户要求在后台管理系统的文章发布模块新增三大功能&#xff1a; Word粘贴功能&#xff1a;支持从Word复制内容粘贴到UEditor&#xff0c;图片自动上传至内网单据存储服务器…

Python+django+vue3原生微信小程序天津市自然博物馆预约科普系统 展馆预约系统

目录天津市自然博物馆预约科普系统摘要开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;天津市自然博物馆预约科普系统摘要 该系统基于PythonDjangoVue3技术栈开发&#xff0c;结合微信小程序…