Linux的SPI应用(四)----访问Nor Flash(MT25QL01GBBB)

SPI FLASH的一些主要的命令的时序:读,写,擦除,写使能,读寄存器等。

Flash的特性是,写数据只能将1写为0,0不能写为1。擦除数据是将所有数据都写为1,因此如果想在已经数据的Flash上写入新的数据,则必须先擦除

以MT25为例来讲解QSPI FLASH的一些主要的命令的时序。这里只讨论Extended SPI,Dual SPI和Qual SPI就不讨论了,这三种模式的差异仅仅体现在命令的传输上。Extended SPI命令传输使用DQ0,而Dual SPI使用两根线来传输命令, Quad SPI使用四根线来传输命令。

对于STR传输,也就是单时钟边沿采样,最高采样频率能达到133MHz。对于DTR双边沿采样来说,最高采样频率能达到66MHz。所以SDR和DTR的采样数据的速度其实是一样的。

  • MT25的内存分配

  • 引脚图

引脚功能如下

  • 读Flash ID   9Eh

 

9Eh时序非常简单,HOST送出8bit的命令,然后FLASH会依次送出8bit的Manufaturer ID,16bit的Device ID,以及不定长的UID。下图是MT25的Device ID数据结构 。

扫描二维码关注公众号,回复: 6244742 查看本文章

  • 写使能 06h

不管是在擦除还是写数据之前,都需要进行写使能操作,才能操作SPI NOR FLASH。

 

  • 4-BYTE 4KB SUBSECTOR ERASE擦除命令21h

Flash的擦除必须是以扇区为单位,在MT25中,可以进行64KB的扇区擦除,也可以做32KB或者4KB的子扇区擦除。

对NOR FLASH来说,只能从1写到0,所以在对某一个word或者byte进行写操作的时候,需要对NOR FLASH进行擦除。但一般SPI NOR FLASH都没有字节擦除的命令,最小都是基于SUBSECTOR的擦除。

 

 

  • 写命令 12h

写命令一次只能写一个PAGE,也就是256个byte。

  • 读Status Register 05h

时序是读register的操作,status register一共是八位,一般用来查询读操作是否完成。 

  • 读命令13h

借鉴于:

https://blog.csdn.net/u011280717/article/details/81408874

猜你喜欢

转载自blog.csdn.net/qq_31094099/article/details/88555706
今日推荐