W25Q128

W25Q128

器件的基本介绍

  1. W25Q128是一个可以存储声音、文本和数据的一个芯片,支持双/四SPI

  2. W25Q128的存储架构

    1. 存储架构:256块,每块有16个扇区,每个扇区有16页,每页有256个字节

    2. 容量的计算(2^8x2^4x2^4x2^8=2^24字节B=2^14KB=2^4MB=16MB 、1kB=2^10B、1MB= 2^10KB、

    3. W25Q128JW支持标准串行外设接口(SPI)、双SPI、四SPI:串行时钟、片选信号、串行数据I/O0(DI)、I/O1(DO)、I/O2和I/O3,支持的时钟最大是133MHz

特性

  1. 器件名称、容量、接口

  2. 存储架构:

框图、内部结构

  1. PCB图

  2. 框图

  3. 引脚说明

    1. CS片选信号、低电平有效

    2. DO数据输出

    3. DI数据输入

    4. CLk 时钟信号

时序

  1. 标准SPI接口,支持模式0和模式3,模式0空闲状态下SCK为低电平,模式3空闲状态下SCK为高电平

  2. 指令部分:要发送指令,是FPGA向Flash发送

    1. Write Enable写使能06h

      1. 除了读之外,在执行所有的操作指令之前都有先发送写使能指令,然后Flash才能正常工作,状态寄存器写使能指令位置1;

      2. 发送写使能时序

        image-20240425005332077

      3. 一次发8bit,高位先发

    2. Read Data 页读03h

    3. Page Program 页写02h

      1. 页写之前要先进行全擦除,然后再发送页写指令+地址+数据

      2. 最多一次发送256字节,

    4. Chip Erase 全擦除C7h/60h

      1. 全擦除指令的作用是将寄存器全部为1;

      2. 全擦除指令发送前,要先发送写使能指令,全擦除完成后状态寄存器中的写入启用锁存器(WEL)位将重新变为0。

      3. 等待时间

        image-20240425011421143

      4. 发送全擦除指令时序

        image-20240425010325890

      5. C7-1100_0111,60h-0110_0000

    5. 串行输入时序

注:

  1. 除了读数据以外,时钟频率最大为104MHz

  2. 读数据时钟频率最大为50MHz

  3. CS建立时间向对于CLK:tSLCH最小5ns,tCHSH最小3ns

  4. tSHSL读的时候最小为10ns,擦除或写的时候最小为50ns

03-11
### 关于W25Q128芯片的技术规格与应用 W25Q128是由Winbond制造的一款大容量串行闪存器件,具有16Mb(兆位)即2MB(兆字节)的存储密度。该款闪存采用标准SPI协议进行通信,并具备高速读取性能和较低的工作电压范围,在众多嵌入式系统设计中得到广泛应用。 #### 技术规格 - **存储容量**:16 Mb (2 MB),分为512个区块(Block), 每个区块有16个子区块(Sector)[^1]。 - **接口类型**:单/双/四线SPI模式可选。 - **工作电压**:2.7V至3.6V供电环境适用;I/O引脚兼容1.65V到3.6V逻辑电平输入输出信号。 - **频率响应**:最高可达104 MHz时钟速率下正常运作。 - **可靠性指标**:擦写周期超过十万次以上;数据保存期限长达二十年之久[^2]。 #### 应用场景举例 在实际工程项目里,W25Q128常被用来作为固件更新、日志记录等功能模块背后的持久化介质。例如,在智能家居网关或者工业控制板卡上部署OTA(Over-The-Air)升级服务时,可以利用其较大的内存空间来暂存新版本程序文件;而在一些需要频繁修改少量配置参数的应用场合,则能够发挥它快速随机访问的优势特点[^3]。 ```c++ // C++代码片段演示如何初始化并检测连接状态 #include <SPI.h> #define CS_PIN 10 // 定义片选引脚编号 void setup() { pinMode(CS_PIN, OUTPUT); digitalWrite(CS_PIN, HIGH); SPI.begin(); uint8_t status = readStatusRegister(); Serial.print("Device ID: "); Serial.println(status, HEX); } uint8_t readStatusRegister(void){ uint8_t reg; digitalWrite(CS_PIN, LOW); SPI.transfer(WRSR_CMD); // 发送读取状态寄存器命令 reg = SPI.transfer(0xFF); // 接收返回的数据 digitalWrite(CS_PIN, HIGH); return reg; // 返回读取的状态值 } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值