介紹一款常用的SPI Flash芯片,搭配MCU和FPGA都很好!

Flash 硬件 通信 IC技術聯盟 2019-05-02

今天給大家推薦一塊Flash芯片,本人第一次接觸這款芯片是在黑金的FPGA開發板上。這個Flash在開發板上的功能是固化jic文件,固化之後FPGA每次上電就都會跑這裡面的程序,常用於工程調試好之後固化,避免每次上電都要重新燒寫。

Flash芯片型號與基本功能

這塊Flash型號為M25P16,總容量為16Mbit,通過SPI總線讀寫數據,最高頻率可以跑到75MHz.

介紹一款常用的SPI Flash芯片,搭配MCU和FPGA都很好!

基本功能特點如下:

1.對一個page(256bytes) program在典型情況下是0.64ms.

2.對一個sector(512Kbit)擦除典型情況下是0.6ms.

3.對16Mbit全擦除大概需要13s.

4.供電電壓支持2.7~3.6V之間。

5.通信方面是通過SPI總線。

6.時鐘頻率最高可以跑到75MHz。

7.深度低功耗模式下能把電流降到1uA.

8.支持十萬次以上的擦寫次數。

9.支持硬件寫保護功能

10.數據保存年限超過20年。

功能概況描述

這款Flash數據單元位寬是8bit,所以是2Mx8bit,通過高速SPI總線讀寫,能達到非常高的讀寫速度。通過page編程指令可以一次完成對1~256bytes的編程。

它的16Mbit容量按照這樣分佈的:總共有32個sector,每個sector裡面包含256個page,每個page有256個byte,所以總共是8192個page,擦除可以選擇對這個Flash擦,或者擦除一個sector。

它的引腳圖和信號列表如下所示,非常簡單明瞭。

介紹一款常用的SPI Flash芯片,搭配MCU和FPGA都很好!

管腳信號介紹

為了更詳細的瞭解這款Flash每一個管腳的意義,下面對每個引腳都做個介紹:

1.D信號(Serial Data input):SPI接口的數據輸入信號,用於接收主控給flash發送的指令,地址和要寫入flash的數據。

2.Q信號(Serial Data Output):SPI接口數據輸出信號,當主控需要讀flash數據時,通過Q端按照串行的方式把數據傳輸出去。

3.C信號(Serial Clock):由於SPI接口的時鐘信號是由主機發出的,在這裡flash屬於從機。所以時鐘信號對於它來說是輸入腳,D信號在時鐘的上升沿被鎖存,Q信號在時鐘的下降沿變化。

4.S信號(Chip Select):片選信號,低電平有效,當該信號被拉底時,說明該flash被選中,此時主控可以通過SPI總線讀寫或者擦除flash。

5.Hold信號:該信號用於暫停flash和主控之間的通信,該操作需要在S信號為低電平的時候進行,也就是主控想暫時停止與flash通信,又不想取消S信號時使用,該模式下Q信號是高電平的。

6. W信號(Write Protect):flash內部會有一些區域被硬件保護起來,不能讀寫或者擦除,該信號的作用就是釋放這些被保護的區域。

7.VCC和VSS:這就是電源和地管腳,大家都瞭解就不多介紹了。

實際芯片SOP16的管腳排布圖如下所示,DU是無用的PIN,不用關心。

介紹一款常用的SPI Flash芯片,搭配MCU和FPGA都很好!

Flash操作模式

1.Page Programming

想要對flash寫入1byte 數據,需要兩條指令:寫使能指令和Page Program序列,也就是說要先發兩條指令告訴flash接下來要進行什麼操作,再把要寫的數據傳進去。也就是說會有4byte的冗餘數據,當然,它支持最高一次寫入256byte數據,這時候的有效帶寬就很高了。需要注意的是,program指的是對flash內的存儲bit從1改成0.

2.Sector擦除或者整塊擦除

上面說了編程是從1到0,那麼擦除就是從0到1.通常flash在使用前都是先擦除成1,然後program。其中,擦除方式可以根據用戶需求選擇擦除一個sector或者這個存儲空間。

下圖是整個flash的結構框架圖:

介紹一款常用的SPI Flash芯片,搭配MCU和FPGA都很好!

關於flash的讀寫指令,以及讀寫控制的時序波形圖在這裡就不再詳細介紹,因為只有當您需要真正需要使用這款flash的時候才需要去了解。如果大家有需要詳細資料也可以在評論區留言,小編可以分享給大家。

讀完的朋友請點贊和轉發一下,感謝!

相關推薦

推薦中...