ZYNQ使用W25Q128BV和W25Q256FVEI芯片flash启动系统

本文介绍了ZYNQ系统如何配置从W25Q128BV和W25Q256FVEI Flash芯片启动。在配置过程中遇到的问题包括BOOT.BIN+image.ub无法启动,通过对比分析发现N25Q128和W25Q128的指令在不同SPI模式下有所不同,需要正确设置地址范围。对于W25Q256FVEI,由于BOOT.BIN和image.ub的大小超过单片16M Flash,因此将image.ub烧写到第二片16M Flash,并调整了petalinux-config和SDK的地址配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,FLASH芯片为W25Q128BV配置系统为FLASH启动

配置petalinux系统从flahs启动,发现BOO.BIN能启动,BOOT.BIN+image.ub启动不了。其中烧写和配置的时候,image.ub.bin偏移地址都是0x520000

烧写,然后启动

U-Boot 2018.01-00083-gd8fc4b3b70 (Nov 13 2023 - 03:29:36 +0000) Xilinx Zynq ZC70                                                                                                                                                             2

Board: Xilinx Zynq
Silicon: v3.1
I2C:   ready
DRAM:  ECC disabled 1 GiB
MMC:   Card did not respond to voltage select!
mmc_init: -95, time 23
mmc@e0100000 - probe failed: -95
sdhci_transfer_data: Error detected in status(0x208000)!
Card did not respond to voltage select!
mmc_init: -95, time 24

SF: Detected w25q128bv with page size 512 Bytes, erase size 8 KiB, total 32 MiB
*** Warning - 
<think>嗯,用户想了解W25Q32BV的具体FLASH类型及其技术特性。这是一个关于SPI Flash芯片的专业技术问题,需要从存储类型、规格参数工作原理三个维度来回答。 用户可能正在开发嵌入式系统,需要选型或调试这款Flash芯片。考虑到W25Q系列是常用存储器,但不同容量型号存在差异,用户特意询问32Mb版本,说明需求很具体。从引用内容看,用户似乎接触过Arduino、STM32等平台,对SPI通信应有基础认知。 先确认核心参数:这是Winbond公司的32Mb(4MB)SPI NOR Flash,采用串行外设接口。关键特性包括标准SPI模式(支持QSPI四线传输)、104MHz时钟、10万次擦写寿命、20年数据保存期。这些在引用[1][3][5]的datasheet接线示例中都有印证。 工作原理部分要重点说明存储结构:整个芯片分成64个可擦除块(block),每个块包含16个扇区(sector),每个扇区4KB。这种分层结构直接影响擦除效率——用户编程时必须先擦除再写入,而最小擦除单位是4KB扇区。引用[4]提到的DMA操作轮询方式正是针对这种特性的优化。 注意到引用[2]强调不同型号的兼容性问题,虽然W25Q32BV未提及,但需要提醒用户:同系列128Mb型号与N25Q128存在指令集差异,建议核查具体型号的datasheet。另外从引用[3][5]的接线图看,典型应用需连接CS/CLK/MOSI/MISO四根线,电压必须是3.3V。 最后生成的问题要覆盖延伸需求:性能优化驱动开发是嵌入式工程师的实际痛点,而替代型号查询则考虑备选方案。特意加入"功耗管理"这个隐含重点——移动设备开发者会特别关注。</think>以下是关于 **W25Q32BV SPI Flash** 芯片的详细技术解析: --- ### **1. 存储类型** - **基础类型**:**NOR Flash** - **接口协议**:**SPI(串行外设接口)**,支持标准 SPI(单线)、Dual SPI(双线)、Quad SPI(四线)模式[^1][^3][^5]。 - **容量**:**32Mb(4MB)**,按字节寻址,地址空间为 `0x000000~0x3FFFFF`[^1][^5]。 --- ### **2. 关键规格参数** | **特性** | **参数值** | |------------------|-------------------------------| | **工作电压** | 2.7V–3.6V(工业级)[^1][^5] | | **时钟频率** | 最高 **104MHz**(Quad SPI模式)[^1] | | **擦写寿命** | **10万次**(每扇区)[^1] | | **数据保存期** | **20年**(断电后)[^1] | | **页大小** | **256字节**(编程最小单位)[^1] | | **扇区大小** | **4KB**(擦除最小单位)[^1] | | **块大小** | **64KB**(可选擦除单位)[^1] | --- ### **3. 工作原理** #### **存储结构** - 芯片分为 **64个可擦除块(Block)**,每块包含 **16个扇区(Sector)**[^1]。 - **擦除操作**: - 扇区擦除(4KB) - 块擦除(64KB) - 整片擦除(Chip Erase) #### **数据传输流程** 1. **片选使能**:拉低 `CS#` 引脚启动通信[^3][^5]。 2. **发送指令**:通过 `DI`(MOSI)引脚发送操作码(如读指令 `0x03`)[^1][^4]。 3. **传输地址**:发送 **24位存储地址**(3字节)[^1]。 4. **读写数据**: - **读数据**:从 `DO`(MISO)引脚串行输出数据。 - **写数据**:需先执行 **擦除**,再通过页编程(Page Program)写入[^1][^4]。 #### **关键操作指令** | **指令** | **操作码** | **功能** | |--------------|-----------|--------------------------| | **Read Data**| `0x03` | 连续读取数据 | | **Page Program**| `0x02` | 写入≤256字节数据 | | **Sector Erase**| `0x20` | 擦除4KB扇区 | | **Read Status**| `0x05` | 查询忙状态(BUSY=1时不可操作)[^1] | --- ### **4. 硬件设计要点** - **接线示意**[^3][^5]: ```plaintext MCU ↔ W25Q32BV SPI_CS ↔ CS# SPI_CLK ↔ CLK SPI_MOSI ↔ DI SPI_MISO ↔ DO 3.3V ↔ VCC GND ↔ GND ``` - **上电时序**:需等待 `tPU`(上电时间,约1ms)后再操作[^1]。 --- ### **5. 应用场景** - **嵌入式系统启动代码存储**(如ZYNQ、STM32)[^2][^3]。 - **固件/参数存储**(替代EEPROM,大容量非易失存储)[^4]。 - **音频/图像缓存**(Quad SPI模式加速数据传输)[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒听雪落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值