日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

flash芯片测试

發布時間:2024/8/1 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)

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

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

參考:

【接口時序】5、QSPI Flash的原理與QSPI時序的Verilog實現 - jgliu - 博客園

cypress/nxp 驅動參考:

https://www.cypress.com/products/serial-nor-flash-memory#tabs-0-bottom_side-5

總結

以上是生活随笔為你收集整理的flash芯片测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。