zynq 烧写W25Q256FV Flash步骤

  1. zynq中flash设置:

QSPI时钟默认200MHz;

  1. 生成bit文件后导出到vitis中,修改fsbbl_debug.h文件,添加#define FSBL_DEBUG_INFO,目的为了在烧写过程中打印烧写信息,生成fsbl.elf文件;

  1. 打包BOOT.bin文件:Xilinx->Create BOOT Image,配置如下:

其中fsbl.elf文件信息:

bit文件信息:

点击Create Image;

  1. 下载程序:Xilinx -> Program Flash,设置如下:

等待程序下载完成;

注意:

  1. 下载flash程序时FPGA启动模式需要在JTAG模式,下载完成后再切换到QSPI启动;

  1. 出现下载失败字样时,打开任务管理器,关闭hw_server.exe,点击步骤4界面中的Auto Detect重新连接下载器即可;

### ZYNQ 平台 W25Q256 闪存芯片读操作 #### 硬件连接说明 对于ZYNQ平台上的W25Q256闪存芯片,硬件连接主要涉及QSPI接口的配置。当选择Single SS 4-bit IO模式时,需要确保以下信号线正确连接到ZYNQ处理器: - **CS_N (Chip Select)** 连接到PS_QSPI_CS_B引脚 - **CLK (Clock)** 连接到PS_QSPI_SCK引脚 - **IO0-DI (Data In)** 连接到PS_QSPI_IO[0]引脚 - **IO1-DO (Data Out)** 连接到PS_QSPI_IO[1]引脚 - **IO2-WP** 和 **IO3-HOLD** 可以分别连接至PS_QSPI_IO[2], PS_QSPI_IO[3] 或者根据具体需求悬空[^1] #### 初始化与配置 为了使能并初始化QSPI Flash设备,在Xilinx SDK环境中可以通过调用`XSpiPs_Config *Config; XSpiPs CfgPtr;`来获取默认配置参数,并通过`XSpiPs_CfgInitialize(&Spi, Config, Config->BaseAddress);`完成外设初始化。 #### 示例代码:读取Flash ID 下面展示一段用于验证通信正常工作的简单测试程序——读取存储器ID指令(0x9F),这有助于确认物理层连通性和基本功能完好无损。 ```c u8 ReadJEDECID(void){ u8 CmdBuf[4]; u8 RecvBuf[4]; /* Send command to read JEDEC ID */ CmdBuf[0]=0x9f; Xil_DCacheInvalidateRange((INTPTR)&RecvBuf,sizeof(u8)*4); XSpiPs_Transfer(&Spi,(u8 *)CmdBuf,NULL,1); XSpiPs_Transfer(&Spi,NULL,&RecvBuf,3); return RecvBuf[0]; //返回制造商ID作为函数结果 } ``` #### 数据入流程 数据入前需先发送释放保护状态命令(如0x04),接着执行擦除扇区/块的操作;之后再利用页编程命令(通常为0x02)向指定地址位置入新数据。注意每次最多只能在一个页面内连续入不超过256字节的数据量。 #### 数据读取方法 要从特定偏移处开始读回一定长度的内容,则应发出快速读请求(Fast Read Command, 0x0B), 后跟起始地址以及期望接收缓冲区指针即可实现高效传输。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值