flash芯片測試


   flash操作不同於sram,sram類似於在使用ram ip核(quartus/vivado)時生成的模塊直接對存儲操作,flash操作都是基於控制器的指令來的。flash在編程(寫數據)之前是需要對芯片擦除(也就是寫1),因為編程操作只能把1變成0,而不能把原本是0的位變成1。

   基本的命令:擦除命令/編程命令/讀取命令(讀取命令分為讀取數據和讀取寄存器)

   基本操作格式:命令+[地址]+[數據]       //地址和數據是可選的
  

   flash芯片擦除時按扇區來划分的;讀取時一般芯片內部有一個buffer(大概幾十個字節的大小),也就是說一般每次讀取就是這個buffer的大小;program也是一樣有一個buffer(具體的大小取決於各個芯片)。

   flash芯片還有一些寫保護功能(本測試不做驗證,測試主要這對操作接口)。

-------------------------------------------------------------

   flash分類:

    並口flash

    串行flash

    norflash:容量小但速度快(這里的速度指讀取的速度,尤其並口flash的讀取和ram讀取幾乎沒有區別)/一般用於存儲系統,啟動代碼,bios之類

    nandflash:容量大但速度低於nor/一般用於應用存儲數據

-----------------------------------------------------------------

 測試使用的cypress的flash芯片:以S25FS128S/S25FS256S為例

扇區划分模式,選擇最簡單的一種,便於操作:

  注意: 該芯片讀取時可以一個字節一個字節自累加讀取模式(可以一直讀完整個芯片再回到地址0繼續循環下去):

  另一種QuadIO  Read一定要burst模式,也就是只能一組一組讀取,地址在組內累加循環。

  cypress的芯片一般都有模型可以下載:https://www.cypress.com/verilog/s25fs256s-verilog

  這個芯片有多種讀寫接口模式:命令+地址+數據

  1-1-1(默認模式/基本的spi模式)/1-4-4(QuadIO模式)/4-4-4(QPI模式)    

【芯片讀取數據時還可支持ddr操作,取決於具體的讀取命令】

【QPI模式和QuadIO模式的區別:兩者都需要開啟四線操作(CR1V[1]),但QPI模式還要開啟(CR2V[6]);

   需要說明,CR2V[6]一旦assert會同時assert CR1V[1],CR1V[1] assert之后除非復位否則不會變為0】

  芯片的工作狀態由4個8bits配置寄存器控制:CR1V/CR2V/CR3V/CR4V

 所有操作要通過SR1V狀態寄存的查詢結果作為判斷成功結束的依據:

-------------------------------------------------------------

  注意:spi模式io用了兩個,qpi/quadio是4個。

  注意:片選信號csn需要提前且滯后時鍾信號clk至少一個時鍾周期。

SDR 時序:

DDR時序:

關於寫使能是否在每次的擦除、編寫前都需要執行一次:

雖然在寄存器定義里只說和WREN\WRDI命令有關,但實際還是需要在每次執行擦寫前進行一次寫使能的。

S25FS128S:

S70FS01GS:

 

-------------------------------------------------------------

以對一個扇區的操作來驗證flash芯片的基本功能,操作流程:

   1、上電延時(等待芯片復位)->

   2、設置工作模式(使能4字節模式)-> 1-1-1(SPI)

   3、讀取配置寄存器的默認值(驗證基本的讀取功能及芯片的工作狀態)-> 1-1-1(SPI)

   4、寫入配置寄存器(需要注意此步驟之前需要先執行寫使能操作/否則操作不成功)-> 1-1-1(SPI)

   5、在新配置的模式下讀取芯片id(驗證當前設置是否成功)-> 4-4-4(QPI)

   6、芯片指定扇區擦除-> 4-4-4(QPI)

   7、第一次讀取驗證-> 4-4-4(QPI/SDR)

   8、指定扇區編程->  4-4-4(QPI)

   9、指定扇區讀取及驗證-> 1-4-4(QaudIO/DDR)

   10、進入芯片低功耗模式(測試完成)(1-1-1/SPI)

整個測試代碼分為兩部分:

  底層的接口驅動(完成讀寫時序)+測試狀態機(完成測試流程)

參考:

https://www.cnblogs.com/liujinggang/p/9651170.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM