W25Q128 闪存芯片SPI详解

Posted Z小旋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了W25Q128 闪存芯片SPI详解相关的知识,希望对你有一定的参考价值。

什么是W25Q128V

W25Q128V芯片是串行闪存,可以通过标准/两线/四线SPI控制,

W25Q128fv管脚如上,作为标准SPI控制时,DO管脚为MISO,D1管脚为MOSI,/CS为片选NSS,CLK为时钟信号线。/WP为写保护管脚,/HOLD or /RESET为保持或复位引脚(通过寄存器配置)。

原理图连接

W25Q128(W25Q64)将16M(8M)的容量分为256(128)个块(Block),每个块大小为64K字节,每个块又分为16个扇区(Sector),每个扇区4K个字节。W25Qxx的最小擦除单位为一个扇区,也就是每次必须擦除4K个字节。这样我们需要给W25Qxx开辟一个至少4K的缓存区,这样对SRAM要求比较高,要求芯片必须有4K以上SRAM才能很好的操作。

W25Q128FV命令

W25Q128FV通过命令操作,这里简单介绍几条用到的命令,详情可以参考数据手册

1.读制造商/设备ID(0x90)
该指令通常在调试程序的时候用到,判断SPI通信是否正常。该指令通过主器件拉低/CS片选使能器件开始传输,首先通过DI线传输“90H”指令,接着传输000000H的24位地址(A23-A0),之后从器件会通过DO线返回制造商ID(EFH)和设备ID(17H)。
(注:SPI为数据交换通信,主器件在发送“90H”指令时也会接收到一个字节FFH,但此数据为无效数据)

写使能(Write Enable) (06h)

向FLASH发送0x06 写使能命令即可开启写使能,首先CS片选拉低,控制写入字节函数写入命令,CS片选拉高。

2.读数据(03H)

读数据指令可从存储器依次一个或多个数据字节,该指令通过主器件拉低/CS电平使能设备开始传输,然后传输“03H”指令,接着通过DI管脚传输24位地址,从器件接到地址后,寻址存储器中的数据通过DO引脚输出。每传输一个字节地址自动递增,所以只要时钟继续传输,可以不断读取存储器中的数据。

3.页编程(02H)

页编程指令可以在已擦除的存储单元中写入256个字节。该指令先拉低/CS引脚电平,接着传输“02H”指令和24位地址。后面接着传输至少一个数据字节,最多256字节。

4.扇区擦除(20H)

扇区擦除指令,数据写入前必须擦除对应的存储单元,该指令先拉低/CS引脚电平,接着传输“20H”指令和要擦除扇区的地址。

5.使能重启(66H),使能重启设备(99H)。

在对W25Q128 FLASH的写入数据的操作中一定要先擦出扇区,在进行写入,否则将会发生数据错误。
W25Q128 FLASH一次性最大写入只有256个字节。
在进行写操作之前,一定要开启写使能(Write Enable)。
当只接收数据时不但能只检测RXNE状态 ,必须同时向发送缓冲区发送数据才能驱动SCK时钟跳变。

以上是关于W25Q128 闪存芯片SPI详解的主要内容,如果未能解决你的问题,请参考以下文章

闪存芯片国产进程

科普贴:手机国产内存芯片闪存芯片怎么区分与选购?

什么叫NAND闪存?什么叫NOR闪存? 这两者有什么区别?

什么叫NAND闪存?什么叫NOR闪存? 这两者有什么区别?

[SSD固态硬盘技术 4] 主控详解

Nand闪存芯片; x8 和 x16 位的 I/O 宽度?